Twoville: Programming with Time and Direct Manipulation
Designers interact with digital animation systems primarily through direct manipulation. They click and drag objects to set their properties at the current keyframe, scrub to the next keyframe, click and drag some more, and repeat until the animation is complete. While direct manipulation is a valuable and humane feature, it sometimes generates more labor than it saves. In particular, it’s a poor fit for animations of properties that are more easily computed than dragged to with a mouse. The alternative is indirect manipulation, in which the designer choreographs an animation through code. Animations expressed in code have several benefits: they are parameterizable, reusable, and transparent to the reader. In this paper, we describe Twoville, a language and development environment that supports both direct and indirect manipulation of 2D animations.