Group Title: Department of Computer and Information Science and Engineering Technical Reports
Title: Integrating simulation and animation approaches for autonomous articulated bodies
Full Citation
Permanent Link:
 Material Information
Title: Integrating simulation and animation approaches for autonomous articulated bodies
Series Title: Department of Computer and Information Science and Engineering Technical Report ; 93-016
Physical Description: Book
Language: English
Creator: Fishwick, Paul A.
Porr, Hanns-Oskar A.
Affiliation: University of Florida
University of Pennsylvania
Publisher: Department of Computer and Information Sciences, University of Florida
Place of Publication: Gainesville, Fla.
Copyright Date: 1993
 Record Information
Bibliographic ID: UF00095178
Volume ID: VID00001
Source Institution: University of Florida
Holding Location: University of Florida
Rights Management: All rights reserved by the source institution and holding location.


This item has the following downloads:

199397 ( PDF )

Full Text


Paul A. Fishwick
University of Florida
Computer and Information Sciences Dept.
Bldg. CSE, Room 301
Gainesville, FL 32611
mail: fishwick
phone: (904) 392-1414

Hanns-Oskar A. Porr
University of Pennsylvania
Dept. of Computer and Information Sciences
200 S. 33 Street
Philadelphia, PA 19104-1. ;"'
phone: (215) 898-1976

1This is an expanded paper based on earlier work presented at the 1991 Winter Simulation Conference [23]

TR93-016 Computer and Information Sciences, University of Florida 2


The simulation of autonomous agents requires effective use of both computer graphics and

animation; however, there has not been sufficient attention paid to the problem of seamlessly

integrating traditional computer animation techniques with simulation model constructs.

Such an integration is important since simulation output is becoming increasingly graphi-

cal. Our work demonstrates that discrete event methods within computer simulation play

an important role in helping to organize animations. We discuss an animation of several

articulated figures via the control afforded by discrete event modeling and simulation. We

have found that multiple models consisting of discrete event and continuous components

can provide an easier to understand description of a complex system. Also, the blending of

animation keyframes and discrete events provided us with great expressibility in integrating

animation and simulation approaches.


Computer simulation researchers view the world through collections of mathematical models.

While model output can be graphical, this is often not seen as the primary goal. Instead,

model validation against the real world phenomenon serves to pique the simulationist's in-

terest. Conversely, computer graphics researchers working on animation clips are concerned

with appealing graphical output, possibly at the expense of world validation. After all, for

the average graphics researcher, the whole point of the modeling enterprise is to build anima-

tions that are visually appealing without regard to some a criterion of model fidelity against

physical behavior. While these two worlds computer simulation and animation appear

TR93-016 Computer and Information Sciences, University of Florida

at odds, there is much to be gained from an integration. For the graphics researcher, simula-

tion can offer a wide variety of modeling techniques. The evolution within graphics has been

from keyframe models to physically based models; however, this can be seen more generally

as a movement to the use of models as they are known within simulation -whether or not

the models are composed of physics formulae. Therefore, with this broader view, automata

models, stochastic models and network based models (Petri nets, Bond graphs, System Dy-

namics graphs) can be placed into the collection of possible model types used by computer

animators. The focus on modeling is of key importance and not simply "models based on

physics." For computer simulation, we will demonstrate that the use of the keyframe method

can be directly incorporated into simulation models to represent higher levels of abstraction

associated with physical movement. The integration of computer animation and simulation

methodologies tells us that it is not necessary to always use either a high level (automata

based) or low level (physically based) model structure. We can integrate a number of ab-

straction levels. This integration has two primary benefits: 1) to better organize a system in

terms of levels, and 2) to allow very fast execution of parts of the system through abstraction

level traversal [19].

Badler et al. [3, 4] have produced a system that integrates AI, simulation and animation

concepts. Tasks are specified in natural language [26, 17, 32] and are used to construct a

model for simulation and animation. Our work on integrating animation with simulation

most closely resembles Badler's approach since we are interested in a hierarchical methodol-

ogy for computer animation -from natural language task description down to video frames.

Our current concentration is focused on the use of multiple mathematical models to drive

the animation of complex systems. We have found that a flexible and comprehensive multi-

TR93-016 Computer and Information Sciences, University of Florida

model [18, 24, 20] representation is necessary to control the animation of systems with

articulated objects in a detailed environment.


Table 1 displays a wide variety of simulation modeling types available for experimentation.

[Table 1 about here.]

As can be seen from table 1, discrete event models are dynamical models whose state variables

take on a discrete number of values. While time is continuous in discrete event models, there

are also a discrete number of time changes corresponding to the state changes. Discrete

event modeling is useful for representing a system's dynamics at a fairly high abstraction

level, and therefore complex systems can be efficiently represented as a network or hierarchy

of discrete event and continuous models [24, 20].

Key components of systems are well defined in the systems literature [42] and include

state, event and time. The state of the system represents the condition of the system objects

and varies over time. Events are specific points in time where the state changes. Often, events

have cognitive associations; that is, certain state/time pairs denote specific actions that have

natural language equivalents. For instance, the familiar barbershop model contains entities

(people) that move through the system (shop) using two events: "arrival" and "departure."

Figure 1 displays the process of modeling and simulating a barbershop.

[Figure 1 about here.]

In fig. 1, The input to a simulation system such as SimPack [22] is the graph model specifi-

cation. Models such as the barber shop model are constructed from queuing networks, and

TR93-016 Computer and Information Sciences, University of Florida 5

