AL: Advanced Models

Unfunded dissertation by Steve May, ACCAD

AL- Animation Language for Procedural Modeling and Animation
A high-level programming language for the specification of procedural models was developed as part of this research. AL provides specialized programming constructs, data types, and operations for modeling, animation and rendering. In addition, it introduces a new mechanism for interaction with procedural models called articulation functions. AL extends and generalizes the mechanisms and features of previous animation and modeling languages. The use of AL in widely varying procedural applications was a goal.

The use of procedural techniques in computer graphics is widespread. Procedural techniques were born from the necessity to describe complex shapes or animation of phenomena too difficult to specify explicitly.

Traditionally when we think of procedural computer graphics, we think of techniques such as fractals for modeling terrain, L-systems for modeling plants and trees, rigid and elastic body dynamics for modeling hard and soft collisions between objects, and particle systems for modeling water, fire, and smoke.

However, as computer graphics models of people, animals, and everyday objects grow more sophisticated and complex, procedural techniques will play a larger and larger role in the specification of these models. Objects that we currently don't associate as being procedurally defined will be. Consider a model for a car which automatically follows the road and drops into potholes, a running engine under the hood, the ability to crumple and possibly explode as the result of high speed impact. Human models with detailed muscles, fatty tissue, skin, hair, clothing, and accessories will contain procedural components by necessity.

Models with a procedural definition can be more "intelligent" than the geometric models provided commercially today. They can encapsulate primary and secondary animation, modeling changes, rendering, cameras, visual special effects, sound effects, and interfaces for interactive manipulation. Encapsulated models provide abstraction and high-level control which aid animators with the more tedious aspects of modeling complex objects and allow them to focus on the primary action, aesthetics, and storytelling. Not all animation is feature film, state of the art, hero character type animation. Increasingly, computer animation will be used for accident reconstruction, on-line manuals, product illustration, etc. In these instances, quick turn-around time is the driving force for sophisticated, off-the-shelf models.In the past, procedural techniques have usually been disassociated from interactive, visually driven approaches because of their algorithmic basis. However, more and more these capabilities are now appearing in highly interactive, commercial systems.

Visual programming systems use dataflow visualization networks to specify scenes. Procedural elements can be constructed interactively without writing programs. However, it can be difficult to implement more complex forms of procedural animation, such as behavioral simulation, using the dataflow paradigm. The dataflow paradigm is not well suited for algorithms which require non-trivial data structures or communication between components (e.g., birds flying in a flock).

Programming languages, for better or worse, remain the most expressive and general means for the specification of procedural models. Programming languages provide a general way to describe procedural models of all types. It should also be noted that a visual programming system can be implemented on top of a programming language paradigm although the reverse does not seem as plausible. Further, non-procedural models, models where an explicit specification of geometry and motion is most convenient, are a subset of procedural models.

The underlying tenet in the development of AL is that the data structure for tomorrow's models must be a procedural specification. The procedural specification should be in the form of a programming language and it is essential that this language provide general mechanisms for interaction.

To view the AL documentation and tutorials, go to the AL web site.
For more information, download the PDF version of the technical report describing this research.

Completed in 2002.