Lecture 02: Making things Move
Live Coding
FYI: Live-coding Processing in the Browser.
- http://sketchpad.cc
- http://livecoding.io/! http://livecoding.io/6002526
- https://www.khanacademy.org/cs/new
Animation
Today we will use tutorial resources from two great educators:
- Zachary Lieberman’s Making things Move code demonstrations (2006).
- Dan Shiffman’s Nature of Code examples (2012).
In computer graphics, animation is achieved by:
- manipulating numbers over time, and then:
- using those numbers as the basis for drawing something.
Here are some extremely elementary animation methods:
- random animation: position ∝ random()
- frame-based animation: position ∝ frame
- time-based animation: position ∝ time
- life on a torus: a word about periodic boundaries
- interpose an explicit function: position ∝ f(t)
- examples: sin(), noise(), sum of sin()’s,
- functions of time in 2D: Lissajous curves
When animating, we need strategies for producing temporal coherence. We wish for continuities, not only of position, but of derivatives and motion as well. Here are some very elementary strategies for temporal coherence:
- Drunk Walk:
position = random() versus position += random() - “Zeno’s Paradox” animation:
position = A*position + B*target (where A+B =1) - Storage of higher-order derivatives (e.g. velocity). Pong bounce.
position = position + velocity.
Beginning particle systems.
- Integration.
- Accumulation of Forces (F = mA)
- Springs.
Artificial Life, Synthetic Characters
We will consider some inspirations:
- Vectorpark (see Spider)
- A-Volve (Christa Sommerer & Laurent Mignonneau) [1][2]
- Nokia Friends (Toxi + Universal Everything)
- Processing Monsters (Lukas Vojir et al.)
- Singlecell.org and Doublecell.org (Various)
- Creatures (Lee Byron, CMU’08)
- A Confidence of Vertices (Brandon Morse)
- Sniff interactive dog (Karolina Sobecka & Jim George)
- Evolved Virtual Creatures (1994, Karl Sims)
- Steering Behaviors (Craig Reynolds)
- Birds! , Boil Up (Robert Hodgin / Flight404)