queuing networks are a form of procedural, data flow modeling where the barber (server)

accepts entities (data) that flow through the system. Declarative, state-oriented modeling is

also possible by emphasizing the current state of the barber or entities. The top two models

in fig. 1 display these two alternative modeling strategies: data flow vs. state transition.

Given that events demarcate changes in state, we may form an event graph (fig. 1) that

displays the event precedence in the barbershop. As people arrive into the stop every ten

time units (i.e., dt = 10), they either (1) begin servicing immediately (if the barber is not

busy), or (2) wait in a first-come first-serve queue until the barber is free. Servicing takes

20 time units.


In the following sections we will give an introduction to the field of computer animation. We

will describe the kinds of models that can be animated, as well as a wide range of tools and

algorithms that are available today to specify a desired motion.

3.1 Geometry Models: Rigid And Articulated Bodies

There are two types of basic models that can be animated: rigid and articulated bodies. A

rigid body consists of just one single element, such as a sphere or leg. In an articulated body

such as a human or a robot several rigid bodies are collected into a movable structure. For

most articulated figures it is possible to organize all sub-objects in a hierarchical "articulation

tree" as shown in figure 2. Such an object hierarchy has the advantage that if one link is

moved, all of its descendants will also move. This is similar to real world behavior: If a

human turns the torso, the arm, head, hands and fingers will also turn.

TR93-016 Computer and Information Sciences, University of Florida

[Figure 2 about here.]

At this stage it is as though a sculptor has chiseled a statue out of a block of marble: All

the limbs are there, but they cannot be moved. To enable movement, joints have to be

placed inside of the structure. There are two basic types of joints available [15, 2]: revolute

and prismatic (slider), as shown in figure 3. Both joints have only one "degree of freedom"

(DOF): the revolute joint may only rotate over one axis, and the slider can only slide along

one axis. It is possible to model any higher DOF joint by breaking it down into a .. ,..I

chain" of the above type joints. For example, the human shoulder is a spherical joint and

has three DOFs. It can be modeled conceptually as three orthogonal revolute joints that lie

on top of each other.

[Figure 3 about here.]

In a computer implementation there has to be a formal, canonical way to describe how the

links are attached to each other. This can be done using the Denavit-Hartenberg [16, 2, 15]

notation, which has become a standard in the robotics literature.

3.2 Animation Systems

The task of a computer animation system is to allow the user to specify object motion in an

easy to use, high level environment. There are several types of animation systems available,

each one taking a fundamentally different approach in describing motion. In general it is

possible to achieve the same animation with each of these types, but with some the user will

have to put in a much higher degree of interaction than with others. Figure 4 shows some

of the most successful and often used techniques.

TR93-016 Computer and Information Sciences, University of Florida

[Figure 4 about here.]

3.2.1 Programmed & Scripted Animation

Programmed animation is the lowest level of motion control available since the motion is

hardcoded inside a specially written program. Programmed animation is used only if an

animator requires a special effect, or if a specific motion is not handled by a general ani-

mation system [45]. The disadvantages are obvious: The user has to know a programming

language, and the quality of the motion is directly tied to the quality of the programmer.

Furthermore, if a different motion is to be used, the program has to be completely rewritten.

Script animation involves a specialized programming language that produces graphics and

animation [40, 14, 47]. Its advantage is that the user can create the animation in a more

structured manner so that they do not have to worry about the low-level implementations.

3.2.2 Keyframe Animation

Keyframe animation is one of the oldest computer animation techniques; since it was first

introduced [11] it has become one of the most popular types of creating animations with a

computer [44, 30, 25]. The concept is an extension of how animation is traditionally done in

2D, for instance, in an animated cartoon. Here, a figure is hand drawn on a transparency by

the master animator only at key points in the movement (at the beginning and the end). All

in between frames are then filled in by an assistant animator using artistic judgement [49]. In

the 3D case, the actual mathematical parameters that describe the position and orientation

of an object are used for the interpolation. These parameters represent the body's DOFs.

Every body has six DOFs (3 rotational, 3 translational) that determine how it is placed

TR93-016 Computer and Information Sciences, University of Florida

in Cartesian space. An articulated figure has additional DOFs, its joints, that describe

the position of the links. All of these parameters uniquely determine the position and

configuration of a body. The animator defines the configuration (i.e., sets all DOFs) of an

object only at key times in the movement, the keyframes. The computer is then used to

calculate all in between frames by interpolating the individual DOFs using a spline curve

technique [33]. The three most commonly used splines in animation are the Catmul-Rom

spline [13], the Cardinal spline [43], and the Hermite spline [37], because the curve passes

through the spline control points.

[Figure 5 about here.]

3.2.3 Dynamics

The quality of an animation created with any of the techniques described so far greatly

depends on the skill of the animator. To have a motion sequence look realistic requires

talent and training [34]. For this reason, much recent research in computer animation has

involved taking the burden off the animator and placing it on the system which produces

the animations automatically. One promising direction is d.',,,ii; which is concerned with

applying the laws of physics to a computer model. There exist several techniques that de-

scribe the "equations of motion," such as the Newton-Euler, the Lagrangian [2, 15], the

D'Alembert [31], the Gibbs-Appell [51], and the Armstrong notation [1, 50]. Dynamic simu-

lation is capable of producing very realist looking motion, however the technique does suffer

from a number of flaws:

TR93-016 Computer and Information Sciences, University of Florida

1. All systems developed for high-level dynamic simulation, (i.e., for human [10] and insect

gaits -;, 36]) are non-general. The equations of motion must be explicitly developed

