Tamara - tspace.library.utoronto.ca€¦ · praxinoscope [Layboume79]. The thaurnatrope. a spinning...
Transcript of Tamara - tspace.library.utoronto.ca€¦ · praxinoscope [Layboume79]. The thaurnatrope. a spinning...
Tamara Stephas
A thesis submitted in conformity with the requirements
for the degree of Master of Science
Graduate Department of Cornputer Science
University of Toronto
Q Copyright by Tamara Stephas 1997
National Library Bibliothèque nationale du Canada
Acquisitions and Acquisitions et Bibliographie Services services bibliographiques
395 Wellington Street 395. me Wellington Ottawa ON K I A ON4 Ottawa ON K 1 A O N 4 Canada Canada
The author has granted a non- L'auteur a accordé une licence non exclusive licence allowing the exclusive permettant à la National Library of Canada to Bibliothèque nationale du Canada de reproduce, loan, distrïbute or sell reproduire, prêter, distribuer ou copies of this thesis in microform, vendre des copies de cette thèse sous paper or electronic formats. la forme de microfiche/film, de
reproduction sur papier ou sur format électronique.
The author retains ownership of the L'auteur conserve la propriété du copyright in th s thesis. Neither the droit d'auteur qui protège cette thèse. thesis nor substantial extracts fiom it Ni la thèse ni des extraits substantiels may be printed or otherwise de celle-ci ne doivent être imprimés reproduced without the author's ou autrement reproduits sans son permission. autorisation.
Abstract
A Physicaliy-Based iModel of Snake Locomotion Using Environmental Obstacles
Master of Science. 1997
Tamara Stephas
Graduate Department of Cornputer Science. University of Toronto
Physically-based legless animals are simulated using a darnped spring-mass mesh.
Motion is caused by varying the minimum-energy Iengths of certain springs. The
application of directional fiction against the ground or collision forces against obstacles
can convert appropriate motions into locomotion of the animais. By varying the motion
patterns. different gaits may be produced. One of these. horizontal undulation. requires
interaction with obstacles in the snake's environment. We introduce obstacles. and
snake-obstacle collisions in the lateral plane. thereby improving the snake's horizontal
undulatory gait.
Acknowledgements
1 owe immense thanks to my advisor. Eugene Fiume. for his inspiration.
encouragement. guidance - and patience as 1 juggled thesis. ernployment and other
demands on my time.
Thanks also to my second reader. Michiel van de Panne. for his valuable
observations and thoughtfül cornments. and also for his enthusiasm about graphics in
general.
Demitri Terzopoulos' visual rnodeling course introduced me to Gavin Miller's
work. on which this is based. and James Stewart's physically-based modeling course
gave me tools to apply to it. Steve Wilton generously acted as a guinea pig to test the
toxicity of my prose before anyone else was exposed to it.
1 feel fortunate to have shared in the great atmosphere of the University of
Toronto's DGP [ab. Thanks to al1 the lab members for supportiveness. academic
excitement. advice and ice skating expeditions.
I would not have completed this in Seanle without the support and heckling of my
partner Michael Jochimsen. And I would never have begun without the lifelong influence
of my parents Paul and Georgia Stephas. who shared with me their love for leaming and
the sciences. Thank you.
Table of Contents
Page
Cbapter 1 Introduction ...................................................................................................... 1
1.1 Animation Background ...................................................................................... 1
1.2 Previous Work: Kinematics ............................................................................... 4
........................................................ 1 2.1 Cornputer-Assisted Keyframing -4
...................................................................... 1 2.2 Parametnc K e y h i n g -6
................................................... 1 2.3 Alternative Specification of Motion 8
1.2.4 Kinematic constraints .................................................................... 13
............................................................................ 1 -3 Previous Work: Dynarnics 1 7
........................................................................... 1.3.1 Rigid Body Models 18
......................................................................... 1.3.7 Elastic Body Models 27
3 3 1.4 Previous Work: Animating legless motion ...................................................... JJ
Chapter 2 Physical Mode1 of Serpentine Bodies ......................................................... 37
............................................................................................................. Chapter 3 Motion 42
3.1 Simulation of Muscular Action ........................................................................ 42
3 -2 Directional Friction ......................................................................................... .43
1 -) ....................................................................... J . J Control Pattern for Locomotion 46
3.4 Goal-Seeking ................................................................................................. - 3 2
Chapter 4 Obstacles ......................................................................................................... 59
................................................................................. 4.1 Serpentine Locomotion - 3 9
4.2 Obstacle Representation .................................................................................. -59
4.3 Collision Detection .......................................................................................... 61
Page
4.4 Collision ResoIution ...................................................................................... 66
Chapter 5 Results: Passive Use of Obstacles ............................................................ 71
Chapter 6 Conclusions ..................................................................................................... 77
Chapter 7 Further Work ................................................................................................. 79
Appendix A: Implementation & Timing Details ........................................................... 87
..................................................................................................................... Bibliogra p hy 84
List of Figures
Figure Page
. Figure 1 Degrees of fieedorn .......................................................................................... 1 9
Figure 2.The mass and spnng arrangement of a cube segment ........................................ -38
Figure 3 .The mass and spring arrangement of a pyramid segment ................................... 38
Figure 4.A simplified two-spring worm or snake ............................................................. -44
Figure 5 . Calculation of spine vectors ............................................................................... 45
Figure 6 . Calculation of virtual spine vectors for cube segments ..................................... -45
Figure 7.A sirnplified hvo-spring worm altemately contracts and cxpands segments ...... 47
Figure 8.Calculation of diagonals ...................................................................................... 48
Figure 9 . Three fiames of rectilinear progression .............................................................. 48
Figure 10 . Three &es of snake undulation .................................................................... 49
.................... Figure 1 1 . Two pyramidal segments and the three muscles comecting h e m 51 - - Figure 12.Calculation of tum parameters ......................................................................... -33
Figure 13 . Hyperextension due to sharp turn .................................................................... 56
Figure 14 . Two segments of undeforrned (motionless) snake ........................................... 57
Figure 15 . Simplified snake+bstacIe collision interaction ............................................... 60 . .
Figure 16.Collisron detection ............................................................................................. 62
. . Figure 1 7.ResuIts of collision tests .................................................................................... 63
Figure 18 . Line-Circle Intersections .................................................................................. 65
Figure 19 . Three h e s of snake undulation without targeting ........................................ 71
Figure 20 . Snake undulaton showing targeting .................................................................. 72
Figure 2 1 . Direction of contact with obstacles .................................................................. 73
Figure 22 . Horizontal undulation with obstacles ............................................................... 74
Figure 23 . Undulation in a crowded field .......................................................................... 74
Figure Page
Figure 24. Sample execution values for one snake traversing various fields of obstacles.75
Figure 25. Another view of a denser obstacle field. .......................................................... 75
Chapter 1
Introduction
1.1 Animation Background
Computer animation techniques encompass a wide array of areas fiorn artistic
entertainment to scientific simulation. Animation itself is an effect. the illusion of motion.
which can be used for many purposes. and achieved in many ways.
Although we perceive anirnated motion as continuous. it is actually a rapid
sequence of discrete still pictures. This is true for traditional as well as computenzed
animated media. The illusion of motion arises because of the phenomenon of "persistence
of vision." Because the speed at which the human eye can react to bnef images is tinite.
an image flashing rapidly enough c m o t be distinguished fiom a steady one. If instead of
a single picture. an evolving series of different pictwes are fiashed. they appear to blend
together as a continuous moving image. This observation led to the popularization in the
nineteenth century of a number of small devices such as the thaurnatrope. zoetrope. and
praxinoscope [Layboume79]. The thaurnatrope. a spinning disc. seems to superimpose
two separate images. The zoetrope and praxinoscope display animation sequences by
flashing a senes of drawings quickly past the eye. Like the thaurnatrope. they were
limited to toys or novelties because they could only accommodate brief actions. and
could only be viewed by at most a few people at once. When the new photographic
technology of "moving" pictures on film (another method of rapidly displaying senes of
still images) became available, cartoonists quickly took advantage of the length and wide
audience of the new medium.
Since then. animators have developed a vast nurnber of techniques for creating the
illusion of motion, as well as tools never dreamed of when the first animated film. James
S. Blackton's "Funny Faces". was shown in 1906 ~aybourne79]. Among those tools is
the computer. Along the way. animation itself has becorne a usehl tool to achievr other
things. As well as remaining a source of entertainment and artistic expression. it is used
to educate. to clari@ diagrarns. to assist in architectural and engineering planning. and to
display a growing range of simulated events. such as molecular expenments. flight
training. medical procedures. fluid dynamics. and crash tests.
Animation is well suited to benefit from computer assistance. Because of the large
numbers of closely related still frames required for animation-24 or 30 frames for eacch
second of motion. depending upon the medium-a great deal of tedious work is involved.
Cornputerization is an excellent tool for autornating such repetitive tasks.
Several different approaches to computzr animation have emerged. They can be
roughly grouped into two categories: kinematic animation and dynarnic animation.
Kinematic techniques evolved directly out of the traditional manual cartoon
animation used by filmmakers. Using kinematics. literally "the study of motion exclusive
of the influences of mass and force" [AmencanHeritage87]. there is no such thing as an
"impossible" motion. The animator has complete fieedom-and responsibility-to design
any action within imagination. This freedom enables the rnadcap actions and deliberate
revision of physical laws exercised in traditional film animation. The ability to play with
the structure of the world in ways not possible for live-action film is one of the attractions
animated techniques hold for creative and humourous filmmakers. and altering physics to
assist story or character development has become a notable chanctenstic of famous
animation studios such as Warner Bros. Cartoons and Walt Disney Studios.
However. such freedom comes at the price of added difficulty and responsibility on
the part of the animator. Since anything is possible, it is up to the talent and skills o f the
animator to ensure that what results is believable. In the absence of forces. torques. and
gravity. the animator must learn how to craft the illusions of strength. weight. cause and
effect. The laws of our physical reality may be bent or broken. but to maintain the
audience's willing suspension of disbelief some form of intemal logic must still prevail:
in purely kinematic animation. a skilled animator is required to enforce that logic.
An alternative is to work within a physically-based system which takes dynamics
into account. A physically-based animation system can greatly simplifi the animator's job
by automatically applying the laws of physical dynamics to the model. Characters and
objects modelled with mass and inertia can be acted upon by extemal and intemal forces
including gravi- and their own muscles. Using equations of motion fiom physics. the
motion resulting from accumulated forces can be calculated for each instant of time.
Early cornputer animation prirnarily used the computer as a tool to assist with
traditional kinematic animation. In a direct evolution fiom film techniques. computers
were used instead of human assistants to draw additional interpolatory f rmes between
the keyframes designed by the pnmary animator [Burtnyk7 1. Csun7 1. Catmu1178.
Reeves81. Kochanek84. S tman84 . Steketee85. Girard87. Lasseter871. Although this
reduced the repetitiveness of the human effort. the exacting work of designing the motion
still lay entirely with the animator. interest grew in making more extensive use of the
computer to help design the motion as well as just fleshing it out. Many systems were
still strictly kinematic. but alternate rnethods of motion specification and automatic
control were explored [Zeltzer82. Calvert82. Korein82. Reynolds82. Badler87. Girard87.
Reynolds87. Bmderlin95. Witkin951.
More recently, work has been done on physically-based. or "dynamic" animation.
The original challenge of merely developing methods to structure and solve the dynarnics
equations [Armstrong8j. Wilhelms87] was npidly succeeded by the more difficult
problem of control [ h s u o n g 8 7 . Isaacs87. Barze188. Witkin88. Brotman88. Mil1e1-90.
vandePanne90. Cohen92. vandePanne93. Ngo93. Liu94. Tu94. Grzeszczuk95]. Most
physically-based animation of solids has dealt with articulated rigid bodies. but some is
concemed with elastic objects [Wyvi1186. Miller88. Terzopoulos88. MiIlex-90.
Terzopoulos90. Tu94, Grzeszczuk95].
1.2 Previous Work: Kinematics
I 2 . 1 Cornputer- Assisted Keyfiaming
Computerized versions of visual keyframing grew directly out of traditional
animation keyframing techniques. In keyframing, the animation method most ofien used
by large commercial studios. the animator draws certain fiames of the action. These
" k e y h e s " are literally the frames of key importance in defininç the action of a
character or scene. usually depicting extremes of motion or expressions. Assistants called
"in-betweeners" then draw the remaining frames between the keyfrarnes. The in-between
frames are necessary for correct timing and smoothness of motion. but drawing them is
tedious and not very creative. since the action is alredy defined by the keytiames and
only interpolation is lefi. However. this does not mean the interpolation is unimportant:
the in-between &es can either enhance characterization by ensuring continuity and
cxpressiveness. or min the rhythm and meaning of every gesture.
This repetitive yet demanding task created a natural situation for introducing
computer assistance. The earliest methods read artist-drawn keyfrarnes in as tlat images.
and performed interpolation in two dimensions only. Interpolation was applied to
corresponding lines or curves [Burtny k7 1. Csuri7 1. Catmu1178. Reeves8 1 1. In most two-
dimensional keyframing systems. correspondences generally had to be specified by hand.
Because the computer did not have a mode1 correlating the two-dimensional image with
the underlying object. it had no frarne of reference to relate successive keyframes.
especiall y if perspective changed between thern.
Simple linear interpolation at constant frame intervals did not generally produce
natural-seeming motion [Catmu1178]. especially as so many natural motions are related to
arcs or parabolas-think of a swinging arm or a thrown ball. Nor could the motion be
easily modified once the keyframes were created: changes required altering or adding
keyfiames. Using a higher order piecewise interpolant smoothed the motion by ailowing
continuity specification at interpolant seams. and made specification of c w e d motion
easier without excessive numbers of keyframes [Baecker69. Sturman84]. This was a
successful technique which became widely used. Baecker's early parametric curve
technique called "p-curves" allowed the user to speci@ both path and timing at one
stroke. Points were sarnpled at uniform intervals in real time as the user sketched on an
input surface. so the data included velocity dong the curve. represented by the density of
the points. Many variations were introduced to achieve more precise control over both
path and timing. necessary to achieve the nuances of gesture and expression required for
character animation.
Kochanek and Bartels described a method for animators to exercise control over the
shape of interpolating splines with fairly intuitive parameter variations [Kochanek8%
Bartels87]. Using a Hermite interpolation basis. they introduced a generalization of a
class of cardinal splines which allowed controlled modification of the denvative vectors
used to scale the ba i s functions. By varying parameters called "tension." "continuity."
and "bias." the animator could respectively control broadness of gesture. introduce and
control directional discontinuities at key frames. and provide anticipation and follow-
through.
An alternative method of providing precise animator control of path and timing was
to allow the animator to draw the motion path directly. This elimination of visible
parameters appealed to many traditionally-trained animators for whom drawing was a
natural second language. In "path" or "movealong" interpolation. a spline interpolant
would be found which not only passed through the keyframes (as in other spline
interpolant keyfnming). but also conformed as closely as possible to the specific motion
path drawn by the animator [Baecker69. Shelley82. Sturrnan841. At first the same
interpolation path and timing were applied to al1 parts of a given object. Reeves provided
still greater control by the use of independent interpolation paths ("moving points") for
different points of the same keyfiame [Reevesg 11. Moving points could also be usrd as a
method for establishing correspondences. thereby combining two tasks-path
specification and correspondence matching-into one.
1.2.2 Parametric Keyframing
There were significant drawbacks to cornputer-generated keyframing in two
dimensions [Catmu1178]. Information must unavoidably be lost in the conversion from
three dimensions to two. Because the computer had no model of the solids underlying the
k e y h e line drawings. perspectives could become distorted during interpolation. The
computer could not be guaranteed to interpolate correctly between keyframes which
lacked one-to-one correspondence between ail lines. thus turning a figure to reveal hidden
features or limbs could introduce surrealistic effec ts. Automatic shading was impossible.
And to emulate camera motion. al1 perspective changes had to be carefuliy drawn by the
anirnator. just like any other motion.
Correct perspective and changes in point of view were made automatic by
animating three-dimensional models. thus delaying dimension reduction until after
animation. The animator set up key poses. rather than keyframes. The motion was
interpolated between these poses. typically using the same sorts of interpolation
developed for flat keyframe animation. but now applying it to points or parameters of the
three-dimensional model. This also eliminated the need to determine point or line
correspondence between keytiarnes. since the positioning of the model could be fully
specified in the data structure. Most later keyframing systems worked with three-
dimensional models [Sturrnan84. Steketee85. Lasseter871.
A practical suggestion from a character animation standpoint was a layered. or
hierarchical. approach to enable specification of different gestures separately. Instead of
hl1 poses only. keys could be separately created for various limbs or hierarchical
collections of limbs. which wre then animateci simultaneously. Depending on their
different actions or rhythms. some limbs might have many key poses. others few
[Sturrnan84. LasseterBi]. This reduced the total number of keyframes required. while
providing a usehl tool to deal with the nuances of temporally overlapping actions .
Another important ability for attractive animation was control of the variation in
speed aiong a trajectory. The observation that acceleration rnust be finite requires that
gestures begin slowly. build up speed. and slow again at the end. Known in traditional
animation as "slow in. slow out." this attention to the rate of acceleration adds a feeling of
m a s and controls jerkiness. Although move-dong and moving point interpolations
allowed variations in speed. most systems also locked the path specification to the timing
specification by using the sarne interpolant for both. This had the disadvantage that
changing the timing altered the motion. and vice versa. It limited the amount of
modification that could be made to either timing or spatial path without re-speciSing the
interpolation path. and could result in undesirable effects such as fiattened paths when
moving quic kly [Kochanek84. Bartels871.
In a paper on animation of canera motion. Shelley and Greenberg separated the
spatial path specification from the timing specification [Shelley82]. This provided better
control of motion. both through space and through time. The motion path was given by a
cubic B-spline through three-dimensional space. Timing along the motion path was
specified separately. using a second cubic B-spline which related velocity to (presumably
parametric) distance. Each spline could be adjusted interactively: for realistic motion. a
default slow idslow out timing path could be generated with acceleration and
deceleration at the beginning and end respectively.
Steketee and Badler introduced the use of a double interpolant method. along the
sarne lines. to keyframe interpolation of object animation [Steketee85]. The object's path
through space was controlled by one set of interpolants (piecewise cubic B-spline
interpolation wris used). Another interpolant controlled the relationship between the
keyframes and time. By adjusting this interpolant. the problems of getting the motion
nght and getting the timing right were separated and made easier to fine-tune without re-
designing the motion or adding new keyframes.
The double interpolant method was very usefùl for animators [Lasseter87]. Girard
modified it for further precision of adjustment. by reparameterizing the interpolating
spline so that parameter unit distance along the spline equalled geometric unit distance
along the arc of the c w e [Girard87]. Thus adjustrnents to the parameter speed of motion
had the sarne effect in real space as they did in parameter space.
1-23 Alternative Specification of Motion
Parametnc three-dimensional models were usehl in more ways than allowing
increased visual accuracy with fewer keyframes. The ability to work directly with the
mode1 radier than an image also opened up possibilities in motion specification and
control. With access to the model's positioning parameters. cornputer animators were able
to explore alternative ways to dcscribe action. including cornputer control of motion.
Motion specification with early pararnetric keyfrarning typically required
painstaking manual listing of parameter values. Such numeric manipulation was both
non-intuitive and tedious. Interfaces such as modular motion control procedures
[Calvert82. Reynolds821 aided the usability of the process without really changing its
nature. A gnphical interface allowing limbs to be visually dragged to define key
positions made the process of motion description more intuitive. and closer to the visual
keyfrarning that most artistically-onented animators were more cornfortable with
[Sturman84].
8
Sturrnan developed a system dong the lines of standard keyframing. with motion
çenerated using interpolation between a senes of key poses. plus the ability to name
particular key poses and refer to them later in the sequence. This provided a macro
facility useful for reusing motion and creating cycles. Cycles are a time-saving technique
of motion repetition widely used in traditional animation. A walk cycle. for rxarnple.
might begin when the right foot hits the ground. and animate the motions of walking until
the right foot is again about to stiike. At this point. having retumed to the original
position. the action searnlessly begins again at the start of the cycle. continuing in a loop
as long as needed.
Calvert. Chapman and Patla expanded on the macro idea with the use of
hierarchical. nested macros to organize and reproduce specifications of repetitive motion
[Calvert82]. They also provided the ability to reproduce motion denved either fiom
measurement of live action or from d a c e notation. Animation from live measurement is
the most accurate description of human action. This can be valuable. especially for
clinical simulations. Rotoscoping. the practice of drawing directly From live reference
film of the desired action. had been used for both traditional and computer animation. but
provided only two-dimensional data. Calvert. Chaprnan and Patla gathered more precise.
three-dimensional data using devices anached to an actor. The key object parameters
were read at real time speed: and if space were found to store data for every frame.
interpolation would not be necessary.
Recording techniques tended to be better suited for technical applications. such as
medical analysis. than for entertainment. ALthough accurate. the resulting motion looked
stiff in cornparison to the humorous exaggeration audiences had corne to expect from
cartoons. It was difficult to adjust the motion once recorded. And the requirement of [ive
models for input made it difficult to use non-human characters or portray non-realistic
actions. Because of the manipulation drawbacks. Calvert et al. also included the ability to
script motion using an adaptation of the Labanotation gesture notation: it was this which
was subdivided into macro procedures as necessary. Translation of the notation yielded
the appropriate motion parameters. The intermediate stage-the Labanotation script-
was more readable by humans than lists of joint angles or other raw data. It provided a
transition between the previous model-based parameter notation and a more intuitive
action-based scnpting notation.
More recent work with recorded motion has atternpted to apply higher-level control
directly to the recorded data. instead of requiring a choice between recording and
scripting. By applying signal processing techniques to motion capture data. researchers
can modib the overall style or mood of the motion &Jnuma95. Arnaya961. or alter
individual actions to reproduce a wider choice of motions [Bruderlin95 Witkin951.
Reynolds designed a powefil. general-purpose motion scnpting language based on
Lisp [Reynolds82]. It made use of a structured. object-oriented programming
environment to enable top-down design of motion. much like top-down programming.
Actions were designed as operations upon objects called "actors." This might be viewed
as another f o m of keyfrarning: at a high level. script instructions to walk from point a to
point b in interval c included position information (point u. point h). timing information
(interval c). and interpolation directions (walk). However. it was actually a more general
form of action design. because motion operations on actors might be procedural
sequences which did not necessxily interpolate a predetermined end. The procedures
used to implement script instructions might be developed using relatively simple straight-
ahead animation. or traditional pose-to-pose methods. Or they might make use of
automatic control strategies. some of them borrowed from robotics. Reynolds
subsequently used a procedural scripting systern for a de-based behavioural simulation
of flocking behaviour [Reynolds87].
Details such as timing and motion paths have a strong effect on perceptions of
realism. mood. and individuality. particularly in character animation. Although these are
exactly the details that may be difficult to express in words. the ability ro script them is
required if a mechanical look is to be escaped. In Reynolds' system. motion modules were
built in terms of parameter manipulations and geometric transformations at their lowest
level. By incorporating utilities to enable path definition using splines. and animator
control of standard timing constmcts such as slow in/slow out. he overcarne some of the
criticisms of scripted animation as too repetitive or mechanical.
Another scripted system. designed by Zeltzer. used finite-state automata for low-
level control [Zeltzer82]. Interested in realistic animation control. Zeltzer approached it as
a problem in robotics control. As \vil1 be discussed later. this was similar to the view
taken by physically-based animators. but in this case controller results were waluated
kinematically.
Like Calvert et al. and Reynolds. Zeltzer used a hierarchical contrd structure. An
articulated rigid body skeleton was controlled bp a script of "task descriptions." These
were the most general of a hierarchy of descriptions. Task descriptions called upon
various skills etTected by "motor programs": motor programs in tum coordinated and
controlled "local motor programs" which directly affected the necessary muscle groups.
Each controller was driven by instructions from the immediately higher level. and
feedback from the imrnediately lower level. Instead of being driven by key poses. the
motor programs were essentially finite state machines. Each state indicated the execution
of a set of local motor programs. State changes occurred when local motor programs
finished executing. or when indicated by external feedback events such as a foot stnking
the ground. Zeltzer suggested using dynamic modification of state goals (feedback
conditions) to achieve a desired external target. such as moving to a target location.
Mode1 definition was also hierarchicai. allowing limbs to be moved as a group for large
gestures.
Although the scnpting systems provided an easy high-level intertàce for the end-
user animator. straight-ahead animation systems such as Zeltzer's finite-state machines
required al1 actions to be manually defined at some lower level of the gesture building
blocks used to complete a task. Grouping joints together for gross control of composite
limbs [Reynolds82. ZeltzerSZ. Sturman84. Lasseter871 reduced the volume of data
required to specify some gestures. and breaking actions down into reusable sub-units
[Calvert82. Reynolds83. Zeltzer821 reduced the specification required for repetitive
motion.
1.2.4 Kinematic constraints
The arnount of motion instruction the animator must explicitly provide c m be
reduced by shifiing more control to the cornputer. letting the cornputer determine how
requested motion is to be performed. Limitations must be imposed on the generated
motion. in order to make it appear realistic. In keyframing systems. these limitations are
applied by the requirement to interpolate the keyfiames. and restrictions on the
interpolant such as continuity enforcement. smoothing hnctions. or bias and tension
controls. Another method of computerized motion generation is to solve for the desired
motion from among al1 possible adjustments of al1 degrees of freedom of the model. In
this case. the solution space may be restricted by removing undesirable motions such as
hyperextended joints or obstacle penetration. These restrictions are constraints on the
system. Purely kinematic motion wili be discussed here: the unknowns are kinematic
degrees of freedom of the model (typically measures of flexion at joints. plus the world
location of the root segment.) Formiilation and solution of dynarnic systems. which need
to determine both the forces to apply. and the effects of those forces. will be discussed
later.
13
The word "constrain" is overloaded in animation: it can refer to several different
things. Limitations explicitly imposed on motion are cailed constraints. In addition. a
system of equations is said to be under-. over-. or perfectly constrained. if it has
insufficient information. conflicting information. or exactly sufficient information for
solution. respectively. Confusion c m occur when the first definition affects the second.
Constraint- based motion determination bears more resem blance to key fnme
interpolation than to procedural scripting. Instead of following a formula-detined
interpolation path between given positions as in keyframing. the constraint systems
typically move between goal states. The solution for each degree of freedom is subject to
constraint limitations imposed to ensure realism [BadlerBï. WitkinM]. Goal states rnay
be positions. relationships. or orientations. and they rnay or rnay not be interpolated if
constraints conflict. Joint constraints are observed during motion. to prevent
hyperextension and other physically impossible positions. In addition. other constraints to
be maintained may be imposed in the same form as goal constraints. Even in systems that
use othrr methods for the basic animation control. selective use of constraints rnay still be
useful. Applications of these include interpenetration constraints. joint limits. and
temporal constraints such as prevention of infinite acceleration. Additional constraints
may not always be helpful. however. Constraints appropriate for biomechanical
simulation rnay be too restrictive for entertainment: joint constraints can obscure results
of simulations such as crash tests in which joint dislocation might actually occur: and
conflicting constraints rnay be resolved into unnatural movement patterns [CalvenSZ].
If a problem is perfectly constrained (the nurnber of goals and constraints equal the
number of degrees of fieedom). a solution may be found analytically. if one exists. If an
algebraic method is feasible. it rnight be preferred over iterative numeric approximation
rnethods. Evaluation rnay be faster. and if a problem has multiple solutions. algebraic
solution will typically find them all. This is particularly advantageous where local
minima caused by constraints might prevent iterative methods fiom converging to a
preferable solution. Numeri solutions are easier to apply to a general selection of
problems than analytic solutions. however. Some types of underconstnined problems
may also be solved analytically [Korein82]. but the extra manipulation required to set up
the equations typically reflects an understanding of the nature of the model. and thus is
not very general nor likely to be easily automated.
Underconstrained problems are much more prevalent in animation than perfectly
constrained ones: a complex figure (like a hurnan forrn) is rarely limited to a finite set of
ways to move through space. A typical response to this. as discussed by Korein and
Badler Korein821. \vas to convert the system into an optimization problem with the
addition of an objective function. It could then be solved using a constrained optimization
method such as Lagrange multipliers. Optimization factors Vary according to the
application. Sorne possible kinernatic objective fùnctions include minimization of time.
of total movernent distance. of human discornfort (such as posture deviation from some
"nom.") or of jerk (rate of change of acceleration). Dynamic objective hnctions
additionally rnight include rninimization of kinetic energy or of total work required.
Korein and Badler proposed a "reach hierarchy" msthod to reach a location goal
("touch here") with an element of a chain structure [Korein82]. Precomputation and
reduction of generality made it faster than most other optimization methods. Although
described geometrically instead of numerically. it implicitly performed bounded
optimization. attempting to minimize displacement of proximal (closest to the root) joints
of a chain. By çeneralizing the hurnan figure as a tree structure of rigid links c o ~ e c t e d
by rotational joints. motions were sirnplified as movements of simple chains of links and
joints. "Workspaces." descriptions of chains' reachable regions. were precomputed. This
imrnediately determined whether or not a problem was feasible: goals not in the
workspace of the chain were not reachable. Cal1 a chainls "distd subchain" the subchain
remaining when the link closest to the chain's root is removed. The problem of touching
the goal could be solved by moving each successively srnaller distal subchain workspace
to encompass the goal. while adjusting the joint at the root of the subchain only as far as
nrcessary. The rnethod Iocalized adjustrnents by minimizing adjustments toward the root
of the c h a h Computation was simplçr than most optimization methods. requiring only
calculation of as many intersections as there were links in the chain. This computational
speed was achieved at the cost of precomputing and storing the workspaces. however.
Goals involving extra degrees of fieedom (such as orientation as well as position)
increased the nurnber of workspace dimensions so that complex goals were excessively
expensive in terms of storage.
One drawback of Korein & Badler's reach-onented goal touching method was that
it gave up on unreachable or contlicting goals. It is usually necessary to solve multiple
constraints in order to position a complex figure: if constraints are designed on the fly by
an anirnator. they may at times conflict. Badler. Manoochehri and Walters developed a
method that allowed solution of multiple constraints simultaneously [Badler87]. This
eliminated the need to back up for adjustment when the solution for one constraint
disturbed the previous solution for another. Assigning weights to simultaneous motion
goals allowed an approximate solution to be found even if conflicting goals made it
impossible to achieve an exact solution to al1 goals simultaneously.
Position constraints. weighted by goal importance. were implemented as
connections established behveen points on the figure and desired positions in the world
coordinate Frame. Calculation was limited to relevant links by constructing a "reach tree."
a reduction of the tree specification of the figure to include only the constrained points
and simpli fied links connec ting thern. The scaled displacement of al1 constrained points
from their goals was then rninimized by a recursive balancing algorithm which balanced
the scaled displacement of each subtree by moving its root.
Michael Girard successfull y combined a nurnber of techniques including
constrained optimization to generate realistic motion of legged animals [Girard87].
"Posture tables." essentially key poses of leg positions. were created to define limb
postures. Keyframe interpolation could be performed between these if desired. using a
refinement of the double-interpolant method described by Steketee and Badler
[Steketee85]. Altematively. cyclic gaits such as walking and galloping could be
automatically generated under cornputer control. Using a series of postures as goals. leg
trajectories were solved as constrained optirnization problerns. Constraints included joint
limits. maximum torques. and extemal obstacles. Optimization functions tested included
minirnization of time. of energy expended. and of jerk. Some of the constraints and
objective functions used required analysis of dynamic factors such as torque. linear force.
and mass. Girard's system was a bridge between kinematic and dynamic animation. using
dynamics to help achieve physical realism. consistent with physical laws and observed
biological behaviour. Dynarnic analysis \vas used to determine a figure's ability to
accelerate and turn. based on the ma-irnum force capabilitp of its legs: to find the b d
angle a figure would use to keep its balance on turns: and to account for body motion
when not supported by the legs. This filled in for some weaknesses of kinematically
automated motion. which Calvert. Chapman & Patla had noted when they obsemed that
generally realistic motion was achieved kinematically only as long as the figure did not
leave the ground [Calvert82]. Dynamic analysis was kept to an assisting role. however.
because Girard found that some empincal studies indicated that natural gesture planning
may optimize kinematic hnctions such as minimum jerk. Thus. he argued. calculating the
kinematics direc tl y. rather than going through a computationally expensive dynamic
analysis step. was sufficient for natural motion.
1.3 Previous Work: Dynamics
Anyone who can walk or catch a bail has a finely developed ability to calculate and
predict the trajectories of masses moving in the Earth's gravity. If the behaviour of an
animated object is inconsistent with these unconscious calculations. it is rejected as
unredistic. When the object is very farniliar. such as a human figure. even subtle
deviations rnay cause the motion to seem uncomfortably wrong. Traditional animation.
and even most computerized kinematic animation. requires talent and ski11 on the part of
the animator to design motion that "feels right." Other kinematic cornputer animation
rnethods strive to reduce dependence on trained animators by developing techniques to
automatically generate motion that appears consistent with expected physical behaviour.
.-ippenrance is the most that can be hoped for from any kinematic method. however.
To produce tmly physically correct behaviour. it is necessary to consider the forces
which cause objects to move. Physically-based animation uses dynarnics simulation to
generate motions which automatically obey physical laws. Whereas kinematic animation
is an attempt to imitate the results of physics using other methods. dynamic animation
achieves the results by directly simulating force and mass. Its advantages include objects
which react to their environment automatically. increased accuracy. and less reliance on
the judgernent of an expert eye to produce realism.
Physical realism. however. is achieved at a pnce. Part of the price is increased
computation time. The more detaiied and realistic the model. the more complex the
equations which must be solved. The dynamics equations are not guaranteed to be
particularly tractable. and the numerical methods used to solve thern may suffer from
instability. requiring many calculation iterations to compute each animation frarne.
Another problem is increased difficulty of control. Simulation of a physical process. such
as a bouncing ball. from an initial state is relatively simple. Enswing that the bal1 stnkes
the ground at specified points u and 6. passing through a hoop in between. is more
17
complex. since it requires determination of a particular initial state to make this possible.
Anirnating a character is more complex still. because passive simulation From an initial
state is no longer sufficient. Forces must be supplied to make the character move. and the
amount and duration of force to be applied at any given time must be determined in some
t'ashion.
1.3.1 Rigid Body Models
Dynamic analysis is based on Newton's second law
f=ma ( 1 )
which describes an object's motion in response to forces acting on irs centre of m a s . This
is sufficient to describe the trajectories of point masses or objrcts falling in gravity. but
more interesting motion is more complicated. An object with volume may additionally
expenence torques (rotational forces) which irnpart angular acceleration. The equations to
descnbe the motion of such a body or interactions between bodies become more complex
than ( 1 ), but still essentially relate forces. accelerations. and mass.
Angular acceleration of an object depends on mass distribution. just as linear
acceleration depends on mas . The mass distribution of a rigid. non-deformable body is
fixed and cm be pre-calculated. simplifjring dynamics calculations. In addition. the
dynamics of rigid bodies have been studied for a long tirne. and an extensive body of
work exists. It seems natural. therefore. that some of the first physically-based computer
animation used ngid object models. As a completely rigid body cm not move. compound
figures were composed of multiple rigid object segments. This is an acceptable model of
not only constructions of hard materials. but also of some softer bodies such as
vertebrates. If the sofi mass is bound closely to the skeletal h e by ligaments and
muscles. a rigid model is a reasonable approximation for the generation of realistic
human and animal movement. Moreover. subjective judgement of the visual realism of an
animated figure seems to rely as much on irs motion as its actual structure. We can
18
imagine expected flexibility and defonnation. if the object's movement is otherwise
correct. This gullibility was discovered by traditional animators working with non-
deformabie objects such as blocks and paper cutouts [ReinigerX. Hoedeman72.
Reiniger75. Laybourne79J and also contributes to our acceptance of anthropomorphic
motion in rigid inanimate objects such as lamps [Witkin88. vandePanne901.
Figure 1. Degrees of freedom. a. Rotational freedoms. b. Translationai freedoms.
I
A rigid body free to move in space has three degrees of translational freedom and
three degrees of rotational freedom. for a total of six degrees of freedom (Figure 1 .) The
technique of fonvard dynamics finds the acceleration of each degree of freedom at
successive moments in time. when the forces acting upon the body are known.
Conversely. inverse dynamics Ends the generating forces when the accelerations are
known. A system that is entirely based upon inverse dynamics is rssentially kinematically
animated. with physical justification (the forces) for its actions. The use of a combination
of fornard and inverse dynarnic analysis [Isaacs87. Banel881 is not uricomrnon.
Various equivalent formulations of the dynamics equations may be used. The
Newton-Euler formulation is cornmon. perhaps because it is easy to derive and the most
familiar. It uses the Euler formulation
to descnbe angular motion as the relationship between torque r. inertia 1. and angular
velocity o, as it uses ( 1 ) to describe translation. Other formulations which may be more
appropriate in various situations include Gibbs-Appel1 [Wilhelms87]. Lagrangian
[Rossberg83]. and recursive methods [Armstrong85. Amstrong87]. Once new
accelerations for the current discrete timestep have been found by solution of the
dynamics equations. numencal integntion is used to determine the new velocities and
positions of the anirnated objects.
Wilhelms described a common model of fully dynarnic animation system
[Wilhelms87]. The hurnan figure was describeci as a set of rigid segments joined in a tree
structure. The root segment of the body was in turn related to the world by a six-degree-
of-freedom joint. The Gibbs-Appel1 dynamics formulation was used to set up one
equation for each degree of freedom: the resulting system of linear equations was solved
for acceleration using Gaussian elirnination. Degree-of-freedom restrictions on various
body joints (such as consuaint of knees to one degree of fieedom. while shoulders hûd
three) were enforced by the dynamics equations chosen. Anguiar lirnits on joint motion.
ground interaction. collisions. and friction were modelled with springs and dampers. The L-
spring and damper model created soft. yirlding limits on motion. which were appropriate
to model the elasticity of hurnan joints. For firm lirnits such as tloor intersection.
oversampling dunng the timestep minimized interpenetration.
By the time of Wilhelms' work in 1987. the rnechanics of physical ngid-body
simulation were well known. Physical control methods were comparatively primitive.
however. Wilhelms provided five types of figure control. which could be used in
combination. Al1 the control functions opented locally. on a specified joint or segment:
there was no mechanism for coordination or automatic gesture planning. The control
methods were direct dynarnic control of joints by explicitly supplied forces and torques:
relaxation; joint freezing; maintenance of worldspace orientation: and hybnd positional
control. which estimated Forces to match motion specified kinematicaily.
Wilhelms noted that her implementation suffered from problems common to
physicai animation systems. Besides the difficulties of control. the mere mechanics of
solution were very slow. The time required to solve the dynarnics equations as a generai
n x n matrix was O(n3) for n degrees of fieedom. and in practice the solution used was
O(n>). Numerical instability. aggravated by stiff nonlinear spnng rnodels. required the
dynamics solutions and integration to be perfonned far more frequently than the display
rate.
Armstrong demonstrated solution of the dynamics equations in O(n) time by
applying a recursive solution method to a less general mode1 [ArmstrongSj.
ArmstrongS7]. Armstrong and Green [ArmstrongSj] restricted articulated figures to tree
arrangements with no closed loops. For many purposes. such as human figures. this was
not excessively limiting. The assumption of a linear relationship between a link's
acceleration. angular acceleration. and reactive force on the parent link allowed
formulation of the dynarnics equations as n 3 x 3 linear systems-ne for each link in the
figure-related by the linear parent-child substitution. These could be solved to determine
acceleration and angular acceleration in tirne linearly proportional to the number of links.
This reduction in computational complexity made physical animation of detailed
structures like realistic hurnan figures more feasible. However. it by no means solved the
entire problem of physically-based animation's computational expense. Although the cost
of solution did not grow faster than the size of the model. even small models remained
expensive to animate physically.
Control rnethods for this model were primitive. A figure's support against falling or
collapsing due to gravity was provided by attaching a counteracting force to an arbitrary
link. Joint limits were enforced by applying restorative torques. similar to restorative
springs. Explicit guiding forces and joint torques applied by the user generated motion of
the figure. A process of trial and error \vas generaily required to determine appropriate
control values. This expenmentation was aided somewhat by the speed improvement over
other physical animation systems. but better methods of control were needed.
Subsequent work by Armstrong. Green and Lake [Annstrong87] supported more
structured methods of control. They distinguished bcnveen individuai limb movernents
and global motion processes such as ground reaction and balance. Ground reaction was
applied with springs. sirnilar to [Wilhelms87]. Limb actions could be selected as desired.
possibly in combination. also like [Wilhelms87]. Actions included passive reaction:
intemal fictional darnping: maintenance of local orientation at a joint: or explicit
specification of joint angles. To achieve the last. intemal torques were generated to match
the requested joint angle: motion parameters denved from biomechanics were usrd to
constrain the torques to realistic physical values and accelerations.
Armstrong et al.. like Wilhelms. concluded that a user interface based on
specification of forces and torques was non-intuitive. and a system requiring direct
manipulation of such parameters was "not a feasible control mechanism" due to the large
number of degrees of freedom in even a simplistic figure model. They also observed the
need for a facility to coordinate the motion of several limbs. Subsequent work was more
concemed with control than with the mechanics of simulation: no matter which dynamics
formulation is used. the result should be the samç: and no maner how fast the equations
are solved. the result is not usehl for animation if it cannot be controlIed.
Isaacs and Cohen combined fonvard and inverse dynamics with kinematic
constraints to control the motion of a tree structure of linked rigid bodies [Isaacs87].
Their "behaviour fùnctions" provided a more usable control interface than direct
application of forces [ArmstrongSS. Wilhelms87] or painstaking manipulation of each
degree of freedom [Arrnstrong87. Wilhelrns87]. Like behavioural script interfaces to
kinematic animation systems rReynolds82. Reynolds87. Zeltzer821. behaviour functions
allowed reusable. modular organization of al1 the various forces and constraints applied to
a figure. Fields of force. interaction between objects. cornplex behaviours like catching a
ball. and kinematic specifications were al1 described by assorted behaviour functions.
Fonvard dynamic methods of handling kinematic motion specitication. like those
of [Wilhelms87] and [Armstrong87], attempted to estimate appropriate forces to achieve
desired positions or relationships. These forces were then plugged in to the fonvard
dynarnics equations. which were solved as usual to determine the resulting accelerations.
Cornparison of the results to the desired accelerations revealed the accuracy of the force
estimates.
In contrat. inverse dynamics allowed direct calculation of the forces required to
eenerate kinematically specified movement such as path following. When accelerations C
were known. the dynamic equations were rearranged so that the required forces were
solved for directly instead of being estimated. In an extreme case. if accelerations were
specified for al1 degrees of freedom. a purely kinematic animation would be produced.
Since there was no guarantee that the forces generated to achieve kinernatic specifications
were realistic. graphs of controlling torques produced using this rnethod tended to show
rxtremely sharp spikes.
Within a behaviour fûnction, either tonvard or inverse control might be triggered
depending on state or time: the default for any degree of Freedorn not othenvise controlled
was to simulate straightforward dynamic reaction to the motion of the rest of the system.
Kinematic constraints were used ro enforce joint limits and geometric constraints. as well
as to define desired motion kinematically. Joint limits were implemented as hard limits
which. unlike spring-enforced joint limits. could not be exceeded even under extreme
force. Violation of a constraint caused re-iteration of the current dynamic solution
timestep with revised forces andor accelerations.
Barzel and Barr [Barze188] created a more general dynamic animation system. The
figures were not limited to articulated tree structures [Amstrong85. Armstrong87.
Isaacs87] nor linked only with rotational hinges [WiIhelms87]. Instead. their physically-
based animation system was designed for general assortments of ngid bodies.
Geometric constraints were used to control the assembly and animation of
simulated objects. If the constraints were not initially met. the system applied constraint
forces to assemble the system. Inverse dynamics were used to maintain the constraints
during subsequent simulation. The user specified constraints at a high level. without
needing to know the underlying solution equations. ï h e modelling system automatically
set up the equations for solution. but an under- or over-constrained system might easily
result. Methods relying upon formulation of the dynarnic equations as a square matrix
have typically required human analytic skills to identify or create conditions of perfect
constraint [Isaacs87. Wilhelms871. Instead. Banel and Barr used a nurnencal
optimization method for solution. Using singular-value decomposition. they handled
imperfectly constrained systems of rquations by finding a least-squares solution for an
overconstrained system. or a minimal-force solution for an underconstrained system. The
solution gave them geometnc control of a dynamic model: it was not truly kinernatic
control. as there was no explicit control over timing. Constraints were only achieved if
they were physically consistent with the other forces upon the model. The system was
pnmarily used for assembly and simulation of mechanical objects. not active figure
animation.
Brotrnan and Netravali [Brotman88] also suggested kinematic script ing combined
with the physical verity of constraint-based dynarnic solution. The script consisted of key
stores: key poses (like key frarnes) with linear and angular velocity information added.
External forces were applied to the model to make it interpolate the key States. since
straightforward simulation fiom an initial state would be highly unlikely to pass through
them. Constrained by the key interpolation requirements. control forces were optimized
to minimize a combination of motion jerkiness and total control force energy. To reduce
the computation required for the multi-point boundary value problem generated by
multiple keyframes. Brotman and Netravali broke the interpolation into piecewise
segments of two-point boundary problems for evaiuation. The sum of optimal intervals
produced a good. if not necessarily optimal. solution over the entire problem. T o
eliminate sharp discontinuities in the controi forces at interval boundaries. control
continuity was added to the objective function. The resulting smooth control used
significantly less energy than cubic spline interpolation on simple examples. This was
credited with automaticaily producing smoother. more natural inbetweening than would
ordinarily be generated without the skills of a trained animator. Being physically-based. it
automatically related coupled motions even though they might be govemed by diffrrent
parameters. although as presented it was limited to linear systems and constraints.
Witkin and Kass [Witkin88] also presented constraint-based simulation and control.
They solved for motion across the four dimensions of space and time simultaneously.
instead of simulating sequentially through time. Time-varying constraints provided the
scnpting mechanism for animation control and direction. Using time as a solution
dimension caused constraint forces to propagate both backward and fonvard through
tirne. An end constraint could affect earlier actions like the amount of anticipation or
wind-up required to begin the action. Motivational energy was provided by intemal
muscular forces generated by the figure [Miller88. Pentland89. vandePanne90.
Terzopoulos90]. rather than by fortuitous external control forces [Barze188, Brotman88.
Witkin901. The backward constraint propagation automatically generated appropriate
initial forces to achieve constraint goals without resorting to a trial-and-error approach or
arti ficial external forces.
The initial condition for the sequence was a set of states over time. not just one
initial position. The sequence was posed as a constrained optimization problem. and
iteratively solved to achieve frarnes displaying closer and closer correspondence with the
constraints. If the situation given was mathematically underconstrained. the solution
minimized a selected objective h c t i o n such as muscle power eserted. If it \vas
mathematically overconstrained. the solution could faii to meet some or al1 of the
c0nstra.int conditions. possibly violating physical accuracy of the simulation. Work on
spacetime constraints was extended to allow interactive definition of goals [Cohen931 and
faster solutions using hierarc hical formulation of trajectories [L iu941.
Such iterative optimization calculations were timc-consuming. and despite
improvements in caiculation speed ([Liu94]) did not run in real time. Van de Panne.
Fiume. and Vranesic achieved real-time optimal control of animated objects by pre-
calculating the optimal controlling forces [vandePanne90]. They took the idea of an
optimal. goal-driven solution for a two-point boundary problem [Brotman88. WitkinSB].
and extended it into a reusable solution for a set of optimization problems having the
same goal but different starting points within a common state space. A state space is a set
of various possible states of the system: for example. if the state of an object on a surface
is a four-tuple (x. y. i . j. ). its state space is a four-dimensional hypercube. Van de Panne
et al. designed modular controllers which were automatically generated. reusable. and
optimal in ternis of a motion cost function. A controller contained a set of solutions for
the intemal torques required to reach a given goal within a state space. Complex motion
was built up by concatenating controllers.
The controllers were generated using dynarnic programming. First. optimal paths to
the destination were found fiom the regions nearest it: then the process expanded
outward. finding optimal solutions from points outside this solved region to the edge of
the solved region. Since an optimal path fiom farther away contains the closer optimal
paths. this continued to extend optimal paths to the destination. The resulting controller
was a grid of hypercubes filling the state space. A control value stored at c ~ h
intersection of cubes: control values between gnd points were interpolated.
The drawback was that storage for the controller increased exponentially with the
dimensionality of the state space: and the state space typically must have hvo dimensions
(position and velocity) for each degree of freedom of the figure. This rnethod would
rapidly becarne unwieldy if the animated figure was anything less than simple. although
the authors suggested this might be improved by using adaptive sampling or hierarchical
control.
Further work by van de Panne and Fiume [vandePanne93] and Ngo and Marks
mg0931 dispensed with the exhaustive search by doing a random search for feasible
srnsor-response motion controllers. which were then locally optimized based on
evaluation over iterations of fonvard dynamic simulation. Van de Panne and Fiume
selected controllen meeting evaluation criteria from a very large randomly-generated set.
then iteratively refined the parameters of the successfd controllen to mauimize the
selection criteria. They produced simple but robust controllers which. like their earlier
controllers. allowed response to extemal events and could be re-used to animate a
creature in a range of environrnents. Ngo and Marks also began with a randomly-
generated set of stimulus-response behaviours. and subjected this 'genome pool' to C
evolution via a genetic algorithm. At rach iteration. the behaviours which best met the
selection criteria were favoured to reproduce into the next generation. A side benefit of
the global behaviour search obsemed by both tearns of researchers was the discovery of
gaits they would not have imagined for some of the simple creatures they simulated.
1.3.3 Elastic Body Models
Although rnost physically-based animation work so far has concentrated upon the
familiar ngid-body models. few moving subjects in the real world (save perhaps
27
machinery and insects) are actually cornposed entirely of rigid links. Some materiais such
as fluids. rubber. cloth. or soft-bodied anirnals are unlikely to be modelled satisfactorily
by rigid systems. Others. like vertebrates. may be approximated by modelling an
underlying rigid skeletal structure: but for greater realism and physical accuracy. models
capable of deforming in various ways are required.
Kinematic animation of deformable shapes has a long history. as a glance at
traditional animated films will show. Computer keyframing techniques using point
interpolation automatically deforrn objects to follow the key points [Burtnyk71.
Reeves8 1. Kochanek84]. and any technique allowing object scaling can provide squash
and stretch [Reynolds82. Sturman84. Steketee85. Lasseter871. The dynarnic simulation of
deformable O bjects presents greater di fficul ties.
Rigid objects undeqo only rotation and translation when animated. The dynarnics
formulations to calculate the effects of forces upon such bodies are well-established.
Once an object's orientation and motion are calculated. the motion of each point on its
surface is known. The motion of defomable objects is more cornplex. A single
orientation state is no longer sufficient to determine the surface of a deformable object.
Deformations c m change its mass distribution and thus its vrry dynamics. Locally
applied force rnight not cause uniform motion of an entire object: it may propagate
through the object. changing its shape as well as its position.
An early de forniable physical model was presented by Wyvi 11. McPheeters and
Wyvill [Wyvi1186]. They treated deformable objects as assemblages of key points which
generated isosuiràces. As the points were animated. the surface(s) defined by the
combination of their potential fields moved and deformed. Animation of the model could
be controlled kinematically or physically. Physically-controlled motion was produced by
simulating each key point as a point mass. with relationships such as elastic springs
between points coordinating their association into a compound object. No unified
rnechanism was presented for controlling these --soft" objects. nor for formalizing the
compound association of points. Thus objects might break apart if the distance between
points became too great. and unorganized liquid behaviour was easier to implement than
highly organized solid behaviour.
Terzopoulos and Fleischer presented deformable physically-based models with
fomally defined elastic. viscous fluid. plastic. and fracture behaviour [Terzopoulos88].
Elastic restorative forces were treated as potential energy. which was stored during
deformation and released as the mode1 resumed its original reference shape. A
deformable object was viewed as an entire. cohesive substance: mass node points came
into the picture only insofar as finite-difference or finite-element discretization was used
to implement representation and calculation of object motion through time. This was a
different approach fiom [Wyvi1186]. in which the individual mass points were considered
to be independent entities.
In [Terzopoulos88] two alternate formulations were presented to describe
elastically deformable space curves. surfaces. and solid bodies. A prima/ formulation.
which descnbed displacement and deformation together and contributed a non-linear
restorative force proportional to the deformation energy potential. was well-conditioned
for non-rigid models such as cloth. The h-vbrid formulation separated calculation of rigid
motion relative to the world fiom calculation of displacement due to deforrnation. and
was better-conditioned for nearly rigid models such as sheet metal because it altowed the
restorative force to be Iinear. Inelastic de formations (viscoelasticity . plasticity. and
fracture) were implemented by extensions incorporated into the elastic formulations.
Computational complexity. even compared to other physical models. was a
significant drawback of this and other deformable models. Whereas an entire hurnan
figure could be represented by a few dozen ngid links with a few degrees of freedom
between adjacent links. a single simple deformable solid was discretized into dozens or
hundreds of point nodes. During deformation. there were effectively multiple-degree-of-
freedom joints between each node and its near neighbors. each of which exerted forces on
the others. This dense relationship was reflected in the large systems of equations
required for simulation.
Chadwick. Hamann and Parent used a hybrid model concept to provide
physically-based motion of soft tissue for character animation [Chadwick89]. The
physical rnodel for deformable fa- tissue was a lanice of point masses c o ~ e c t e d by
darnped springs. sirnilar to a finite-element elastic model. The base of the mesh was
anchored a skeleton of articulated ngid components. Since the ngid and deformable
control were independent. the skeleton could be animated by kinematic control. while the
sofi body mass automatically reacted in a physically valid way.
The preceding works were not concemed with control methods. They either
required manipulation of key points by methods which had to be determined for each
instance [Wyvii186]: needed individual control of any points which were to be fastened or
guided [Trrzopouios88]: or else merely reacted to externat forces like gravi-. a wind C
field. or skeletal movement [Terzopoulos88. Chadwick891. Other deformable modelling
methods have incorporated control techniques into the rnodel. Constraint-based [Platt88.
Pentland89. Witkin901 and biological models [MilIer88. Miller90. TerzopouIos90. Tu94
Grzeszcnik95] have commonly been used.
Plan and Barr used a finite-element mesh to model deformable objects [Platt88].
Like others working with dynarnics constraints [Isaacs87. Barzel881. their p r i m q
concem was the ability to usetLlly control physically simulated objects. They achieved
this by applying two types of force-based constraints to individual mass elements.
Reaction constraints were used for simple actions such as path following or expulsion
from a polygonal region. such as that occupied by another object. They simply cancelled
force vectors that violated constraints. and added forces to cause critically darnped
motion toward the constraint surface. Augmented Lagrangian constraints (ALCs) were
used to control matenal properties such as volume preservation during squashing. and
plasticity or permanent deformations. They used a Lagrange multiplier optimization
method augrnented by a penalty tùnction to improve convergence. ALCs were more
flexible in their application than RCs. allowing multiple nonlinear constraints.
Witkin and Welch fought the computational complexity of deformable models by
permitting fewer degrees of freedom to deformable objects [WitkinPO]. They considered
only global deformation fùnctions. rather than individual displacement of many mass
points. Calculations were fùrther simplified by restricting the global deformations to be
linear. or better yet affine. in the object's state variables.
This simplification resulted in objects which were capable of only limited types of
deformation. To compensate for the limitations of the model. they composed more
complex models using point-to-point attachment constraints. much in the way that
complex jointed figures are built of ngid components [Barzel88]. A Lagrange multiplier
technique was used for the constraints.
Control ivas provided with the same type of constraint. by attaching an object to a
point following a trajectory through time. This essentially provided a form of key path
interpolation [Baecker69. Reeves8 1. Shelley82. Sturman841. Goal-directed motion was
produced by recalculating the target and path as the animation progressed [Isaacs87.
Barze1881. and could be used for scripted animation and automatic behaviour.
Only currently active constraint points needed to be specified in a given time
interval; physically valid reactions automaticaily occurred in unconstrained segments.
Constrained motions might not necessarily obey the physics of independently mobile
figures. however. since the motivating forces were external rather than generated within
the character. For instance. a character grabbed by a lifting constraint could fly through
the air without jumping or othenvise "pushing off."
Pentland and Williams also reduced deformation parameters and degrees of
freedom by using global deformations [Pentland89]. The geometry and dynamics of
animated objects were separated for calculation. Dynamics and deforrnation were
analyzed as the surn of independent vibration modes. Resulting motions were then
mapped to the object geomeûy. High-fiequency vibration modes were ignored. as their
low amplitude contributed little to gross object movement. This simplified evaluation:
more importantly. the slower frequencies that remained allowed the use of larger
timesteps. greatly reducing the number of evaluation cycles in a given time interval.
Modal analysis could also be used to control character animation. Inverse dynamics
solutions were calculated fiom constraints on object shape and location at two time
instants. The object's elasticity. dmping and initial deformation were adjusted so that the
restoration forces due to its natural oscillation would acliieve the constraints. Since
motion had to be generated by action within the object rather than estemal constraint
forces. figures would automatically display anticipation before movements. producing
lively squash and stretch animation [Lasseter87. Witkin88. van de Panne901. Additional
control for purposes of kinematic exaggeration could be provided by linking deformation
to time. ve-elocity. ancilor acceleration.
Muscular control was used bp Terzopoulos and Waters to mode1 an expressive face
[TerzopouIos90]. The various layers of skin tissue were simulated by layers of spring-
mass elements having different spnng properties and compressibility. The muscles were
modelled as displacement functions which pulled on the muscle attachrnent point and
nearby nodes. Masses not directly controlled by muscle movement were nonetheless
influenced by spring forces which propagated through the lanice. This propagation
through the skin layers automatically generated certain physical side effects of
expressions which enhanced their realism: for example. forces on incompressible tissue
caused wrinkles between the brows when a figure fiowned.
1.4 Previous Work: Animating legless motion
Gavin Miller modelled deformable snakes. worrns. and caterpillars which used a
model of rnuscular action to propel themseives [Miller88. Miller901. The creatures'
bodies were formed by sets of point masses joined by spnngs and dampers. This
elastically deformable structure was naturally suited to the simulation of sofi-bodied
animals such as caterpillars and worms. Others have subsequently used spring-mass
meshes to model biological sofi tissues [Chadwick89. Terzopoulos90]. Such structures
are also applicable to flexible animals with underlying skeletons like snakes and fish
[Miller88. Tu94. Grzeszczuk95]. although increased rigidity produces stiffer equations
which are less tractable than those for sofier bodies.
Locomotion was caused by intemal forces generated by animating the rest lengths
of selected '-muscle" springs as a function of time. The deformations of the creature acted
on the ground surface via directional friction. When appropriately coordinated. the
actions pushed against the ground. causing the creature to movr fonvard. Other extemal
forces included gravity and interaction with specific obstacle constraints. Control was
stnctly deterministic. consisting of appropriate tlexion patterns to produce selected
forward gaits.
The generation of movement by animating spring lengths is a close parallel to the
contraction of muscle fibres in a living animal. The actuating forces for such creatures are
intemal. like the motive forces of a living body. This is in contrat to physical control
methods in which extemal forces push and pull body components into alignrnent with
constraints [Witkin90. Barze188. Brotman881.
Models which c m only move by changing the configuration of their bodies to exert
forces on their environment. as real figures do. are both physically and visually more
accurate [Miller88. Pentland89. vandePanne90. Terzopoulos90. vandePanne93. Ngo93.
Tu941, and allow simulation of not only exterior form but also of control methods. If
physical structure is modelled on real animals [Girard87. Miller88. Miller90. Tu94j.
believable gaits and behaviours may arise fî-om simple controls. n i e process of finding
effective control patterns rnay in itself provide usehl feedback to researchers in both
robotic control and behavioural biology. Theories and control mechanisms c m be
implemented graphically which would be impossible to test with live animals. Once
developed. self-controlled creatures are ideal independent agents for behavioural
animation like flocking and schooling [Reynolds87. Tu941 and goal-directed behaviour
[Reynolds82.Zeltzer82. Girard87. Miller90. Tu94. Grzeszczuk95].
Miller implemented several modes of locomotion using the sarne object mode1 with
different control patterns. Different physical parameters for spring strengths and ground
fiction modelled the physical properties of worms. caterpillars and snakes. Different
muscle actuation patterns rnodelled their methods of locomotion. A later extension to the
work (Miller89. Miller901 added a steenng mechanism and another gait pattern. The
steering mechanism was used to approach and touch a target. improving the ability to
script the motion of the snake. The control mechanism thus became a combination of the
basic cyclic gait çenrrator with a steering bias to gradually bend the body toward the
target. (Grzeszczuk elaborated on this with similar legless models capable of perfoming
daborate. goal-directed behaviour by concatenation of simple muscle actuation
controllers [vandePanne90] developed by an iterative learning algorithm [Grzeszczuk
951.)
Snakes. in particular. are capable of several modes of motion. At least four major
eaits have been descnbed [GrayJ6. Gans66. GansiO]. In addition. snakes c m swim by C
reverting to the same basic motion employed by eels and other long-bodied fishes
[Alexander68].
Rectilinear or straight-ahead progression is used by most segmented worms and
some snakes. It depends on directional fiction against the ground. applied in wave-like
cycles of muscle force. The familiar glide in which every part of the body follows
precisely dong a single path is variously called serpentine motion or horizontal
undulation. Concertina progression. named for the accordion-like bunching of the snake's
body. is a slower gait using horizontal motion. When extreme speed is required.
expecially on sliding surfaces offering poor purchase such as sand. crotaline motion.
better known as sidewinding. is a npid but energy-intensive mode of movement. To
swim. snakes. like eels. pass a series of horizontal waves fiom head to tail down their
bodies. This may be a reversion to the earliest motion patterns employed by long-bodied
verte brates.
Snakes may employ different modes of travel depending on the type of surface.
desired speed. arnount of expendable energy. presence of obstructions. or other criteria
[GansïO]. In particular. horizontal undulation c m only be applied when rnacroscopic
protrusions (typically rocks. branches. rough bark. grasses. et cetera) exist for the snake to
push against. I f the protnisions are usefully placed and suficiently well anchored. the
snake can move with remarkable efficiency. Interestingly. neither the projections nor the
base surface need to offer frictional resistance. Gray and Lissman [Gray491 and Gans
[Gans70] both obsewed horizontal undulation across smooth g l a s or metal surfaces
studded wvith pegs. Gans observed greater traversal speeds when the surface was
lubricated with powder and the pegs were free to rotate about their vertical axes rather
than fixed. Conversely. rectilinear and concertina progression depend upon the use of-as
opposed to the ability to overcome-fiction against the ground or against restraining
sidewalls. The speed of these gaits is limited in part by the amount of force which can be
applied against the ground before the snake starts slipping. The flat. smooth scutes which
overlap like shingles on the snake's ventral surface are well adapted to minimize fnction
that would oppose fonvard movement while mavimizing friction usefùl for propulsion.
The directionality of the scutes' friction varies with the surface. but the coefficient of
fiction resisting backward movement cm exceed four times that against fonvard
movement. and on typical surfaces is probably close to double [Gray49].
Miller's original model [Miller881 implemented rectilinear motion in snakes and
woms. the more cornplex process of sidewinding. and inchworm progression by a
caterpillar. He also mentioned horizontal undulatory progression. but the model presented
did not make use of surface irregularities. and was a better simulation of the uniform
wave-patterns of swirnming than of what biologists term horizontal undulation. He
subsequently modelled goal-oriented stalking motion using concertina progression
[Miller90]. At that time he observed that successful horizontal undulatory progression
would rely upon the presence of suitable leverage points for the snake to act against. but
did not implement the motion.
This thesis presents an implementation of rectilinear progression for snaks and
worm models. horizontal undulatory s~vimming motion like that presented onginally by
Miller. and target-seeking behaviour. In addition. it also demonstrates reaction to
macroscopic obstacles in the snake's path. and their use as levenge points to assist the
snake's travel.
Chapter 2
Physical Mode1 of Serpentine Bodies
Our physically-based model simulates flexible legless bodies using spnngs and
masses. like [Miller£!€!. Chadwick89. Miller90. Terzopoulos90]. The physical model and
the dynarnics computations used are introduced in the t'rst few pages of this section.
Then rnuscular motion is described. along with the Friction model which provides ground
reaction for locomotion. Motion control patterns for forward travel and turning
behaviours are detailed. In the following section. obstacle detection and collision reaction
methods are presented. The addition of environmental obstacles enables use of a new gait
relying for progress on leverage against obstacles instead of friction.
The model is constnicted of point masses c o ~ e c t e d by spnngs. The points
discretize the body mass. while the springs act upon mass nodes. representing the forces
between neighbouring m a s regions.
Bodies are composed of a series of segments. each segment having a standard
arrangement of masses and springs. The same model is used for vertebnte animals such
as snakes and eels. and for invertebrates such as worms. Different spting strengths.
clarnping constants. friction coefficients and motion control patterns are used to
characterize different types of animals.
Two segment structures have been implernented: a cubic arrangement and a
pyramidal arrangement. Cubic segments are lormed by eight mass nodes connected by
springs dong the edges of a cube. In addition, each face of each cube is crossed
diagonally by a pair of springs to prevent shearing (Figure 2). Pyramidal segments were
introduced to better approximate the structure of vertebrate snakes. Like a vertebra and its
ribs. each segment has a lengthwise spine and a support structure around the
circumference. al1 provided by spnngs. Also like snake vertebne. neighbounng sections
are connected by muscles attached to the lateral extremes of the spinal structure (Figure
3)- The triangular cross-section of the body supports eliminates the need for cross bracing
against shear forces.
Figure 3. The mass and spring arrangement of a cube segment. a. Showing cross-springs. b. Series o f cube segments showing only contour springs.
Figure 3. The mass and spring arrangement of a pyramid segment. ri. .4 pyramid segment. b. Series of pyramid segments joined by longitudinal muscles.
The state of a mass node at an instant in tirne r consists of its position x, and
velocity v, . both vectors in 3-space. as well as its invariant scalar mass m. Since the
mass units are treated as points. their orientation can be ignored. This alIows their motion
to be descnbed completely by
+ma
without angular motion terms.
The force f exerted on each mass in a given time interval dt is the surn of al1 forces
acting on the mass. including spring forces and gravity. The spnng force exerted on a
node is given by
where f is the force magnitude dong the spring direction. k , is the spring constant. k,, is
the damping constant. L is the minimum energy rest length of the spring. 1 is the current dl
length of the spring. and - is the rate of spring length change. or the change in spring dt
length during the interval. -4 nrgative force magnitude represents an extended spring
atternpting to contract. and a positive force represents a compressed spring attempting to
expand.
The force exerted by each spring is moderated (darnped) by an arnount proportional
to the relative velocity of the two mass nodes at either end of the spnng. The physical
analogy to this form of damping is sets of spnngs and darnpen acting in pairs upon the
masses. each spnng acting in parallel with a darnper. di The rate of length change - for each spring is calculated as dl
for each spring. where
~=l lP?-P! I l -
and
with p, and p, being the positions of the masses at either end of the spring. and v , and v,
the respective velocities of the masses at the time t .
In addition. a small frictional force is applied to the ventral nodes. This is a
darnping force proportional to the absolute veiocity of each node. to simulate fiction
against the ground. it is in addition to directional friction provided by the snake's
overlapping ventral scaies or "scutes." Directional fiction and its use in locomotion is
discussed in Chapter 3.
The acceleration of each node during the timestep is found by simple division. as
s h o w by rearranging ( 3 ) to get the acceleration resulting from al1 springs acting on the
To determine the nodr's new state at the next timestep. the acceleration must be
integrated with respect to time. once to obtain the node velocity and again to obtain the
new position of the mass. Simple Euler integration is used:
v , _ ~ , = V , + a,Ar (9 )
where s, is the position vector of a node at time t . v , is the associated velocitp vector.
and a , is the acceleration.
Two types of collision constraints are implrmented. A penetration constraint keeps
creatures from falling through the floor. and obstacle collision reactions allow snakes to
push against or bounce OR of obstacles along their paths. Floor penetration is prevented
by simple impulse-based inelastic collision.
If a node is found to have penetrated the floor at the end of a time interval. the
interval is adaptively divided into pre- and post-collision sections. and the node's motion
recalculated. The time and location of the collision are found by linear interpolation of
the node's path. When the node contacts the floor. its velocity in the direction into the
tloor is cancelled. and its motion for the post-collision portion of the interval is calculated
from the contact position using this revised velocity. If the floor reaction were elastic
rather than inelastic. a proportion of a colliding node's position and velocity would be
reîlected away fiom the floor at the contact point instead of cancelled.
Detection and resolution of collisions with extemal obstacles. dong with their role
in serpentine locomotion. will be discussed later. A test for self-collision is not
implemented. Therefore the motions undertaken by a snake or worm should be such that
the animal will not collide with itself.
Chapter 3
Motion
3.1 Simulation of Muscular Action
Animals move by contracting and relaxing their muscles. When contracted.
muscles shorten. pulling their anachment points closer to each other. When relaved. a
muscle may be stretched. allowing its anachment points to be pulled apart by the action
of opposing muscles.
The springs of this model c m act like an animal's muscles. In addition to providing
the body structure. spnngs can be anirnated as a function of time to cause movement.
When a spring's actual length Z equals its minimum energy length L. it exerts no force
upon its a t t achen t points (nodes). This is equivalent to a relaved muscle. If the actual
length of the spnng is greater than its minimum energy length. (1 - L ) > O . the spnng
exerts restorative forces which pull its ends together. attempting to match L. This is
equivalent to muscle contraction. Likewise. if the spnng is shoner than its rest length.
( I - L) < O . the spnng expands to match the minimum energy length.
Biological muscles do not esert expansion forces. but muscles often work in pairs
to provide an equivalent effect. The major skeletal muscles of snakes and other
vertebrates occur in pain on opposite sides of joints. Contraction of one muscle bends the
joint in one direction. and contraction of the opposing muscle bends it the other direction.
A single spring can therefore model a pair of muscles: spring contraction is equivalent to
contraction of one muscle. and spnng expansion is equivalent to contraction of the
opposing muscle. Worms use paired muscles as well. but in a different fashion as they are
more defomable and lack a rigid skeleton to pull against. Unconstrained by rigid
vertebrae, a worm can extend or compress its overail length. Each segment of a worm has
both longitudinal and circumferential muscles. Its longitudinal muscles. like those of a
snake. may be used in pairs to bend and tum. In addition. circumferential muscles rnay be
used to extend the snake lengthwise. Contraction of these muscles reduces the worm's
diameter: its volume must be conserved. causing a corresponding lengthwise elongation.
3.2 Directional Friction
In the absence of anything to push against. muscle contractions c m do nothing but
change a figure's shape or orientation. In accordance with Newton's third law. motion
with respect to the world requires action against something extemai to the figure. In this
model. the interaction rnay occur at the microscopic scale of directional fiction. or at the
macroscopic scale of obstacle collision. Directional friction and the motion patterns
designed to utilize it for locomotion are discussed first.
Segmented worms such as earthworms possess small bristles called setae on their
bodies. These are angled backward so as to slide fieely when pulled fonvard in the
direction of travel. But when these structures are pushed backward against the ground.
they catch against even microscopic surface irregularities. greatly increasing the frictional
force. Snakes sirnilady have broad overlapping scales called "scutes" on their ventral
surface which perform the same function [Gray&].
When a worm contracts. it pulls its head and tail in toward its centre of mass. The
front sections are pulled backward toward the middle of the body. while the tail sections
are pulled forward toward the middle. Under the influence of directional fiction. the front
portion of the worm resists backward drag, while the rear portion is free to slide forward.
This results in a net foward motion. as the tail is drawn up toward the head (Figure 4.a).
Figure 4. A simplified NO-spring worm or snake. Angled scutes on each node are easy to drag forward. difficult to force back. Nodes begin in positions i. j, k. New positions afier muscular movement are i', j', k'. a. Forward motion due to expansion. b. Fonvard motion due to contraction.
Conversely. when the worm expands. the head section can freely siide foward
under the expansion force. while the rear segments resist moving backward. Again the net
cffect is fonvard motion. as the head is dnven fonvard while the tail stays in place
(Figure 4.b).
Directional friction is sirnulated by cancelling the backward velocity components of
nodes which touch the floor surface. To simplify calculations. only ventral nodes are
tested for contact: this assumes the snake or worm is not asked to perform maneuvers
which might flip it over.
"Back~vard" for the purposes of directional friction is determined by the direction
of a spine vector for each segment. For the pyramidal segments used by the snake model.
this spine is a unit vector in the direction of ventral longitudinal spnng i (Figure La) .
1, Thus, the spine s, is calculated as s, = -. where 1, is the longitudinal spnng. 11 1/11 For the cube segment rnodel. a virtuai spine is determined through each segment
(definitely a major evolutionary step for an invertebrate wom!) In this case. a fonvard
segrnen t i
Figure 5. a. Calcuiation of spine vector for pyramidal segment. b. Node indexing for calculation of spine vector for cube se, =ment.
Figure 6. Calculation of virtual spine vectors for cube segments.
spine unit vector is calculated for the ring R, of nodes between segment i - 1 and
segment i. using the positions of rings R,-, and R,-, to determine direction (Figure 5.a.
Figure 6). The spine vectors point forward. dong the direction of the nodes' travel. Define
centre(Ri) as the average centre of rnass of the four nodes j of ring i:
then the virtual spine may be caiculated as
The spine vector for nodes of ring r, is used to cancel the backward component of the
nodes' velocity v. If a node's motion has no backward component. its velocity is
unchanged:
3.3 Control Pattern for Locomotion
The spring-mass simulated worm emulates various motions by changing the rest
lengths L of its spnngs as a function of time. to simulate muscle contraction and
extension. The pattern of motion varies according to the creature's gait. Each gait starts as
a predefined cycle of muscle impulses. A gait may be selected or the muscle impulses
modified by behavioural interaction with the environment. The only interactive behaviour
currently implemented is goal-seeking locomotion (discussed later). Although this rnay
be sophisticated enough to imitate the actions of a worm. there are indications that snakes
apply other usehl behaviours in addition, such as selection of gaits in accordance with
terrain type, and modification of locomotive muscle patterns to mavimize the use of
obstacles encountered [Gans70. Gray491. It would be interesting to detemine what
amount of advance path planning real snakes do to optimize the nurnber or location of
future leverage points. Because of the cornplex nature of their environment. for example.
do tree snakes need to look ahead to plan their direction of travel and use of supports. or
do they locate a path by trial and error? Potentiai behaviours and control mechanisms are
discussed in the section on further work (Chapter 7).
The most basic locomotion pattern is the rectilineczr gait. If a rnany-segmented
worm actually moved d l its segments in unison as illustrated in Figure 4. the entire force
of its motion would be concentrated alternately on the foremost and the hindmost
segments. This places too much stress on the extrerne segments. while the intemediate
portions of the worm carry none of the load. This rnay be dealt with in several ways.
Some caterpillars ("inchworms") apply muscuiar control to tum this into a NO-point gait.
with the weight of the creatures entireiy supported by their front and back ends
alternately. Worms. on the other hand. distribute the stresses along their sofi bodies by
passing alternate waves of compression and relaxation down their length (Figure 7).
To implement rectilinear progression. the longitudinal spnngs of a cube segment
(the four spnngs of each segment which run parailel to the body) are contracted or
expanded together to animate the length of the segment. The rest lengths of the diagonal
springs along the sides. top. and bonom of the animal are adjusted at the same time to
match the new longitudinal muscle lengths. Given the dimensions in Figure 8.a. a change
of d to the segment length results in diaçonals of length D. where
Figure 7. A simplified two-spring worm alternately contracts and espands segments.
Figure 8. Calculation of diagonals. a. Rectilinear motion. b. Dorsal and ventrai surfaces during horizontal motion.
A traveiling sine wave is used to animate the wave pattern in which the muscle
contractions ripple down the worm's length. At each timestep. the new rest length L, for
each segment i is calculated as
where L,,, is the naturai length of the segment when the worm is completely relaued. i t l
is the wavelength in segments. c is an amplitude coefficient. and r is an integer which
increases with tirne. As t increases. the waves progress d o m the worm's body.
Figure 9. Three frames of rectilinear progression. A full cycle of expansion and contraction is seen in these frames.
Snakes. having a relatively rigid Uiternal skeleton. cannot cornpress and extend
their length as elastically as worms. Some snakes can employ rectilinear progression by
sliding their skin over their ribs [Gans66. Gans70. Hildebrand741. However, a more
commonly employed method of snake locomotion is horizontal unùulation.
To mode1 this. compressions generated by a sine wave are once again passed dong
the snake's body. However. the left and right sides of each segment do not contract in
unison. Instead, they are 180' out of phase. so that the left side is allowed to expand as
the right side contracts, and vice versa The rest lengths of the diagonal springs dong the
sides are adjusted accordingly. in the same way as for the rectilinear motion model.
Figure 10. Three frames of snake undulation. The progression of muscle conuactions down the body can be seen, as can the resulting forward motion.
The directional friction model is the same as for the wonn, because the wide scutes
on the snake's underside play a similar role to the bristles on the edges of worm's
segments. Directional friction cancels the backward component of the snake's
movements. transforming diagonal side-to-side movements into a net forward motion.
The effect of this is illustrated in Figure 10.
When this gait is perforrned with the cubic segment model. the lengths of diagonal
springs on the top and bonom of the animal must be calculated as the diagonals of
trapezoids rather than rectangles because of the differential right and left contraction.
Given the dimensions in Figure 8.b. the diagonal lengths D are calculated as
D = J ( ~ + r n ) ( ~ + n ) + h ' . ( 16)
The pyramidal segment model. used primmily for snakes. allows the pyramidal
sections to pivot relative to each other at their single node junction. If the pyramidal
sections are treated as inflexible. the lengths of the lefi. right. and dorsal muscles L,. L,.
and L, respective1 y. are
%AT L, = 2r s i n e = >r sin( - ') 3 - -
where 0 is the angle between the bases of two segments. P is the angle of bend between
two adjacent segments. 4 = Zn-Zu-8 is the opposing angle. r is the length of a pyrarnid
side. h is the width of a segment. and g is the length of a segment (Figure 1 1). As seen in
Figure I I . a is the interna1 angle formed between the lefi and nght sides of a segment.
and O,,, is the corresponding angle formed between the forward and rear sides of a
segment.
4
Figure I I . Two pyramidal segments and the three muscles connecting them. a. Relaxed alignment. b. Bending under muscle tension.
In the relaxed configuration of the snake. 9 = = Q,,, and there is no bend between
segments (Figure 1 La). When a bend is introduced. the bend angle P = O , , , -8. thus
0 = O , , , + p (Figure 1 1 .b). Horizontal curves rnay be controlled by constraining the
bend angle P. from which 0. 4. and the spring lengths c m be determined: or by
controlling one of the side muscles. from which P. 0. 4. and the other spring lengths are
calculated. By rearranging ( 17). 0 may be found from a muscle length L as
The angles a and O,,, are constant for rach mode1 and. like the lengths r and y.
need to be calculated only once. They may be determined by:
eNAT = K - a - (23)
Conversely the bend angle P. and therefore 8. varies with the movement of each segment.
calling for repeated evaluation of several inverse tngonometric hnctions. The
computationd expense incurred may be somewhat reduced. either by the use of lookup
tables relating the lengths of L,. L,. and L,. or by approximating (17-19) with simpler
functions. Approximation is particularly satisfactory when it is observed that the
pyramidal segments are not actually inflexible. and in practice may compensate for
suffïciently small approximation mors by defonning elasticaily. This implementation
therefore calculates the lengths of the muscles as
This produces acceptable motion without warping under moderate arnounts of muscle
contraction. For the parameter values used. see Appendix A.
This implementation exercises no gaits requiring motion of the creature out of the
horizontal plane. If desired. however. such motion would be accomplished by altering
contractions of the dorsal muscles to be out of phase w-ith the horizontal contractions.
thus lifting segments fiom the ground.
3.4 Goal-Seeking
If an animated figure is to be useful. direction or guidance should be possible. For
locomotion behaviours. the most basic factors include how a figure moves-its gait-and
where it goes. Control patterns for several gaits were described above. A simple steenng
mechanism for horizontal undulation is introduced here.
Steering may be irnplemented in several ways. Two common methods are path-
oriented wherein the figure traces a predefined path. and goal-oriented in which it
attempts to reach a single target by any means. In the latter method. if the target is
animated through time the figure may be guided along a desired path: even so. the path to
the goal would tend not to describe an exact trajectory but rather a general direction of
motion. Goal-oriented motion has more relevance for physically-based models. because
restriction to an arbitrary path may conflict with physical modes of locomotion. For
example. if a snake were to be drawn along a predetermined path. it might be easy to
implement kinematically (by dragging a long cylinder along a curve). but the relationship
between the snake's movements and its progress would be lost. It would be the passive
object of erternal forces. rather than an active independent entity. The presence of a target
or goal allows the figure to use its own abilities to achieve a desired end. Along the way.
complexities of behaviour may arise from the interplay of control patterns and reactions
involved.
In this rnodel. the snake is steered toward a target goal during forward undulatory
progress by modification of the wave cycle passing down its body. in accordance with
environmental observations.
Aiming toward a target during rectilinear locomotion is simple. A bend must be
introduced during one or more contraction wave cycles. by differentially contracting the
nght and lefi sides such that the side nearer the target (the "target side") is shoner than
the side away from the target (the "offtarget side.") This is done until the tigure's head is
aimed toward the target.
Tuming during horizontal undulation is complicated by the oscillatory motion of
the snake. The oscillations swing the head of the snake through an arc so that it does not
aim any single direction for long. Extreme intensification of the curvature of the
horizontal bends already occurring in the body can cause folds or kinks. or simply self-
penetration as the creature is tumed back on itself.
Calculation of turning behaviour in the plane uses a forward vector s,,,. a
horizontal "sideways normal" vector n orthogonal to it. and a target direction vector t
(Figure 12). Al1 vectors are unit vectors. "Forward" for the purposes of undulatory
progression is the normalized average of the foremost iv segment spine forward vectors.
where w is the oscillation period in segments:
The target vector is simply
where t, is a point representing the target location. and p, is a point at the head of the
snake. such as the tip of its nose.
The sideways vector n is arbitrarily chosen to point to the snake's right. as viewed
from above. It is generated by
When the snake is confined to a plane perpendicular to the z axis. u is sirnply a unit
vector pointing "up" along z. More generally.
u=s,, x t. s,, * t. s,,, + O . (33)
The sideways vector could as easily be chosen to the left. if the terms "right" and "lei?"
are exchanged throughout the discussion on turning.
The snake should turn nght to approach a target on its right side. and lefi to
approach a target on its lefi. A healthy animal will not describe a large circle to its right in
order to approach a target on its left side: it would look unnatual. The cosine of the angle
a between n and t is used to determine which way to tuni (Figure 12.a). Since n and t are
unit length. the cosine of a may be computed as net. The snake should turn left if
cosa < -E. or right if cosa > E. A constant. E. is used ins ted of O because unduiation of
the snake normally causes variations in the average fonvard direction as it moves.
Withoiit slack in the test approximately equal to the angle swept bp the head during
undulation. the snake exhibits jerky behaviour due to overcorrection of its aim. As the
snake nears the target. the side-to-side error distance allowed by the test decreases. until
the snake ends up nudging the target with its nose. If -E c cosa < E. the target is either
straight ahead of the snake. in which case no tum is necessary. or directly behind it. A
separate test (such as cos0 < O) could be applied to detect a target behind the snake. and a
turn direction arbitrarily assigned. Alternatively. it c m be decided that the snake does not
"see" objects directly behind it. and ignores the target. The latter behaviour is currently
implemented. although in general our snake has "knowledge" of its entire world and
target detection does not othenvise depend on visibility.
cos, =O
Figure 12. Calculation of turn parameters. a. Angle a determines direction of turn. b. Angle O determines sharpness of tum.
Turning may be effected by reducing the sharpness of undulatory oscillations away
from the target. increasing the curvature of oscillations toward the target side. or both.
We achieve a net course toward the goal by reducing the amplitude of oscillations of the
snake's head away from the goal. Little is known about real snakes' higher-level muscle
control patterns. but observation and parallels to other vertebrates suggests it may be
more likely that they directly shorten the muscles in the direction of the goal.
Implernentational constraints. namely
the stability of the spring-mass systern
under large spring forces and the
probability of hyperextension due to too
sharp a tum (Figure 13) require us IO
a. b- limit the abruptness of curves so the Figure 13. Hyperextension due to sharp tum. a. Normal bend. b. Hyperestension.
snake does not r u into itself or fold.
Hyperextension increases if the longer springs This limitation could be avoided by the attempt to assume a shorter rest length. until the stnicrural pyramids cross and collapse. use of a jointed rigid-body mode1
(discussed in Chapter 7). The current implementation produces convincingly self-
motivated behaviour. although the turns may be unusually wide when the target is close
behind the snake's head (for results and an example. see Chapter 5).
The horizontal flexion cycle is impiernented as a cyclical deviation from the natural
muscle length. From ( 15). the deformations are ordinarily calculated as
- , . f i - - .. (3 5)
These are added to the "natural" muscle rest length L ,, to get L,R and L,L. the lengths of
the right and lefi side muscles respectively. The modification for turning therefore
consists of reducing the amplitude of the oscillatory deformation for the portion of the
wave cycle during which the snake t m s away from a line toward the target (Figure 14).
We do this with an amplitude adjusunent factor a. resulting in a deformation of dp.
where a is the inverse of tum strength in the range [O. 1):
cosû if cosû > O ( 3 6 )
O ifcosû 5 O
The srnaller the value of a. the sharper the turn. The snake tums as sharply as possible
when the target is level with or behind its head (cosû $ O). The degree of tum is reduced
when the target is in front of the snake. letting it exit smoothly fiom the tuming behaviour
and avoid jerky steering overcorrections as it approaches the target.
At a given timestep t . the tum modification is applied only to segments i which are
at a point in the undulatory cycle such that their target side muscles are expanded
( d,rlRf;t7 > 0 ) and their offside muscles correspondingly contracted. thus:
( L u r + 4r,R(;t7 ifd, r l R f ; f T < O
ifd, r I R [ ;)7 < O
il.
Figure 14. a. Two segments of undeformed (motionless) snake. b. Lefi- and right-curving segments of undulating snake. c . Lefi- and right-curving segments of a snake targeting a goal to its right.
The muscular deformations for horizontal undulation are calculated as usual by (34)
and (35) for cach side S ~ D E E ( RIGHT. LEFT] of each segment i of the
The target direction ZIRGET E {RIGHT. LEFT) is determined relative to
snake. yielding dIv,. .
the snake. The length
o f these deformations d,vlJF. are then tested dong the target side o f the snake. SIDE = KIRGET.
The deformation is modified to cause turning action for the segments that are lengthened
on the target side. and applied without modification to the remaining segments.
Chapter 4
Obstacles
4.1 Serpentine Locomotion
The mode1 presented so far is based upon previous cornputer simulations of elastic-
bodied snake motion [Miller88. Miller90]. with the addition of a steering mechanism for
the horizontai undulatory progression of snakes. The simulation of horizontal undulation
is incomplete. however. because it relies upon directional friction rather than force
against obstacles. As mentioned in section 1.4. in order to correctly mode1 horizontal
undulation of snakes. macroscopic obstacles must be introduced to the snake's
environment [Gray46. Gray49. Gans66. Gans70. Hiidebrand741.
The remainder of this thesis will discuss the introduction of obstacles to enable true
undulatory locomotion.
4.2 Obstacle Representation
Obstacles are represented in simplified form as cylinders perpendicular to the
çround. They are assumed to be ta11 enough to intersect the snake at its widest cross-
section: a snake need not worry about riding up over the top of a short object. Obstacles
may be of varying sizes. and may occur randomly in the snake's environment. I f the
snake encounters too few obstacles to assist it in locomotion. it reverts back to the
undulatory gait using directional friction.
The methods of snake locomotion described so far have been confined to the
horizontal plane. Snakes can flex their bodies both horizontally and vertically. and in
some instances, such as climbing over obstacles or even up trees. they move fieely in
three dimensions. However. sidewinding is the oniy gait which requires motion outside of
the plane of the travelled surface. Although the notion of "horizontal" may be remapped
to follow an irregular surface. rectilinear. concertina and horizontal undulatory gaits
remain in the "horizontal' plane. The motivational forces for horizontal undulation act
only laterally upon protruding irregularities. not downward against the ground [Gray49.
Gans70J. Therefore object reaction for horizontal undulation is confined to the plane: this
is a reasonable simplification for movement on Ievel ground.
Using the pyramidal representation of snake body segments described earlier. the
snake's widest cross-section is where it touches the ground. This approximates the
structure of real snakes. whose ventral sides are flattened so that the scutes are flat against
the ground. (For visual representation. a cylinder with flattened oval cross-section may be
supenmposed on the snake body: if the greatest width of the oval equals the width of the
real mode1 at its base. object interaction still appears correct.)
Since the base of the snake interacts with the bases of objects solely in the
horizontal plane. collisions currently c m be represented in only two dimensions (Figure
1 j). This simplifies collision detection and reaction. since only the edge boundaries of the
snake where it rests on the ground need to be tested for collision with obstacles.
Figure 15. Simplified snake-obstacle collision interaction. Solid lines show laterd boundaries of objects.
4.3 Collision Detection
At the end of each simulation timestep. collisions between the snake and
environmental obstacles must be tested. One method would be to calculate the
intersection of each line segment of the snake's outline (the solid lines in Figure 15) with
every obstacle. Since our simplified objects are cylinders. each lateral intersection is the
intersection of a line with a circle. This is calculated by solving
(W. w)trL +2(w -wL.)?r+((wL. -y.) -2 ) = O (39)
for u. where the segment's endpoints are p, and p,: the circle's centre is p'. and its
radius is r ; w = p , - p,; and w, = p, - pc. Any real (non-irnaginary) solutions for ir are
parametnc points of intersection aiong the line p, + mm. The segment from p, to p,
coincides with this line for tl E [O, 11.
In such a brute-force coIIision detection method. solution of this quadratic equation
is required O(oN) times each timestep. where o is the number of obstacles and iV the
length of the snake in segments.
A hierarchical collision detection scheme is used instead. which can typicall y Save
time as O and iV increase. (It is possible to design worst-case situations in which the
nested tests do not elirninate most obstacles from the intersection calcuiation. making the
extra layers of testing a wasted expense.) Simpler tests using bounding boxes are done
first to quickly elirninate most of the objects from consideration. and to narrow down the
location of suspected intersections. The line-circle intersection is calculated for only a
few objects and snake segments. when al1 preliminary tests indicate their proximity.
Three levels of collision tests are used. At each Ievel. the test indicates whether
contact between the given objects is possible. If contact is not possible, the combination
may be removed from further collision consideration. If contact is possible. the objects
are subjected to the next level of testing to determine whether the potential intersection
actually occurs. The test levels used. between obstacle and snake respectively. are:
bounding box-bounding box; bounding box-segment: and obstacle-segment.
The bounding boxes used to simplifi proximity tests are mis-aligned two-
F-4
Figure 16. Collision detection. a. Snake and obstacles with bounding boxes. b. Bounding box intersection: 1 . no intersection due to disjoint y ranges: 2. no intersection due to disjoint x ranges: 3 . overlap in .u and y indicating possible collision.
dimensional rectangles exactly large enough to contain the x and y extremes of the
bounded objects (Figure 16.a). Bounding boxes for the stationary obstacles only need to
be established once. The snake's bonds may change at every timestep.
At the coarsest test level. a square bounding box is defined around the base of each
cylindrical obstacle. Other bounding boxes enclose sections of the snake. each box
enclosing some n segments (Figure K a ) . The value of n is a compromise between the
number of tests initially sequired and their granularity. The bounding box of each obstacle
is tested for intersection against each of the coarsest level of snake bounding boxes.
Obstacles whose bounds do not intersect any of the snalie bounds can safely be
eliminated fiom m e r consideration for collision (Figure 17.a). This first testing step
requires time O(oN/n). The bounds intersection test is simple (Figure 16.b): the x and y
extremes of each bounded object. which form the edges of the bounding boxes. are stored
in the formation of the bounds. These are compared to detect overlap of the two bounding
boxes.
Figure 17. Results of collision tests. a. Snake and obstacles remaining afier first test: bounding box-bounding box intersection. b. Results of second and third collision tests: finer bounding box-bounding box intersection (lefi): and obstacle-segment intersection showing actual contacts (right).
Additional levels of collision testing may be perfonned each iime an obstacle's
bounding box bb,, overlaps a snake bounding box bb,. Surviving obstacle bounding
boxes are tested against a hierarchy of increasingly fine-grained snake bounding boxes. In
this exarnple. the next test is against bounding boxes of size n = 1 (Figure 17.b). each
enclosing a single snake segment. At each stage. an obstacle needs to be tested only
against bounding boxes which lie in regions where the previous level of testing indicated
possible collision.
The effectiveness of each level of collision testing varies with the number and
distribution of obstacles. and even with the changing positions of the snake's coils. A
measure of the effectiveness of a given level of collision testing is simply cornparison of
the proportion of remaining obstacles it eliminates. against the cost of the test itself
(including updating box bounds). The number of test levels is currently detennined by
observation and pnor knowtedge of the datasets. Conceivably. however. the collision
tests could be adaptively tuned during runtime. A bounds test level could be dropped for
the next m iterations if the proportion of obstacles culled is too low. A test between n and
O << n segments could be reinstated if the arnount of work done for testing at level o is
too great.
If the obstacle database were very large (as it would be if the snake were navigating
through a wide and cornplex environrnent). arrangement of obstacle bounding in a
q~iadtree might be used to reduce the time required to O(Mogo) at each timestep
[Moore88]. The search tree organization is not currently necessary given the small
nurnbers of obstacles used to demonstrate obstacle-assisted snake Iocornotion: on a small
database. the cost of perf'orming an O(oX/n) search is less than the extra cost of
maintaining the quadtree structure.
The actual line and circle intersection calculation is only performed on those
combinations of obstacles and snake segments whose potential for collision could not be
ruled out by any of the preceding tests. If the intersection equation (39) yields one or
more real solutions. collision has occurred. Exactly one real solution indicates detection
at the moment of contact. resulting in a single point of contact (Figure 18.a). Two real
solutions indicate interpenetration between the snake and the obstacle. meaning contact
first occurred earlier in the timestep (Figure 18.b). If there is no real solution. either there
is no contact between the obstacle and the snake. or the obstacle is completely enclosed
within the snake (Figure 1 8.c). Complete enclosure becomes more likely as the obstacles
become smaller. In a lifelike environrnent with obstacles of arbitrary size. a test for such
surrounded obstacles must be performed. This c m be done by simply testing if the centre
of the obstacle is within the quadrilateral defined by the base of the snake segment.
It is theoretically possible for interpenetration to occur so swiftly that the objects
are once again separate by the time collision detection o c c m at the end of the timestep.
Our implementation does not handle such cases: in practice. the problem has not been
observed in this simulation.
Due to the discrete sampling of motion through time. the exact moment of contact
is usually missed. By the time contact is detected at the end of an integration interval. the
snake may have travelled some distance through the obstacle. In order to react to
collisions appropriately without allowing interpenetration of snake and obstacle. the
contact time m u t be determined so that collision reaction forces c m be added to the
simulation.
Figure 18. Line-Circle Intersections. a. One real solution. b. Two real solutions. c. No real solutions.
If contact is found to have occurred during the time interval (r - &r). the contact
tirne is located by binary subdivision of the interval until the parametnc intersection
points il, and u, converge within a tolerance. or until the subdivided interval is
suficiently small. The positions of segment endpoints p, and p, in the middle of the time
interval c m be found by restoring their States from the begiming of the interval and re- Ar
integrating on a subinterval of T . This intermediate position of the segment is tested i
again for intersection with the obstacle. A single solution means the moment of contact
has been located exactly, and subdivision may halt. Two solutions mean the collision
occurred in the first half of the interval, and zero solutions that it occurred in the second
half of the interval (Figure 18). Subdivision is iterated on the appropriate subinterval.
until IIzi,, - tr , (1 < E or the interval size becomes less than 5. where E and E are very small.
Location of the time of contact completes the information necessary to resolve each
collision. ï h e contact tirne. parametnc intersection point u at that time. contact segment
endpoints p, and p , . and obstacle identity are inserted into a chronological list of
collisions sustained by the snake dunng the most recent timestep. This handles cases of
multiple segments contacting one object. and of multiple object collisions with one
segment. No assurnptions are made about the total numbrr of collisions sustained in a
given timestep.
4.4 Collision Resolution
Once collisions in the current timestep have been detected. they must be resolved
so appropnate reactions occur and objects do not penetrate one another. One typical
method of collision resolution is to insert temporary virtual springs between the closest
points of approach in order to provide forces which drive objects apart. Another method
is to analytically detemine the results of the collision [Moore88]. The latter approach is
implemented here. Each collision record is removed fiorn the snake's collision list and
resolved in chronological order. Resolution is performed in the order the collisions
occuned during the timestep. because proper physical resolution of one collision often
opposes the motion which allowed its neighbouring segments to collide with the same
object; hence resolving the first collision may decrease or eliminate the reaction required
for subsequent collisions. (Just before resolution. each detected collision is locally
checked again at the finest granularity of test to determine if it has diminished in this
way. More on this in a moment.) Of course. it is also possible for the reaction to one
colIision to cause an entirely new collision somewhere else. To be entirely certain of this
would require performing the full global collision test afier each individual collision
resolution. In practice we have found it sufficient to allow any such --introduced
collisions to remain until they are detected and resolved in the next timestep.
The first step in collision resolution is to check whether it still needs to be
performed on one or both ends of the segment in the intersection record.
Collision detection is performed on the edges linking mass points. since an edge
c m intersect a convex obstacle while its endpoints remain safely outside. Collision
resolution is performed on the points. since they have the mass upon which the physical
reaction occurs. It is necessary to ensure. therefore. that the collision of a particular point
which has been detected twice-once for each external edge c o ~ e c t e d to the node-is
only resolved once. This is done by means of a flag. set when the node's reaction is first
calculated. The flags of segment endpoint nodes p, and p, are checked to detect whether
collision resolution has already been carried out for one or both: if both. no further action
is performed.
As mentioned above. another case in which no resolution is required is when a
detected collision is found to have been prevented by a neighbouring segment's reaction
to a pnor collision. In this case the later "collision" detected was a temporal discretization
error which occurred because sarnpling size (timestep AI) was too coarse. At some time in
Ai. the segment appeared to be carried into the obstacle. although the neighboring
segment should have impacted the object first and been repulsed. The error is corrected
when the timestep size is reduced by the contact time search. and the neighbouring
collision reaction is perfomed. This case may be missed by the collision resolution flag
test; it is detected by retesting the segment and obstacle for intersection (at the finest level
of the collision test hierarchy) just before their collision is to be resolved. using the new
positions of p, and pl updated by the results of collisions perfonned so far. As in the
initial collision detection testing. collision is confirmed and must be resolved if the
segment-circle intersection test (39) has one or more real solutions rr. If 14 is outside the
interval [0.1]. more than one segment is involved: the curent segment's motion is
resolved by clarnping u to the interval.
The information used to calculate reaction to a collision includes the masses.
positions. and velocities of the colliding bodies. When collision occurs exactly on a mass
node. this information is given by the state of the point mass. When the initial contact
occurs between nodes. collision resolution is calculated using a virtual mass node p,
between p, and pl . The state of p, is set as a linear combination of the States of p, and
Pi :
P, = 2lPl +(l- PO (40)
When u = O or ir = 1. it can be seen that p, = p, or p, = p, . respectively.
The virtual node p, reflects off the obstacle at the point of contact. From Newton's
third law. we know that the contact force of the collision causes the node's velocity to be
reflected about the normal of the obstacle. The node's post-collision velocity v, is
calculated by
where v, is the node's original velocity. c is the coefficient of restitution. and Y, defines
the direction of response. Y , represents a response in the direction of the source: it is
reflected about n, the unit normal to the object surface at the contact point. to find YI. We
use c = 1 representing a perfectly elastic reaction without energy loss during the impact.
The yielding or squashiness expected from compressible flesh occurs instead from the
time delay of transmitting the impact along elastic lines of force to neighbonng mass
nodes.
The post-collision reaction velocity of pb is distributed back to the end nodes not
already flagged as having undergone collision reaction. and their reaction flags are set. It
might be imagined that the distribution would be of force rather than velocity. and would
be proportionate to the proximity of p,, . This does not work well with the spring mesh.
however. Force distribution dong the springs comecting nodes takes several timesteps to
occur. which is too long for realistic collision behaviour. Impact force distribution is done
immediately. This is done by treating p, and p, approximately as if they are joined by a
rigid bar rather than an elastic spring at the moment of impact. Although no torque is
introduced (as it would be if such a bar was actually stmck). the force of collision and
reaction is transmitted rigidly to both nodes. Afier collision. the vrlocities -
%,, = v P , - "P, . In the case that contact occurs exactly on a node p, . the impulse force
(which is strong enough to accelerate w o nodes to the velocity of p, ). is shared among
p, and its neighbours P,.~,,,,, and P,.,~, around the circumference of the snake. so that
- + %,, - vP, = vP,
- - v ~ . , , - V p t ' w + "P' . This is essentially an irnplementation 3 2
shortcut to speed distribution of collision effects to neighboring nodes. along the lines of
a semi-implicit formulation. Such effects could propagate through the spnng forces
comecting the nodes. but require multiple calculation iterations to do so; explicitly
propagating the effects of the force in a single timestep allows those iterations (which
would require much smaller timesteps in order to emulate the stiffness of a muscular.
bony snake) to be skipped. making a Iarger timestep feasible and greatly speeding
calculations. The result differs slightly fiom that of ordinary spnng propagation by
rnoving the circumferentially neighbouring nodes pl-,, and p , . , proportionally slightly
farther. If the energy is propagated over multiple iterations. some of the energy to move
p,.,,, and p l , difhses dong other spnngs to neighbouring nodes during the
transmission iterations. Empirically. however. the solution is an appropriate one
considering the relative incornpressability of a snake's muscular body. It would be less
appropriate for a more laterally deformable creature such as an invertebrate or fatty
animal.
The final step in collision resolution is to correct the end-of-timestep positions of
nodes whose velocities were changed directly by the collision impulse (typically p,, and
p, ). This is done by re-integrating for their position over the remainder of the timestep
afier the collision. using the new velocities.
C hapter 5
Results: Passive Use of Obstacles
In the absence of environmental obstacles. our snake successfblly locomotes using
the directional fiction mode1 described by Miller [Miller88]. In a richer environment. it
applies horizontal undulation against obstacles where possible. or reverts to the use of
directional friction where obstacles are not available. When a target is present the snake
tums toward it: if allowed to continue past the target. it maintains its direction as long as
the target remains directly behind it. If other forces (deflection of the snake by obstacles.
or. in theory. interactively moving the target) result in the target moving out of the narrow
"invisible" zone. the snake resumes tracking it.
Figure 19. Three frames of snake undulation without targeting. The dot is a stationary reference point.
Figure 70. Snake undulaton showing targeting.
Figure 20 shows four frames of the same snake in pursuit of 3 target at an acute
angle from its original direction of travel. This is the least gracehl turn for our
implementation: the target is behind and yet close to the head. yet a sharper turn radius is
prohibited by implementation constraints (Chapter 3).
When the snake contacts an obstacle with the posterior travelling edge of a wave
(Figure 2l.a.b.). force provided by the contact reaction assists in propelling the snake
Figure 2 1 . Direction of contact with obsracles. a b. Posterior edge contact: snake is able to exen force posteriorly (backward). driving it fonvard. c. d. Anterior edge contact is less useful for locomotive forces.
The snake's forward progress is not assisted when it contacts an obstacle at the
anterior edge or the crest of a wave passing dong its body. However. the wave naturally
continues travelling past such contacts. and the posterior edge of the following wave
cornes into position to assist locomotion.
Wave travel past contact points c m also eventually be seen at productive
(backward-directed) contacts. however. The curent unsophisticated muscular control
pattern does not take advantage of the new horizontal undulatory gait to maintain optimal
contact with each obstacle. This makes our version of horizontal undutation far less
efficient than that applied by biological snakes. Our snake displays the most natural
appearance of motion when both directional fiction and obstacle reaction are used
together to produce its horizontal undulatory gait.
The duration of contact is not large in the
current model. Without modifiing its locomotion
pattern, the snake may contact obstacles Iess than
15% of the time while travelling through an
obstacle field of moderate density (see Appendix
A for obstacle distributions used). It typically
increases its speed by only about 1.5%. When
O combined with the observation that the snake's
speed increases with the arnount of time the
Figure 22. Horizontal undulation with obstacles
snake is in contact with multiple obstacles.
however. this minor increase in speed indicates
that more efficient simulated snake progress c m
be achieved with more sophisticated control
patterns to properly retain contact with obstacles.
Figure 23. Undulation in a crowded field.
% speed % time al1 O h time 3+ number of increase contacts contacts obstacles
Figure 24. Sarnple execution values for one snake traversing various fields of obstacles.
It is aiso interesting to observe the correlation between the snake's speed increase
and the amount of time it spent in contact with three or more obstacles. This is in
accordance with biomechanical caiculations that real snakes require three or more points
of contact to progress entirely by horizontal undulation [Gray46. Gans701.
The snake may be hindered by the presence of obstacles if there is not a wide
enough passage between them. If the snake steers toward obstacles which are closer
together than the width of the snake. it will coIlide with them and perhaps become stuck
between them (a 'reverse' gait has not been implemented). Because our snake currently
lacks directional judgement. this means that obstacle fields of high density must be
tailored io leave a wide enough passage for the snake (Figure 23. Figure 25).
Figure 25. Another view of a denser obstacle field.
Although real snakes are presumably intelligent enough to avoid. or at least
extrïcate themselves from, impenetrable thickets of obstacles. obstacle density still holds
a penalty. Gray and Lissmann's experiments [Gray49. Gans701 demonstrated that the
total lateral force exerted by a snake increases as the nurnber of obstacles increases. but
the resultant fonvard force vector remains "relatively constant" (Gans gave examples in
which the forward force also increased but at a much smaller rate; he did not indicate
whether that force contnbuted to speed or sirnply overcoming the ffiction against the
additional obstacles). The snake's locomotive eficiency decreases drastically when
density of the obstacle field forces it to use more obstacles for horizontal undulation.
Useful arrangement of obstacles is also crucial. Obstacles packed so tightly they become
a single wall might be considered an extreme case of obstacle density. If this wall. or the
space between a pair of walls. is effectively straight-sided. horizontal undulation cannot
be used to travel parallel to it. In order to make fonvard progress. a snake must be able to
apply force with a backward component. Since a straight wall does not permit an angle of
contact to provide a backward-directed impulse force. the snake must switch to another
eait. such as rectilinear or concertina progression. which make use of static friction to C
provide a postenor force component.
Chapter 6
Conclusions
Worm and snake locomotion may be simulated by a model of masses connected by
elastic springs. Changes in the spnng lengths provide muscular forces to move the
creature. Given the ability to react against the environment. these motions are used for
locomotion. Different gaits utilize different types of environmentai interaction and
different muscular pattems.
Directional friction of the worm's segments or snake's scutes is used in rectilinear
locomotion. Altering the muscular pattem produces a more serpentine gait. The
introduction of contact with obstacles in the environment allows horizontal undulation.
When suitably placed objects are available. Our snake pushes against them to assist
its locomotion. producing serpentine horizontal undulation similar to that of a real snake.
Although the snake spends proportionately little time in effective contact with the
obstacles. like a real snake its speed increases with contact (Figure 24). OveraIl it travels
slightly faster using the leverage provided by this gait than using a friction-based gait. but
room is seen for improvernent in the control mechanism.
A simple directional control model c m modify the horizontal undulation for
steering, producing beliaviour that appears lifelike and directed. Given a target. the snake
alters the amplitude of its muscular pattern asymrnetrically. producing a steering bias in
the direction of the target. A moving target has not been implemented. but would be
interesting to provide animator control to interactively affect the path of the snake.
In the absence of sufficient obstacles to push against for locomotion. the simulated
snake travels using a directional fiction model. which results in a gait visually similar to
swimming. Because the control patterns are the sarne. it rnodulates smoothly between
these two gaits. depending on the immediate presence of obstacles. This successfully
imitates the way real snakes shifi between motion through loose sand or water. and true
horizontal undulation upon encoutering suitable obstacles such as reeds or rocks. A
snake may perform different gaits simultaneously if parts of its body are on different
types of surfaces. Such behaviour emerges autornatically in our snake as it moves
between regions populated with obstacles and regions without. M i l e our obstacle
interaction is effective. our tests indicate this implementation does not go far enough.
Many avenues for M e r work remain. but we postdate that the most important of these
is an improved control mechanism to tmly duplicate the elegance and eficiency of snake
locomotion.
Chapter 7
Further Work
This thesis has extended a simple model of snake locomotion. To obtain more
realistic results. two major aspects of control should be explored fùrther: a finer level of
muscular control. and more sophisticated path and gait planning. Further development to
the physical model would add the capability to simulate more cornplex 3d environments.
In addition, a ngid mode1 with a segmented skeleton may be more rficient than the
spring-mass model at transmitting the localized contact forces used by the type of snake
locomotion introduced here.
A finer level of muscular control would allow the snake to transfer energy more
effectively given a particular set of contact points. Snakes adapt their body curvature to
actively control the direction of reactive force. During horizontal undulation, the left and
right horizontal forces exened by a snake are equal. cancelling each other out regardless
of how many obstacles are on the lefi or the right. The snake thus rnoves only along its
long mis. without sideways motion. even in irregular environrnents. This efficiency of
motion produces the eerie effrct of a snake seeming to flow along its chosen path. Like
the real animal. a simulated snake should be able to dynarnically adjust the curvature of
its body. and the amount and direction of force applied at rach point. to progress
smoothly over a variety of terrain with minimal exertion. Such a snake would adjust its
undulatory wave pattern to maintain the most productive angle of contact with an
obstacle. rather than periodically losing contact. Application of a leaming system might
allow the snake to develop its own muscle controllers. It would be interesting to
determine if a simple sensor-actuator feedback model [vandePanne93. Grzeszcnik95]
would hit upon an appropriate undulatory gait. Pressure from contact points should be
one of the sensory inputs; success could be measured in t ems of absolute speed. or speed
relative to muscular energy used (efficiency).
More sophisticated path planning is also needed to allow the simulated snake to
choose an appropnate course with knowledge of its goals in tems of destination and
speed. The steenng control implemented provides this in a simple fashion. but the process
should ideally allow the snake to take into account the terrain and available contact points
as well. Biomechanical expenments have shown that a snake of moderate length can
obtain the greatest fonvard acceleration with the Ieast expenditure of force by using
exactly three obstacles in horizontal undulation [Gray46. Gray49J. With better path
planning. the snake would try to maintain contact with the optimum number of obstacles
for efficient progress. If insufficient obstacles were available. it should choose the most
efficient alternative gait toward its goal.
Good path planning is particularly necessary for the snake to successfully adapt to a
three-dimensional environrnent. The physical extension of our model to three dimensions
is straightfonuard. Our snake could. with only minor modifications. be placed in a .
environment of hills and uneven surfaces as long as the surface can reasonably be
traversed by a snake. The addition of obstacles which it must go over instead of around.
like terraces or logs. requires coordination of muscle activity to produce motion outside
the horizontal plane [Gans66. Gans7O. Miller881. The collision detection and resolution
algorithms c m be extended to three dimensions. although their implementation becomes
slightly more complex.
However. in order to take to the treetops like a tropical treesnake. more complex
behaviour is required. In such an environment. the snake's gait must explicitly take into
account the need to apply force not just to the rear but downward to resist gravity as well.
On the ground. if a snake does not plan an effective course and finds itself with too few
contact points to perform effective horizontal undulatory locomotion. it c m resort to a
fiction-based gait for some distance. In the branches. a snake continuing with too few
contact points will fall. An arboreal snake must therefore be able to plan a course with
suficient contacts to support it at al1 times. or know when to retreat to safer -'footing".
Path planning for a simulated snake might be done using behavioural choices like
[Tu941 to drive the current steering mechanism based on a balance between the desired
direction and directions offering a suitable nurnber of obstacles for support. Lirnited local
area knowledge. like that provided by vision. could be combined with a preference of
varying strength for gaits using obstacles: the preference might range from slight if the
snake is unhurried. to exclusive if it is in the treetops. The snake could thus be given a
tendency to turn back from paths that don't offer sufficient obstacles for locomotive use
and seek alternate paths. depending on its preference for using obstacles.
If locomotive speed and efficiency were the sole criteria used for path selection. our
snake as implemented would have only slight impetus to prefer horizontal undulation. as
it currently benefits from only slight locomotion speed increase when contacting
obstacles. As we suggested abovc. this may be improved by better muscle control for
undulatory motion. Another improvement may be possible in choosing a more
appropriate dynamics model for the new gait. The spring-mass rnodel works well with the
smaller spring constants used to model soft-bodied creatures influenced by non-localized
forces like gravity. friction. and water pressure [MilIer88. Tu901. However. the
importance to certain gaits of the underlying jointed rigid-body structure of a snake's
spine becornes apparent with this model. To transfer highly Iocalized forces from a few
obstacle contacts along a snake's body, the springs must be very stiff. which reduces the
nurnerical stability of the mode1 and requires a very small simulation timestep. An
incompressible spine would transmit fonvard locomotive force most eficiently: a jointed
rigid body would be better suited to robustly simulate such stiffness than a spring model.
Appendix A
Implementation & Timing Details
These models were implemented in C and run on SGI and DEC Alpha machines.
On an SGI IndigoL 10000. simulation of a snake requires approsimately double real time.
and worms seem heavily cafTeinated. Several dynamics iterations are calculated for every
frame displayed. Frames may be displayed as they are simulated using the GL graphics
library. or current node locations may be saved to disk for later display at faster speeds:
this is desirable when running on less powerful machines. due to the slowness of physical
simulation.
The stability of this spring-mass mode1 in practice depends heavily on the values
chosen for spring stiffness and timestep size. The low order Euler integration method
used requires small timesteps to keep its error suficiently small despite the stresses
imposed by the muscular variation of spnng lengths and collision forces against
obstacles. The vaiues used in this implementation are listed below.
Snake:
timestep Ar
spring constant k ,
damping constant k,
number of segments
max muscle compression
muscle action wavelength
fiction coefficient
O . 009
4
28
1s
32 %
12 segments
0.02
Wom:
timestep Ar 0.03
spring constant k, 0 . 5
damping constant k, 3 .5
nurnber of segments IS
mas muscle compression 40 %
muscle action wavelength 12 segments
friction coefficient 0.02
The cylindncal obstacles used v q from one to three snake body widths in
diarneter. They are scattered pseudo-randomly with roughly three to six snake body
widths between them.
Bibliograp hy
Alexander. R. McNeill. Animal Mechanics. University of Washington Press. Seattle WA. 1968.
Arnaya. Kenji. A m i n Bruderlin and Tom Calvert. "Emotion from Motion." Proc. Graphics Inrerface '96 222-229. May 1996.
The American Heritage Dicrionary. Houghton Mifflin. 1 987. Microso fi Bookshelf 1992.
Armstrong. William W. and Mark W. Green. "The Dynarnics of Articulated Rigid Bodies for Purposes of Animation." The Visual Computer 1 (4):23 1-40. 1985.
Armstrong. William W.. Mark Green and Robert Lake. "Near-Real-Time Control of Human Figure Models." IEEE Cornputer Graphics and Applica~ions 7(6):52-6 1 . June 1987.
Badler. Norman 1.. Karnran H. Manoochehri and Graham Walters. "Articulated Figure Positioning by Multiple Constraints." IEEE Cornputer Gruphics and .4pplicurions 7(6):28-38. June 1987.
Baecker. Ronald M. "Picture-Driven Animation." Proc of' the Spring Joint C'ompzrter Conjerence. .I FIPS 273 -88. 1 969.
Bartels. Richard H.. John C. Beatty. and Brian A. Barsky. An Introducrion ro Splines for ilse in Comprrrer Gruphics and Grornefric Modeling. Morgan Kaufmann. 1987.
Bmel. Ronen and Alan H. Barr. "A Modeling System Based On Dynamic Constraints." Proc. of SIGGRA PH88. A CM Ciimputer Graphics 22(4): 1 79- 188. August 1988.
Blumberg Bruce M. and Tinsley A. Galyean. "Multi-Level Direction of Autonomous Creatures for Real-Time Virtud Environments" Proc. of SIGGR4 P H 9 5 ..I CM Cornpilier Graphics 29(4):47-54. August 1995.
Brotman. Lym Shapiro and Anin N. Netravali. "Motion Interpolation by Optima1 Control." Proc. of SIGGR4 PH88. ACM Comprrter Graphics 22(4):309-3 1 5 , August 1988.
Bruderlin. Armin and Lance Williams. "Motion Signal Processing." Proc. of SIGGRA PH95 A CM Compurer Gruphics 29(4):97- 104. August 1 995.
Burinyk, Nester. and Marceli Wein. "Computer generated key f k n e animation." J. of rhr Sociew of Molion Pictirre and Television Engineers 80(3): 149-53. March 1 97 1 .
Calvert, T. W.. J. Chapman and A. Patla. '*Aspects of the Kinematic Simulation of Human Movement." IEEE Cornpufer Graphics and .4pplications 2(9):4 1 -50. November 1982.
Catmull. E. --The pro biems of computer-assisted animation." Proc. of SIGGR4 PH78. ACM Computer Graphics 1 2(3):348-53. August 1978.
Chadwick. John E.. David R. Haumann. and Richard E. Parent. "Layered Construction for Defomable Animated Characters." Proc. of SIGGRAPH89. .KM Compter Graphics 23(3):243-52. July 1 989.
Cohen. Michael F. "Interactive Spacetime Control for Animation." Proc. of' SIGGUPH92. ACMCornputer Graphics 26(4):293-302. August 1992.
Csuri. C. "Realtime film animation." IEEE International Convention Digest. -12-3. March 1971.
Foley. James D. Andries van Dam. Steven K. Feiner. and John F. Hughes. Compirtrr Graphics Principles and Practice. znd ed. Addison- Wesley. 1990.
Gans. Carl. "Locomotion Without Limbs." Xutiiral History 75(2): 10- 17. (3):%-1( 1. 1966.
Gans. Carl. "How Snakes Move." Scientific American 222(6):82-96. 1970.
Girard. Michael. "Interactive Design of 3 D Cornputer-Animated Legged Animal Motion." IEEE Cornputer Graphics and Applications 7(6):39-5 1. June 1987.
Gray, J. "The Mechanism of Locomotion in Snakes." l Erperimental Biology 23(2): 10 1 - 19, December 1946.
Gray. J. and H.W. Lissmann. -'The Kinetics of Locomotion of the Grass-Snake." J. E-rprimental Biology 26(2):354-67. 1949.
Grzeszczuk. Radek and Demetri Terzopoulos. "Automated Learning of Muscle-Actuated Locomotion Through Control Abstraction." Proc. of SIGGRAPH95. .A CM Compirter Graphics 29(4):63-70. August 1995.
Hildebrand, Milton. Analysis of krtebrate Structzire. John Wiley & Sons. 1 974.
Hoedeman. Co. Tchoii-Tchoir (Film). NationaI Film Board of Canada. 1972.
Isaacs. Paul M. and Michael F. Cohen. "Controlling Dynarnic Simulation with Kinematic Constraints, Behavior Functions and Inverse Dynamics." Proc. of SIGGRAPH87. ACM Computer Graphics 2 1 (4):2 15-24. July 1987.
Kochanek, Dons and Richard Bartels. '7nterpolating Splines with Local Tension. Continuity. and Bias Control." Proc. of SIGGRAPH84. ACM Cornputer Graphics l8(3):33-4 1. July 1984.
Korein. James U. and Norman 1. Badler. "Techniques for Generating the Goal-Directed Motion of Articulated Structures." IEEE Cornputer Graphics and .ipplications 2(9): 7 1 - 8 1. November 1982.
Kroyer. Bill. Seminar on computer animation and the making of Fern Gul[v. At the Seattle International Film Festival. May 29 1993.
Lasseter. John. "Principles of Traditional Animation Applied to 3D Computer Animation." Proc. of SIGGRIPH87. .4C.C1 Cornputer Graphics 2 1 (4):35-W. July 1987.
Laybourne. Kit. The Animation Book. Crown. 1979.
Liu. 2. and M. Cohen. "Hierarchical Spacetime Control." Proc. of SIGGR4PH94. ACM Cornpzrtrr Gruphics 28(4):35-42. August 1 994.
Miller. Gavin S. P. T h e Motion Dynamics of Snakes and Worms." Proc. of SIGGRA PH88. .dCM Cornputer Graphics 22(4): 169-75. August 1988.
Miller. Gavin S. P. -'Her Majesty's Secret Serpent" (Video.) Apple Computer. Inc. submission to SIGGRAPH'89 Film and Video Show. August 1989.
Miller. Gavin S. P. "Goal-directed Animation of Tubular Articulated Figures." in .\.laking Thern iLfow. Badler et. al. eds.. Morgan Kaufmann. 1990.
Moore. Matthew and Jane Wilhelms. "Collision Detection and Response for Computer Animation." Proc of SIGGRI PH88. AC-Lf Cornputer Graphics 12(4):289-98. August 1988.
Ngo. J.Thomas. and Joe Marks. "Spacetime Constraints Revisited." Proc. oj' SIGGRAPH93. .KM Comp~rter Graphics 27(2):343-350. August 1993.
van de Panne. Michiel. Eugene Fiume and Zvonko Vranesic. "Reusable Motion Synthesis Using State-Space ControIlers." Proc. of SIGGR1PH90. . K I 4 Computer Graphics 24(4):225-234. August 1990.
van de Panne. Michiel and Eugene Fiume. "Sensor-Actuator Networks." Proc. of SIGGRAPH93. ACM Cornputer Graphics 27(2):335-342. August 1993.
Pentland, Alex and John Williams. "Good Vibrations: Modal Dynamics for Graphics and Animation." Proc. of SIGGMPH89. ACM Cornputer Graphics X ( ; ) : 2 1 5-22. July 1989.
Plan. John C. and Alan H. Barr. "Consuaint Methods for Flexible Models." Proc of SIGGRAPH88. .4CA4 Computer Graphics 22(4):279-88. August 1988.
Reeves. William T. "Inbetweening for Cornputer Animation Using Moving Point Constraints." Proc. of SIGGRA PH8 1. .4CM Cornputer Graphics 15(3):163-9. August 1981.
Reiniger. Lotte. Die A bentetirr des P rimen Achmed (Feature film). Gemany. 1976.
Reiniger. Lotte. .&tcassin and Nicoiette (Film). National Film Board of Canada. 1975.
Reynolds. Craig W. "Flocks. Herds. and Schools: A Distributed Behavioral Model." Proc. of SIGGR4 PH87, ;ICA4 Compziter Gruphics 2 1 (4):25-34. July 1987.
Rossberg. Kiaus. A First Coirrse in Analytical .Clechanics. JO hn Wiley & Sons. 1 983.
Shelley, Kim L. and Donald P. Greenberg. "Path Specification and Path Coherence." Proc. of SIGGRA PH8Z . C M Compziter Graphics 1 6(3): 1 57-66. Jul y 1 982.
Steketee. Scott N. and Norman 1. Badler. "Pararnetric Keyframe Interpolation Incorporating Kinetic Adjustrnent and Phrasing Control." Proc. of SIGGMPlf85. .-IC:Cf Cumputer Gruphics l9(3):255-62. July 1985.
Terzopoulos. Demetri and Kurt Fleischer. "Deforniable Models." Viszral Compirter 4506- 332 . 1988.
Terzopoulos. Demetri and Keith Waters. "Physically-based Facial Modelling. Analysis. and Animation." J Vi.niuliiation und Cornputer .himarion 1 (?):73-80. 1990.
Tu. Xiaoyuan. Demetri Terzopoulos and Eugene Fiume. "Go Fish!" .4C.I.f SIGGR-IPH Fïdeo Revierv lsstre 91: SIGGRLPH193 Electronic Theuter.
Tu. Xiaoyuan and Demctn Terzopoulos. Xrtificial Fishes: Autonomous Locomotion. Perception. Behavior. and Learning in a Simulated Physical World." Proc. of SIGGRAPN94. rlC\.l Cornputer Gruphics 28(4):43-50. August 1994.
Unuma. Munetoshi, Ken Anjyo and Ryozo Takeuchi. "Fourier Principles for Emotion- based Hurnan Figure Animation." Proc. of SIGGR1Pff95. .KM Cornputer Graphics 29(4):9 1 -96. August 1995.
Wilhelrns. Jane. "Using Dynamic Analysis for Realistic Animation of Articulated Bodies." IEEE Computer Graphics and Applications 7(6): 12-27. June 1987.
Witkin. Andrew and Michael Kass. "Spacetime Constraints." Proc. of SIGGRAPH88. ACM Compter Graphics 22(4): 159- 168. August 1988.
Witkin. Andrew and William Welch. -'Fast Animation and Control of N o ~ g i d Structures." Proc. of SIGGRAPK90. ACLM Computer Graphics 3(3):243-52. August 1990.
Witkin. h d r e w and Zoran Popovic. "Motion Warping." Proc. of SIGGR4PH95. .1CM Computer Graphics 29(4): 105- 108. August 1995.
Wyvill. Brian. Craig McPheeters. and Geoff Wwill. "Animating Sofi Objects." Visual Comptrter 2235-242. 1986.
Zeltzer. David. "Motor Control Techniques for Figure Animation." IEEE Cornputer Graphics and Applications 2(9):5 3-60. November 1 982.