Critters:

procedural animation by direct manipulation

Nick Thompson

Committee:
Roger Dannenberg, chair
Brad Myers
Andy Witkin
Ken Kahn, Animated Programs


What?

Critters:


Vector Projection


u = (w · v) · v / ||v||

Reflections


R = 2 · (L · N) · N - L

Bézier Subdivision


H = k · P2 + (1 - k) · P3
L1 = P1
L2 = k · P1 + (1 - k) · P2
L3 = k · L2 + (1 - k) · H
R4 = P4
R3 = k · P3 + (1 - k) · P4
R2 = k · H + (1 - k) · R3
L4 = R1 = k · L3 + (1 - k) · R2


Thesis statement:
Diagrams can be used to represent a wide variety of computer programs as well as or better than traditional languages.

Visual Language


Vectors

a stick is a vector plus a position

Snapping is Assignment

adding two vectors as sticks:

Triangles


Rotating and Scaling


Special Triangles

Cams


Summary

mapping between shapes and usual language/chip primitives:
operation
shape
+, -
stick
*, /
triangle
sin, cos, tan
right triangle
sqrt, ...
cam



Rule Rewriting


State

The before diagram contains the state of the critter.


Demonstrating a Step

construct after in terms of before




Events / Messages:


Conditions




Links


Data Structures




Sketchpad [Sutherland]
The ability to make moving drawings suggests that Sketchpad might be used for making animated cartoons.
-- Ivan Sutherland, 1963

Geometer [Davis]
Geometer's Sketchpad [Jackiw and Finzer]
Pictorial Janus [Kahn and Saraswat]

ToonTalk [Kahn]
Cocoa / KidSim [Cypher and Smith]

Gamut [McDaniel and Myers]
Klik & Play [Maxis]
Pavlov [Wolber]

Contributions


Status


Evaluation



Conclusions