for a particular model and are usually hardcoded in the system. To teach the system

a new movement, the program has to be changed.

2. The systems are often difficult to control: The animation has to be specified in term of

forces and torques [51], or boundary condition accelerations and velocities [53]. Both

ways are unnatural for an animator.

3.2.4 Goal-Directed Animation

In all of the systems described above, the animator is still forced to specify the motion

in an unnatural way. Creating a natural animation system is the topic of goal-directed

animation. In such a system, the animator states a goal in natural language (i.e., "the

man stands up and takes a book off the 1,,. 1-. ), and the system produces an animation by

processing the text. Such a high level system can produce an intermediate level animation

script file [56, 12, 17] distinguishing between task level and animation level (figure 6), or

produce equational models [6, 7]. The animation level can be any of the animation systems

described above. The main research focus of goal directed animation can thus be defined

as all problems dealing with the task level: to specify goals (tasks) and have the system

automatically produce an animation. The task level itself can be divided further into a

hierarchy of smaller sub-systems in a top down fashion [54, 56, 10, 12, 57] as shown in

figure 6. There are three major issues involved here [54]: natural language processing,

motion planning, and motor control.

TR93-016 Computer and Information Sciences, University of Florida

3.2.5 Natural Language Processing

Having a computer understand natural language is in itself a significant research area in

Artificial Intelligence (AI), and it should be seen only indirectly as part of the goal-directed

animation process. For that reason many high level animation systems use a modified, sim-

pler natural language. Esakov and Badler [17] take a Simon S,, i approach, using commands

such as "John, look at switch tw-1." Another system [46] does not allow pronouns in the

language at all, and events have to be listed in a sequential order. Badler et al. [5] describe

a system that uses a natural language processor program as the front end to the animation

system. The program is used to extract a stream of simpler actions (tasks) out of the natural

language input, which are piped into the animation program.

[Figure 6 about here.]

3.2.6 Motion Planning

Motion planning involves algorithms that combine, blend, or organize individual motions

into one [41, 48], as well as the planning of an optimal, collision free path of motion in

an arbitrary environment [8, 35]. Similar to natural language processing, there is much AI

research involved. The system has to have a certain knowledge base: it has to know about its

environment (i.e., what and where is a doorknob), and what skills a given object is capable

of walking, running or grasping. Given all this knowledge, it is then possible for a program

called the task manager [54] or task planner [17] to break down (or refine) a task even further

into individual skills. Zeltzer [57] -. -. -1 -. using a skill lattice for the refinement.

TR93-016 Computer and Information Sciences, University of Florida

3.2.7 Motor Control

Motor control is concerned with implementing the skills by controlling the joint movements

on a figure using special motor programs. Each skill can be seen as a different motor program.

It has been shown that a skill can be modeled as a finite state automata (FSA). Figure 7 shows

a simple FSA for walking. Several systems were build using this approach as a basis [54, 10, 9].

In previous implementation these motor programs were hardcoded as functions in a program,

which made learning new skills and variations inflexible.

[Figure 7 about here.]

While these systems certainly represent the future, they are still in the experimental

stage. In the case of physical simulation and dynamics, it is awkward for a human to specify

the animation in terms of physical parameters [53, 1]. In other instances, a system may have

been designed only for a special case [10]. Thus, there still remains more research to be done

in generating an easy-to-use, general animation system.


To model a high level autonomous system, we chose to integrate a computer simulation

with the traditional keyframe animation system. Figure 8 displays the order in which we


[Figure 8 about here.]

TR93-016 Computer and Information Sciences, University of Florida

4.1 Modeling

First we begin with the simulator (stage 1). We use a set of tools called SimPack. Sim-

Pack [22, 21] permits the following types of modeling:

Finite state automaton with timed states.

Markov chain modeling.

Queuing networks.

Differential, difference equation and delay differential equation modeling.

Pulse processes.

Stochastic Petri networks.

Bi-directional message passing networks.

Parallel network simulation with the Linda parallel computation model [27].

For our example, we chose the Petri net modeler. Petri nets can be thought of as a hybrid

between procedural and declarative modeling as depicted in fig. 1. In our simulation studies,

we have created a two level timed Petri net to model the behavior of 5 articulated figures

which comprise the dining philosopher's (DP) scenario.

A Petri net model of DP is described by Peterson [38]. This model represents the

concurrency of "eating" and the resource dependencies for each philosopher. Note that the

places and transitions are labeled counter-clockwise (using concentric passes) starting with

po and to respectively. We define DP as a 4-tuple containing places (P), transitions (T),

inputs (I) and outputs (0) as follows:

TR93-016 Computer and Information Sciences, University of Florida 13

1. S =

2. P = {po,. -,p24}

3. T = {to,..., 9}

4. I : T P"

5. O: T P

6. p : P Zo (p) = 1 for i E {0,...,9} else (p) = 0

7. I(to)= {po,l, p2},I(tl) = {2,p3,p4}

8. I(t2) {p4,p5,p6},I(t3) {p6,p7,p8}

9. I(t4)= {p8, 9,P0}

10. I(ts) = {pIo}

11. I(t6) = 11}, (t7) = {12}

12. I(t8) {P13}, (t9) {=P14}

13. I(tio)= {p15}

14. I(tl) = {p16}, I(tl2)= 17}

15. I(tl3) = {P18}, 1(t4) = {P19}

