Tamara - tspace.library.utoronto.ca€¦ · praxinoscope [Layboume79]. The thaurnatrope. a spinning...

97
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

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.

I i v i n u c c V H L U N I I U I Y

TEST TARGET (QA-3)

APPLIECI 1 IMAGE. lnc 1653 East Main Street - -. - - Rochester. NY 14609 USA ,=-= Phone: 71 W482-0300 -- -- - - Fax: 71 6/288-5989

O 1993. Appiied image. lm. Ali Righls R e s e ~ e d