16. I(tl5) = {p20

17. I(tl6)= {21p}, (t17)= {22}

18. I(tl8) = {23},I(t19) ={P24}

19. (to) = {po}, O(i) = {pi}

20. 0(t2) =p12},(t3)= {p13

21. 0(14) {=14}

22. O(ts) = {p1}, O(t6)= {p16

TR93-016 Computer and Information Sciences, University of Florida

23. 0(t) ={p1}, O(ts)= {p18}

24. O(1) = {19}

25. o(to)= {p2o}, O(t)= {p21}

26. 0(tl2) {p22}, 0(13= {p23}

27. 0(tl4)= {24}

28. O(t5) = {pO,Pl,P2}

29. O(t16)= {p2,P3,P4}, O(t17)= {I4,P5, P6

30. O(t1s) ={p6,p7,p8}, O(19)= {p8,P9,Po}

Two Petri nets are shown in figures 9 and 10. Fig. 9 displays the higher level net while

fig. 10 displays just the "eating" sub-net that replaces the shaded place in fig. 9.

[Figure 9 about here.]

[Figure 10 about here.]

Figures 9 and 10 can be compressed into one net, although it is useful to represent two

levels of ..--. -.,i ion as shown. This model represents the well known "dining philosophy. i

problem in operating systems literature, although we are using it as a basis for modeling,

and not to solve analytic problems in concurrency. Each philosopher requires two forks to

eat (no two adjacent philosophers, therefore, may eat simultaneously). The tokens within

the Petri net represent the fork resource and general flow of control. Initially all tokens (or

"markers") start out in the center of of the net in fig. 9. Then, two philosophers grab their

respective fork pairs the proceed to eat at some rate defined by the modeler.

The total action of any single philosopher is a period of eating followed by a period of

rest. The eating process is shown in the first three transitions and places of fig. 10. If we

TR93-016 Computer and Information Sciences, University of Florida

consider the subprocess for the first philosopher (starting with to) then the transitions fired

while eating for level 2 (ref. fig. 10) are: to, t4 and tl0. The eating process is described by

three actions:

1. EATING1: The right hand is half way between the table and mouth. See figure 12.

Example: transition to.

2. EATING2: The right hand is at the mouth. See figure 13. Example: transition ts.

3. EATING1: See fig. 12. Example: transition tlo.

The resting process (RESTING) is represented by a single net transition (example: transition

t15). The resting configuration is shown in figure 11.

[Figure 11 about here.]

[Figure 12 about here.]

[Figure 13 about here.]

4.2 State and Event Trajectories

In fig. 8 we note that the model is input to the appropriate simulator in SimPack. Our Petri

net model is simulated for some period of time; each transition can be arbitrarily set to some

AT. The output from the simulation is a single file consisting of a sequence of 3-tuples, as

the following example illustrates:

[... tuples deleted ...]

40 man3 RESTING

TR93-016 Computer and Information Sciences, University of Florida

45 manl RESTING

46 man3 EATING1

65 manl EATING1

74 man3 EATING2

82 man3 EATING1

85 manl EATING2

89 manl EATING1

90 man3 RESTING

[... tuples deleted ...]

The meaning of the individual fields in a tuple is as follows:

1. The time when the respective event (node firing) is to take place. An integer time is

used here, as it corresponds directly to the frame number in the animation.

2. The animation object associated with the event. In this example, the object is one of

the five philosophers (manl man5).

3. The event to take place. This event corresponds to a keyframe as it was defined

previously in the animation program. For this particular animation, we used three

keyframes to represent the eating sequence (EATING1 -- EATING2 -- EATING1)

and one keyframe for the period of rest (RESTING).

Note that we do not have to create keyframes for each of the five philosophers, which would

be a total of 20 keyframes. Rather, we define the sequence in the local coordinate frame

of one generic object. Then, during the simulation we translate the keyframe to the global

world coordinate of the respective philosopher.

TR93-016 Computer and Information Sciences, University of Florida

The output from the pre-processor is a file containing the now absolute keyframe descrip-

tions for the whole animation as it is needed by the animation program. In the next stage,

we use the keyframe animation program to produce the finished animation.

It is possible to abstract the animation part of the simulation even further. All the

keyframes that describe a given motion can be stored collectively in a "motion primitive."

For this example we would create a motion primitive called eating, which only contains

the three keyframes described above. The high level simulation can then access the whole

motion collectively by initiating the corresponding motion primitive at the desired simulation

time, simply by issuing a motion verb. To make the primitives more general, we came up

with several ways to manipulate a motion primitive so that it can be combined spatially

and temporally with other primitives [39]. Using this concept, it is possible to build up a

complete "motion library" that can be used in the graphical simulation of a high autonomy

system. For instance, motion libraries can be used to animate robots in a complex automated

factory simulation, or to animate humans in the simulation of a bank teller system, in both

cases at a high and abstract level.

4.3 Geometric Keyframe Modeling

At some point in the modeling process we must create geometric models for the philosophers,

and a formal specification for the constraints on the articulated figures. This is done in the

XKEY system. XKEY provides an easy interactive environment for specifying an object's

low level positions at each keyframe. Specifically, XKEY provides:

* A capability for loading, storing and interactively creating keyframes.

TR93-016 Computer and Information Sciences, University of Florida

Denavit-Hartenberg notation [16] which is used for setting up the articulation linkage

and their associated degrees of freedom (DOF).

An interactive method for moving objects or sub-objects with respect to their DOF. All

operations are performed using mouse interaction, e.g. dragging and rotating objects

directly on the screen, and are therefore highly user friendly.

A multi-track [29] coordinator that includes cut, copy and paste of frames.

Cubic spline and linear interpolation of keyframe DOF variables.

Figure 14 displays the X-window screen for XKEY.

[Figure 14 about here.]

The models used are polygon based, and were created by using a CSG (Constructive Solid

Geometry) approach where spheres are combined to form the limbs. The skull is the same

as used by Zeltzer [55, 54]. The renderer supports Phong shading, texture/bump/reflection

mapping, metal and spot light effects.

4.4 Dynamics and Video

Often, the animation produced by keyframing methods is not very realistic looking because

it is non-physical in nature. We are currently experimenting with the implementation of

dynamic "filters" to enhance the realism. The objects are assigned masses and inertias, and

the algorithm then computes accelerations on the spline curve. We are currently investigating

the following three methods:

* Constrain the dynamics to follow the spline path exactly -'] 51].

TR93-016 Computer and Information Sciences, University of Florida

Constrain the dynamics to follow a path to some c tolerance. This is often achieved

through the use of spring-like forces attached to the path[52].

Constrain dynamics to pass through or near the keyframe points and use a method

such as optimal control to obtain the path achieved by minimizing potential energy.

Obtaining fast physical object responses within an easy-to-use animation system is an active

research problem.

The result of our efforts is video footage on a professional 3/4" video recorder where each

frame is stored one at a time. Figure 15 displays a sample frame from our DP video footage.

[Figure 15 about here.]


We have determined that a seamless integration of computer simulation and computer ani-

mation concepts is essential for studying large scale systems -in particular, systems that

contain detailed articulated objects such as robots and human figures. We have demon-

strated a method for combining discrete event modeling methods with keyframe computer

animation. Our focus has been to combine methods used in computer simulation and an-

imation to help in the development of an abstract testbed for the graphical simulation of

complicated high autonomous systems. Such systems often contain discrete as well as con-

tinuous components and multiple models (i.e., multimodels) must be used to coordinate or

control the animation. With the increased amount of physically based modeling research in

the graphics field, and the tendency toward more graphical realizations of model execution in

the simulation field, we see a need to integrate methodologies from both fields. This research

TR93-016 Computer and Information Sciences, University of Florida

represents a step in the direction of integration.

For the future, we plan on building better high-end simulation modeling tools for com-

bined discrete event/continuous models, and better low-end tools allowing the analyst to

specify kinematic and dynamic constraints of the systems under study.


We would like to acknowledge Norman Badler at the University of Pennsylvania as providing

the inspiration and valuable feedback for this integrated study.


[1] ARMSTRONG, W., AND GREEN, M. The Dynamics of Articulated Rigid Bodies for

Purposes of Animation. In Proceedings of Graphics Interface '85. Canadian Information

Processing S., .'., li (Toronto, Canada, 1'i ), pp. 407-415.

[2] ASADA, H., AND SLOTINE, J. J. E. Robot A,,,,l'.' And Control. John Wiley and

Sons, New York, New York, 1'Ii.


tioning and Animating Human Figures in a Task-Oriented Environment. The Visual

Computer 4, 1 (1't'), 212 -220.

[4] BADLER, N. I., MANOOCHEHRI, K., AND WALTERS, G. Articulated Figure Posi-

tioning by Multiple Constraints. IEEE Computer Graphics and Applications 7, 6 (June


TR93-016 Computer and Information Sciences, University of Florida

[5] BADLER, N. I., WEBBER, B., KALITA, J., AND ESAKOV, J. Animation from Instruc-

tions. In Making Tli, ,, Move, N. I. Badler, B. Barsky, and D. Zeltzer, Eds. Morgan

Kaufmann Publishers, Inc., San Mateo, California, 1991, pp. 51-93.

[6] BECK, H. W., AND FISHWICK, P. A. Incorporating Natural Language Descriptions

into Modeling and Simulation. Simulation Journal 52, 3 (March 1989), 102 109.

[7] BECK, H. W., AND FISHWICK, P. A. Natural Language, Cognitive Models and

Simulation. In Qualitative Simulation Modeling and A, lii' P. A. Fishwick and P. A.

Luker, Eds. Springer Verlag, 1991, pp. 302 -325.

[8] BREEN, D. Choreographing Goal-Oriented Motion Using Cost Functions. In State-

of-the-art in Computer Animation, N. Magnenat-Thalmann and D. Thalmann, Eds.

Springer Verlag, New York, New York, 1989, pp. 141-151.

[9] BROOKS, R. A Robot that Walks: Emergent Behaivor from a Carefully Evolved Net-

work. In Making Tli, ,, Move, N. I. Badler, B. Barsky, and D. Zeltzer, Eds. Morgan

Kaufmann Publishers, Inc., San Mateo, California, 1991, pp. 99-108.

[10] BRUDERLEIN, A., AND CALVERT, T. Goal-Directed, Dynamic Animation

of Walking. In Computer Graphics: SIGGRAPH '89 Conference Proceedings

(Boston,Massachusetts, 1989), ACM-SIGGRAPH, pp. 268-292.

[11] BURTNYK, N., AND WEIN, M. Computer Generated Key Frame Animation. Journal

of the SMPTE 80 (1971), 149-153.

TR93-016 Computer and Information Sciences, University of Florida

[12] CALVERT, T. Composition of Realistic Animation Sequences for Multiple Human Fig-

ures. In Making Tli, ,, Move, N. I. Badler, B. Barsky, and D. Zeltzer, Eds. Morgan

Kaufmann Publishers, Inc., San Mateo, California, 1991, pp. 35-50.

[13] CATMUL, E., AND ROM, R. A Class of Local Interpolating Splines. In Computer Aided

Geometric Design, R. Arnhill and R. Riesenfeld, Eds. Academic Press, San Francisco,

California, 1974, pp. 317-326.

[14] CHUANG, R., AND ENTIS, G. Shaded Computer Animation Step by Step. IEEE

Computer Graphics & Applications 3, 3 (1'1" ), 18 -25.

[15] CRAIG, R. Introduction to Robotics, Mechanics and Control, second edition. Addison-

Wesley Publishing Company, Inc., New York, New York, 1989.

[16] DENAVIT, J., AND HARTENBERG, R. A Kinematic Notation for Lower Pair Mecha-

nisms Bases On Matrices. Journal of Applied Mechanics 22 (1955), 215-221.

[17] ESAKOV, J., AND BADLER, N. I. An Architecture for High-Level Human Task Anima-

tion Control. In In Knowledge Based Simulation, Methodology and Application;Advances

in Simulation, Num. 4, P. Fishwick and R. Modjeski, Eds. Springer Verlag, New York,

New York, 1991, pp. 164-197.

[18] FISHWICK, P. A. The Role of Process Abstraction in Simulation. IEEE Transactions

on Silli, ,.'. Man and Cil" if,, '. 18, 1 (January/February li'"), 18 -39.

[19] FISHWICK, P. A. Abstraction Level Traversal in Hierarchical Modeling. In Modelling

and Simulation M, .1..1l.,li'lr Knowledge Sil,/ ,,, Paradigms, B. P. Zeigler, M. Elzas,

and T. Oren, Eds. Elsevier North Holland, 1989, pp. 393 -429.

TR93-016 Computer and Information Sciences, University of Florida

[20] FISHWICK, P. A. Heterogeneous Decomposition and Coupling for Combined Modeling.

In 1991 Winter Simulation Conference (Phoenix, AZ, December 1991), pp. 1199 1208.

[21] FISHWICK, P. A. Simpack: Getting Started with Simulation Programming in C and

C++. In 1992 Winter Simulation Conference (Arlington, VA, December 1992), pp. 154


[22] FISHWICK, P. A. Computer Simulation Model Design & Execution. Prentice Hall,

1993. (to be published as a textbook).

[23] FISHWICK, P. A., AND PORR, H.-O. A. Using discrete event modeling for effective

computer animation control. In Winter Simulation Conference (Phoenix, AZ, December

1991), pp. 1156 1164.

[24] FISHWICK, P. A., AND ZEIGLER, B. P. A Multimodel Methodology for Qualitative

Model Engineering. ACM Transactions on Modeling and Computer Simulation 1, 2

(1992), 52 81.

[25] FORTIN, D. LAMY, J. F., AND THALMAN, D. A multiple track animator system. In

Proceedings SIGGRAPH/SIGART Interdisciplinary Workshop on Motion: Representa-

tion and Perception (Toronto, Canada, 1'" ;), pp. 180 -1i'.

[26] GANGEL, J. A Motion Verb Interface to a Task Animation System. Master's thesis,

University of Pennsylvania, 1984.

[27] GELERNTER, D. H. Generative Communication in Linda. ACM Transactions on

Programming Languages and S.ll, ,, 7, 1 (January 1'i'), 80 -112.

TR93-016 Computer and Information Sciences, University of Florida

b>] GIRARD, M., AND MACIEJEWSKI, A. A. Computational Modeling for the Computer

Animation of Legged Figures. In Computer Graphics: SIGGRAPH '85 Conference

Proceedings (San Francisco, California, l'i), ACM-SIGGRAPH, pp. 263-270.

[29] GOMEZ, J. TWIXT: A 3-D Animation System. Computer & Graphics 9, 3 (1P'i), 291


[30] HANRAHAN, P., AND STURMAN, D. Interactive animation of parametric models.

Visual Computer 1 (l'< ), 260-266.

[31] ISAACS, P., AND COHEN, M. F. Controlling Dynamic Simulations with Kinematic

Constraint. In Computer Graphics: SIGGRAPH '87 Conference Proceedings (Anaheim,

California, 1987), ACM-SIGGRAPH, pp. 214-223.

[32] KALITA, J. A,.,,1-.', of a Class of Action Verbs and Si,,,ll .'- of Ui1', l,,.'ni Tasks in

an Animation Environment. PhD thesis, University of Pennsylvania, 1990.

[33] KOCHANEK, D. Interpolating Splines with Local Tension, Continuity, and Bias Con-

trol. In Computer Graphics: SIGGRAPH '84 Conference Proceedings (Minneapolis,

Minnesota, 1984), ACM SIGGRAPH, pp. 33-41.

[34] LASSETER, J. Principles of Traditional Animation Applied to 3D Computer Animation.

In Computer Graphics: SIGGRAPH '87 Conference Proceedings (Anaheim, California,

1987), ACM-SIGGRAPH, pp. 35-44.


Robot Motion Planning Using Rasterizing Computer Graphics Hardware. In Com-

TR93-016 Computer and Information Sciences, University of Florida

putter Graphics: SIGGRAPH '90 Conference Proceedings (Dallas, Texas, 1990), ACM-

SIGGRAPH, pp. 327-335.

[36] McKENNA, M., AND ZELTZER, D. Dynamic Simulation of Autonomous Legged Lo-

comotion. In Computer Graphics: SIGGRAPH '90 Conference Proceedings (Dallas,

Texas, 1990), ACM-SIGGRAPH, pp. 29-38.

[37] MORTENSON, M. Geometric Modeling. John Wiley & Sons, Inc., New York, New York,

t C, i -,

[38] PETERSON, J. L. Petri Net Tl .. ry and the Modeling of Si,-/ ,,, Prentice-Hall, Inc.,

Englewood Cliffs, N.J., 1981.

[39] PORR, H. O. High-Level Computer Animation using Motion Primitives created from

Keyframes. Master's thesis, University of Florida, 1991.

[40] REYNOLDS, C. Computer Animation with Scripts and Actors. In Computer Graph-

ics: SIGGRAPH '82 Conference Proceedings (Boston, Massachusetts, 1982), ACM-

SIGGRAPH, pp. 2"'. 296.

[41] REYNOLDS, C. Flocks, Herds, and Schools: A Distributed Behavior Model. In Com-

puter Graphics: SIGGRAPH '87 Conference Proceedings (Anaheim, California, 1987),

ACM-SIGGRAPH, pp. 25-34.

[42] SINGH, M Sil,. ,," and Control F,.. i I,. pedia: Tlr ..ry, T, / ,,,/l.,;,i,. and Applications.

Pergammon Press, 1987. (8 Volume set).

TR93-016 Computer and Information Sciences, University of Florida

[43] SMITH, A. Spline Tutorial Notes. Technical Memo No. 77. In SIGGRAPH '83 Tutorial

Notes: Introduction to Computer Animation (New Orleans, Louisiana, 1'- ;), ACM-

SIGGRAPH, pp. 64-75.

[44] STURMAN, D. Interactive keyframe animation of 3-D articulated models. In Proceedings

Graphics Interface '84 (Ottawa, Canada, 1984), pp. 35-40.

[45] STURMAN, D. A Discussion of the Development of Motion Control Systems. In SIG-

GRAPH '87 Course 10, Computer Animation: 3-D Motion Secification and Control

(Anaheim, California, 1987), ACM-SIGGRAPH, pp. 1-15.

[46] TAKASHIMA, Y., SHIMAZU, H., AND TOMOTO, M. Story Driven Animation. In Pro-

ceedings Computer Human Interface and Graphics Interface '87 (1987), ACM SIGCHI,

pp. 149-153.


the synthesis and the animation of realistic images. In Frontiers in Computer Graphics.

Springer Verlag, New York, New York, 1984, pp. 101-113.

[48] VAN DE PANNE, M., FIUME, E., AND VRANESIC, Z. Reusable Motion Synthesis Using

State-Space Contollers. In Computer Graphics: SIGGRAPH '90 Conference Proceedings

(Dallas, Texas, 1990), ACM-SIGGRAPH, pp. 225-234.

[49] WHITE, T. The Animator's Workbook, Step-by-Step Techniques of Drawn Animation.

Watson-Guptill Publications, New York, New York, 1'l""

TR93-016 Computer and Information Sciences, University of Florida

[50] WILHELMS, J. Dynamics for Everyone. Appendix 1. In SIGGRAPH '87 Course 10,

Computer Animation: 3-D Motion Specification and Control (Anaheim, California,

1987), ACM SIGGRAPH, pp. 145-146.

[51] WILHELMS, J. Using dynamic analysis for animation of articulated bodies. IEEE

Computer Graphics & Applications 7, 6 (1987), 12-27.

[52] WITKIN, A., FLEISCHER, K., AND BARR, A. Energy Constraints on Parameterized

Models. In SIGGRAPH '87, Computer Graphics (1987), vol. 24, pp. 225 -232.

[53] WITKIN, A., AND KASS, M. Spacetime Contraints. In Computer Graphics: SIG-

GRAPH '88 Conference Proceedings (Atlanta, Georgia, 1P'), ACM-SIGGRAPH,

pp. 159-168.

[54] ZELTZER, D. Motor Control Techniques For Figure Animation. IEEE Computer Graph-

ics & Applications 2, 9 (1982), 53-59.

[55] ZELTZER, D. Representation of Complex Animated Figures. In Graphics Interface '82

(1982), pp. 205 -211.

[56] ZELTZER, D. Task Level Graphical Simulation of 3D Computer Animation. The Visual

Computer: The International Journal of Computer Graphics 1, 4 (1' ), 249-259.

[57] ZELTZER, D. Task-level Graphical Simulation: Abstraction, Representation, and Con-

trol. In Making T/i, ,, Move, N. Badler, B. Barsky, and D. Zelter, Eds. Morgan Kauf-

mann Publishers, Inc., San Mateo, California, 1991, pp. 28-38.

TR93-016 Computer and Information Sciences, University of Florida


PAUL A. FISHWICK is an associate professor in the Department of Computer and In-

formation Sciences at the University of Florida. He received the BS in Mathematics from

the Pennsylvania State University, MS in Applied Science from the College of William and

Mary, and PhD in Computer and Information Science from the University of Pennsylvania

in l'I1i. He also has six years of industrial/government production and research experience

working at Newport News Shipbuilding and Dry Dock Co. (doing CAD/CAM parts def-

inition research) and at NASA Langley Research Center (studying engineering data base

models for structural engineering). His research interests are in computer simulation mod-

eling and analysis methods for complex systems. He is a senior member of the IEEE and a

member of the IEEE Society for Systems, Man and Cybernetics, IEEE Computer Society,

the Society for Computer Simulation, ACM and AAAI. Dr. Fishwick was chairman of the

IEEE Computer Society technical committee on simulation (TCSIM) for two years (1'i's-

1990) and he is on the editorial boards of several journals including the ACM Transactions

on Modeling and Computer Simulation, IEEE Transactions on Sill, ,... Man and Cil1, ,-

netics, The Transactions of the S. .. l/i for Computer Simulation, International Journal of

Computer Simulation, and the Journal of Sill, I,, Engineering.

HANNS-OSKAR A. PORR is a graduate student in the Department of Computer and

Information Sciences at the University of Pennsylvania where he is currently working towards

his Ph.D. degree as a member of the Computer Graphics Research Lab. He received a BS

in Computer Science from the University of Utah in 1989, and a MS from the University of

Florida in 1991. Prior to his academic career, he worked as a Computer Graphics Operator

TR93-016 Computer and Information Sciences, University of Florida 29

for the Electronic Graphics Group, Munich, West Germany. His research interests are in

Computer Graphics, Computer Animation and Artificial Intelligence.

TR93-016 Computer and Information Sciences, University of Florida

List of Figures

1 Different Levels of Barbershop Modeling ................ . . 31

2 Levels of abstraction .................. ............ .. 32

3 Basic types of joints .................. .......... .. .. 33

4 Animation systems .................. ............. .. 34

5 3-D computer keyframe interpolation ......... ....... . 35

6 Goal-directed animation breakup .................. .... 36

7 A simple FSA for walking .................. ......... .. 37

8 Simulation to Animation Pipeline .................. .... 38

9 Level 1: Five Synchronized Figures .................. ...... 39

10 Level 2: The Eating Process Sub-Network .................. .. 40

11 Keyframe # 1 Resting (RESTING) .................. ..... 41

12 Keyframe # 2 Eating Stage 1 (EATING1) ...... . . . . 42

13 Keyframe # 3 Eating Stage 2 (EATING2) ................. ..43

14 XKEY Interface .................. ............... .. 44

15 Sample DP Video Frame .................. .......... .. 45

TR93-016 Computer and Information Sciences, University of Florida


Procedural Graph

Declarative Graph


Event Graph

dt = 0

Sdt = 10
& server free dt = 20
start arrival--- start service end service


(Simulation Language)

Figure 1: Different Levels of Barbershop Modeling


TR93-016 Computer and Information Sciences, University of Florida

Figure 2: Levels of abstraction

TR93-016 Computer and Information Sciences, University of Florida

Figure 3: Basic types of joints

TR93-016 Computer and Information Sciences, University of Florida

Figure 4: Animation systems

TR93-016 Computer and Information Sciences, University of Florida

Figure 5: 3-D computer keyframe interpolation

TR93-016 Computer and Information Sciences, University of Florida

Figure 6: Goal-directed animation breakup

TR93-016 Computer and Information Sciences, University of Florida

Figure 7: A simple FSA for walking

TR93-016 Computer and Information Sciences, University of Florida

Keyframe Files

Model SIMULATE State
Petri Net- (SimPack) 1 Traj


Script File __

Tracks w/ Keyframe
Interpolated X
Keyframes E YA

Figure 8: Simulation to Animation Pipeline

TR93-016 Computer and Information Sciences, University of Florida






Figure 9: Level 1: Five Synchronized Figures

TR93-016 Computer and Information Sciences, University of Florida








Figure 10: Level 2: The Eating Process Sub-Network



TR93-016 Computer and Information Sciences, University of Florida

Figure 11: Keyframe # 1 Resting (RESTING)

TR93-016 Computer and Information Sciences, University of Florida

Figure 12: Keyframe # 2 Eating Stage 1 (EATING1)

TR93-016 Computer and Information Sciences, University of Florida

Figure 13: Keyframe # 3 Eating Stage 2 (EATING2)

TR93-016 Computer and Information Sciences, University of Florida

i iM xkey ha--n w 01

File Edit View Time

object has no parent

nkey> XKEY
A Kegfrane Anination Progran
key> (c) Hanns Oskar Porr 1991
nkey> for help type "help". It uill list all connands
.keg> north
xkey> ERROR: ^GFile suing2.rle can not be opened north
.key> Reading in keyfrane file suing2.key
xkey> Reading in Data File ../isc/tern.dat Zoon In
9key> Reading in Data File ../nisc/terni.dat PANS east
.keg> Tine Line Delta value is nou 10
xkeg> MARNING: sone keyfranes HAY nou not get
.key> displayed in the Lineline due Zoon Out
xkey> to Lenporal Aliasing. Check with south
xkeg> Delta Value of 1.

,~ I ar r r r r rkeg1 1 11y> 1m1 11 B
1) 101 2),4 4 0 O 70 8 9) 10 20 11 14,i il0i15ii i i i li ii li ii i

LORD Tineline 2

Figure 14: XKEY Interface


TR93-016 Computer and Information Sciences, University of Florida

Figure 15: Sample DP Video Frame

TR93-016 Computer and Information Sciences, University of Florida 46

List of Tables

1 Simulation Model Types .................. .......... .. 47

TR93-016 Computer and Information Sciences, University of Florida

Table 1: Simulation Model Types

Discrete Space Continuous Space
Discrete Time Discrete Time Discrete Time
Difference Equations Difference Equations
(with integer states) (with real states)
Cellular Automata
Finite State Automata
Continuous Time Discrete Event Continuous
Queuing Models Differential Equations
Digital Logic Models

University of Florida Home Page
© 2004 - 2010 University of Florida George A. Smathers Libraries.
All rights reserved.

Acceptable Use, Copyright, and Disclaimer Statement
Last updated October 10, 2010 - - mvs