an event-driven approach to crowd simulation with example

30
An Event-Driven Approach to Crowd Simulation with Example Motions Dohan Kim Ho Kyung Kim Sung Yong Shin CS/TR-2003-186 January 22, 2003 KAIST Department of Computer Science

Upload: others

Post on 17-Feb-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: An Event-Driven Approach to Crowd Simulation with Example

An Event-Driven Approach to Crowd Simulation withExample Motions

Dohan Kim Ho Kyung Kim Sung Yong Shin

CS/TR-2003-186

January 22, 2003

K A I S TDepartment of Computer Science

Page 2: An Event-Driven Approach to Crowd Simulation with Example

An Event-Driven Approach to Crowd Simulationwith Example Motions

Dohan Kim Ho Kyung Kim Sung Yong Shin

Abstract

In this paper, we present an event-driven approach to crowd simulation,in particular, the simulation of the locomotive behavior of a crowd. Theskeleton of our crowd simulation is the event-driven scheme for collisionavoidance among time-varying balls with unknown trajectories. To facilitateour event-driven paradigm, we take into account two types of events: externaland internal events. Guided by the external events reflecting a given scenario,the behavior of a crowd evolves as intended while adding variations mainlydue to internal events triggered by the interactions among crowd membersthemselves and their interactions with the surrounding environment. Thereactive behaviors of the members are derived from a (pedestrian) force fieldmodel together with behavioral rules. To generate a natural-looking motion,we exploit live-capture motion clips.

1 Introduction

1.1 Motivation

Computer-animated crowd scenes depicting large groups of people in streets, parks,or public squares are becoming commonplace in computer games and feature films.Each of those scenes evolves from the interactions among the people and their in-teractions with the environment. Such interactions determine the individual behav-ior of every member of a crowd, and the aggregate behavior of the members yieldsa highly dynamic and complex scene.

The crowd members are usually clustered together very closely, and their tra-jectories are neither ballistic nor known in advance, which makes it hard to performtypical operations for collision handling, that is, undoing the collisions occurringduring the time step between successive sampled time instances and retrying witha smaller time step. Unlike in rigid body simulation [4, 7, 11, 31], the members

1

Page 3: An Event-Driven Approach to Crowd Simulation with Example

are living creatures in crowd simulation rather than lifeless 3D objects. The mem-bers can perceive nearby objects such as other members and obstacles, and interactwith those objects actively according to their behavioral rules while even beingseparated from each other. In particular, living creatures are always alert to nearbyobjects so that they can adjust themselves not to collide with the objects. As an in-dividual creature is approaching an object, the creature corrects its behavior adap-tively in accordance with the situation while continuously gathering informationon the object. To facilitate such an adaptive behavior, not only the nearby objectsof every member but also the influences of the objects on the member should betraced even during a time step, both of which are changing dynamically as the sim-ulation evolves. The traditional fixed-time advancing mechanism for physics-basedsimulation may not be appropriate to address those rather peculiar issues inherentin crowd simulation.

In this paper, we present a novel event-driven approach to crowd simulation,in particular, the simulation of the locomotive behavior of a crowd. Guided bythe external events reflecting a given scenario, the behavior of a crowd evolvesas intended while adding variations mainly due to the internal events triggered bythe interactions among members themselves and their interactions with the envi-ronment. Inspired by pedestrian crowd simulations [17, 18, 45], we provide anevent-driven collision detection scheme together with a force field model to facil-itate the global flow of crowd behavior as well as the local perturbations for theirreactive behaviors due to the interactions. To generate convincing crowd behaviorsefficiently, we adopt an on-line motion blending scheme [38] using live-capturedmotion clips.

1.2 Previous Works

Non-human Creatures Reynolds [41] introduced reactive behaviors to simu-late groups of simple creatures such as flocks of birds, herds of land animals, andschools of fishes. He also mentioned the possibility of dynamic spatial partitioningto efficiently find the candidate pairs for interactions. He later reported on usingspatial partitioning for real-time applications [42]. We adopt his idea to trace thecrowd members. Tu and Terzopoulos [51] simulated reactive behaviors of artificialfishes with synthetic visions and exhibited realistic behaviors such as avoiding col-lision, mating, wandering, and schooling. Those results are mainly for simulatingnon-human creatures.

Pedestrian Dynamics There have been a vast amount of research results on mod-elling pedestrian crowds since the work in [14] over four decades ago. We men-

2

Page 4: An Event-Driven Approach to Crowd Simulation with Example

tion only those results directly related to this paper. Henderson conjectured thatpedestrian crowds behave similarly to gases and fluids [15]. In practice, pedestriancrowd models, that is based on this conjecture, contain corrections due to interac-tions such as collision avoidance and deceleration maneuvers, which do not obeymomentum and energy conservations [16]. To incorporate individual pedestrianbehaviors, Gipps and Marksjo proposed a behavioral force model of individualpedestrian dynamics [10]. Recently, Helbing et al. provided a new model of pedes-trian dynamics covering pedestrians in both normal and panic situations [17]. Ourforce field model is a variant of this model adapted for our event-driven paradigm.

Behavioral Rules Brogan and Hodgins [5] proposed an algorithm for modellinggroup behaviors, in which each individual is forced to move toward a position com-puted based on group velocity, neighbors, and visible obstacles. They also appliedtheir algorithm to the simulation of Border Collies and Olympic bicycle racing [6].Musse and Thalmann [35] adopted a sociological model to build relations amongindividuals and presented an adaptive collision avoidance scheme for a pair of indi-viduals based on their distances from the camera. They also presented the ViCrowdmodel to simulate crowds with different levels of autonomy [36]. Each membercan be controlled by scripts, behavioral rules, or external controls. In addition,they formed a hierarchy composed of crowd, groups, and individuals. For real-time performance, crowd behaviors were controlled at the group level rather thanthe individual level. Perlin et al. [39] developed the Improv system for scriptinginteractive actors. They used a blackboard for actors to communicate with eachother and introduced a layered behavior model to create complex behaviors fromsimpler scripts and actions. Our scripting system is similar to those in [36, 39]. Wealso use a hierarchical behavior model for describing behavioral rules and adopt abillboard for communication as proposed in [39].

Based on pedestrian dynamics together with procedural rules, a number ofcrowd simulation systems have been developed for real-world applications [1, 2,29, 50]. Some of them were applied to producing feature films such as Antz [2] andThe Lord of the Rings [29]. Others have been available as plug-ins to well-knownanimation systems such as Maya [1] and SoftImage [50]. However, technical de-tails for those systems have not been disclosed.

Collision Detection Efficient collision detection among stationary or moving ob-jects has received increasing attention in computational geometry and computergraphics. Space subdivision techniques [22, 34, 52, 53, 37] have been widely usedto localize collision checks. To simplify the shapes of objects and their moving tra-

3

Page 5: An Event-Driven Approach to Crowd Simulation with Example

jectories for efficient collision detection, bounding volumes such as spheres [19]and axis-aligned boxes [7, 31, 33] have been used. Hierarchical bounding volumessuch as OBB-trees [11], sphere-trees [20], and BV-trees [24] were also proposedto enclose objects more tightly. Collisions are usually checked at each time stepunder the assumption that the interval between successive times is relatively smallwith respect to the velocities of objects [4, 7, 11, 13, 34].

To detect collisions among polyhedral objects moving along ballistic trajec-tories, Mirtich [31, 33] exploited an axis-aligned bounding box containing eachobject during a time interval. He used a hierarchical hash table [37] to identifythe candidate pairs of objects for collision. The collision between a candidatepair was checked by employing the algorithm of Lin and Canny [28]. He alsoproposed a scheduling scheme to adaptively perform collision checks for the can-didate pairs. Kim et al. [22] presented an event-driven approach with a space sub-division scheme to localize collision checks among moving spheres. Mirtich [32]adopted Jefferson’s timewarp algorithm [21] to reduce unnecessary synchroniza-tion by rolling back the simulation of colliding objects to their collision time.Milenkovic and Schmidl [30] gave an optimization-based animation to generateplausible motions for 3D objects. These algorithms are mainly for collision de-tection between lifeless 3D objects and are not adequate to deal with the reactivebehaviors among living creatures.

Provided with the maximum norm of acceleration, Hubbard [19] proposed acollision detection algorithm for moving spheres with unknown trajectories. Hedefined a four-dimensional bounding volume, called a parabolic horn that containsa moving sphere for a time interval. To reduce the computational cost for findingthe intersections among the horns, he simplified them with hypertrapezoids. Todetect collisions among multiple moving spheres with non-ballistic trajectories atan interactive rate, Kim [23] interpreted the parabolic horn as a volume swept bya moving sphere of variable radius called a time-varying bound, and presented anevent-driven algorithm for collision detection among time-varying bounds to copewith the uncertainty caused by unknown trajectories. We non-trivially enhancethe algorithm of Kim to facilitate our event-driven approach for simulating humancrowds.

Example-based Motion Synthesis Example-based motion synthesis schemesare based on either motion blending [12, 44, 43, 55, 47] or posture rearrange-ment [3, 25, 26, 27, 40, 9, 49]. Their main difference is the types of examplemotions to be used. The example motions of the former category are labeled, andthose for the latter are unlabeled. Although the latter schemes can generate con-

4

Page 6: An Event-Driven Approach to Crowd Simulation with Example

Script parser

Motion

Generator

Scheduler

External Event

Generator

Scenario

Behavior Generator

Example

motions

Initializer

Internal Event

Generator

Event handler

Figure 1: the architecture of our scheme

vincing motions, their performances in general are not efficient enough to handlelarge crowds. There have been various motion blending schemes in the formercategory. Guo and Roverge [12] and Wiley and Hahn [55] provided interpola-tion schemes for example motions located regularly in parameter spaces. Rose etal. [43] and Sloan et al. [47] provided frameworks of motion blending based onscattered data interpolation. Park et al. [38] presented an on-line motion blendingscheme with real-time performance. For on the fly motion synthesis, we adopt themotion blending scheme of Park et al.

1.3 Overview

As shown in Figure 1, our crowd simulation scheme is composed of three majorcomponents: an initializer, a behavior generator, and a motion generator. Unlikeconventional crowd simulation schemes [5, 6, 35, 36, 41, 51] based on fixed-timeadvancing, our event-driven scheme adaptively redirects the behaviors of membersinvolved in each event at the event time while tracing the event stream in an on-linemanner.

The initializer parses the scenario described in a script language to initiate acrowd simulation, that is, to set up the initial conditions for the simulation. To guidethe simulation as specified in the scenario, the initializer generates the externalevents while parsing the scenario. Those events are scheduled deterministicallyor randomly according to the scenario. Our scripting system for the scenario andbehavioral rules is similar to those in [36, 39].

The behavior generator is composed of three parts: an internal event generator,an event scheduler, and an event handler. Upon receiving an event, the event han-dler takes an action to generate motion specifications, if needed, to drive the motiongenerator. The event handler also invokes the embedded internal event generator.

5

Page 7: An Event-Driven Approach to Crowd Simulation with Example

For every member involved in the event, the internal event generator produces thecandidates for internal events in the future. The event scheduler maintains thosecandidates together with the external events in a priority queue called the eventqueue to schedule a stream of actual events in an on-line manner. The behaviorgenerator enables our event-driven crowd simulation, which is our main contribu-tion. In particular, the skeleton of our approach is an event-driven algorithm forcollision detection combined with a force field model based on pedestrian dynam-ics.

Finally, provided with motion specifications from the behavior generator, themotion generator synthesizes their corresponding motions by blending live-capturedmotions: The motion generator preprocesses the example motions to place them inthe parameter space, and then produces the motion corresponding to a given pa-rameter vector in runtime, employing the on-line motion blending scheme as givenin [38]. These synthesized motions are retargetted, if necessary, to specific charac-ter models and situations.

The remainder of the paper is organized as follows: We present our main re-sults, that is, the event-driven collision detection scheme and a force field modelin Section 2. In Section 3, we describe three tasks of crowd simulation, that is,initialization, behavior generation and motion generation. We show experimentalresults to demonstrate the capabilities of our crowd simulation scheme in Section 4.Finally, we conclude this paper and describe future work in Section 5.

2 Event-Driven Collision Avoidance

In this section, we present an event-driven scheme for collision avoidance, whichis the skeleton of our crowd simulation system. Our scheme mainly consists oftwo parts: an event-driven collision detection algorithm and a force field model.The former is for tracing the interactions among crowd members as well as theirinteractions with the environment. The latter is for guiding the crowd memberstoward their goals while avoiding collisions with others.

2.1 Event-Driven Collision Detection

For efficiency, we initially approximate every member to its tight bounding cylin-der standing upward. Projected onto the ground plane, it can be considered as a2D ball. Since the trajectory of the member is unknown, the problem of collisiondetection among the crowd members is reduced to the collision detection problemamong moving 2D balls with unknown trajectories. For simulating non-human

6

Page 8: An Event-Driven Approach to Crowd Simulation with Example

creatures such as birds, we may also use 3D balls as will be demonstrated in exper-iments. We assume that the exact position x(t) and velocity v(t) of the ball canbe probed at a given time t although the closed-form formulae for x(t) and v(t)are not available. For example, we know where and how fast we are at a momentwhile jogging or walking, although we cannot express our velocity and trajectoryin closed form equations. Therefore, this assumption is not unrealistic. We alsoassume that the maximum norm of acceleration a(t) is bounded. In practice, thismakes sense since the member cannot move arbitrarily fast.

Time-Varying Bounds Let A be the maximum norm of acceleration. Then,

‖a(t)‖ ≤ A. (1)

Using A, a bound on the position x(t) of a member at time t can be derived:

‖x(t) − (x(tc) + v(tc)∆t)‖ ≤ A2

∆t2, (2)

where tc is the current time and ∆t = t − tc for t ≥ tc. This inequality states thatthe center of a 2D ball is within A

2 ∆t2 from the known position x(tc) + v(tc)∆t.Let r be the initial radius of the 2D ball approximating the member. Then, the2D ball of radius r at time t is contained in a bounding ball of radius r(t) with itscenter at x(t):

r(t) =A

2∆t2 + r, and (3)

x(t) = x(tc) + v(tc)∆t. (4)

These two equations give a parabolic horn, whose cross section at the time t is the2D ball of radius r(t) centered at x(t) [19]. This horn can be interpreted as the 2Dvolume swept by a time-varying ball of variable radius r(t) moving from x(tc) tox(tc) + v(tc)∆t. We call such a ball a time-varying bound.

The time-varying bounds for members play a crucial role in our crowd simu-lation scheme. When the time-varying bounds for a pair of members collide witheach other, these members exchange their internal status such as positions, veloci-ties, mental states, and so on. Their neighbors are also identified by exploiting thecoherency in time and space. Based on the information gathered from the neigh-bors and nearby objects, the members adjust themselves to avoid their possiblecollision in the future. As they are getting closer, their time-varying bounds collidemore frequently. The members are trying to avoid the collision by changing theirbehaviors adaptively in accordance with the sequence of signals, that is, the col-lisions between their time-varying bounds. While moving toward their goals, themembers contribute these local variations to the global crowd behavior.

7

Page 9: An Event-Driven Approach to Crowd Simulation with Example

Tracing Events To localize the collision checks among the time-varying bounds,the whole simulation space is subdivided into a set of uniform subspaces, that is, auniform grid of squares. The size of a subspace is determined as suggested in [23].A time-varying bound sk is said to be registered in a subspace C if the centerof sk was contained in C at its most recent event time. After the recent eventtime, the center of a time-varying bound does not necessarily lie in its registeredsubspace, but is restricted to lie within a certain bound as will be explained later.In this sense, the notion of registration reflects the uncertainty on the trajectoryof a member. Initially, the time-varying bounds are registered in the subspacescontaining their centers. Every such subspace has a non-empty list of time-varyingbounds registered in that subspace. Those non-empty subspaces are maintained inthe subspace tree, which is a balanced binary search tree [8].

The spatial distribution of the time-varying bounds is kept track of by identify-ing two types of (internal)events, that is, colliding and resetting events. A collidingevent occurs when a pair of time-varying bounds hit each other. A resetting eventprevents a time-varying bound from growing excessively large. It also facilitatesthe tracing of the movement of the bound.

Our scheme initially computes the candidate colliding event of every time-varying bound as well as its candidate resetting event, while allowing the time-varying bounds to penetrate each other. Those candidate events are maintainedin the event queue by the event scheduler. At first glance, the candidate eventsseem to have nothing to do with actual events as they are allowed to penetrate eachother. However, no pair of time-varying bounds collide with each other until theearliest event takes place. Therefore, the earliest event is guaranteed to be an actualevent. Whenever the earliest event occurs, both the subspace tree and event queueare modified in accordance with the type of the event to generate the next earliestevent. Repeating this process, all events can be identified in their predicted timesequence.

Event Generation To restrict the size and the location of a time-varying boundsk, consider the regions C(sk), R(sk), and α(C(sk)) as depicted in Figure 2.They are defined as follows:

C(sk) = the subspace in which sk is registered,

R(sk) = the circle of L∞ matric with radius l at the center of C(sk),

where l is the L2 length of the side of C(sk), and

α(C(sk)) = the region consisting of C(sk) and its eight adjacent subspaces.

Suppose that the time-varying bound sk has been reset most recently at time tck.Then, the position xk(t) and radius rk(t) of sk at the current time t are given as

8

Page 10: An Event-Driven Approach to Crowd Simulation with Example

))(C(ksα

)R(ks

)C(ks

Figure 2: C(sk), R(sk), and α(C(sk))

(a) (b)

Figure 3: a resetting event and a colliding event

follows:

xk(t) = xk(tck) + v(tck)(t − tck) and (5)

rk(t) =Ak

2(t − tck)

2 + rk, (6)

where Ak and rk be the maximum norm of acceleration and the initial radius ofsk, respectively. Let nj be the unit normal vector of the side Ej , 1 ≤ j ≤ 4 forR(sk). Then, the time t1k,j for sk to touch the line containing Ej can be obtainedby solving

‖xk(t) − pj‖ · nj = rk(t), (7)

where pj is a point on Ej . Since this equation is quartic in t, it can be solved eitheranalytically or numerically. For accuracy, we solve it numerically. To confine sk

in R(sk), the candidate resetting event of sk is predicted to occur at time t1, where

t1 = min {t1k,j |1 ≤ j ≤ 4}. (8)

If not interfered with other events, sk touches a side of R(sk) first at time t1 as

9

Page 11: An Event-Driven Approach to Crowd Simulation with Example

shown in Figure 3(a). Let S and Sk defined as follows:

S = {s|s is a time-varying bound}, and (9)

Sk = {s|s is a time-varying bound registered in α(C(sk))}. (10)

By the way in which a candidate resetting event is generated, Sk is guaranteedto contain at the current time t the set of all time-varying bounds of S that canpossibly move into R(sk) by the time of the next event. Moreover, every time-varying bound registered in C(sk) is confined in R(sk) by that time. Therefore,if sk collides with any member sj ∈ S by the next event time, then sj must be amember of Sk.

From this observation, we localize the collision check among time-varyingbounds so that the candidate collision event of each time-varying bound sk is pre-dicted by considering only the time-varying bounds in Sk. The predicted collisiontime t2k,j between time-varying bounds, sk and sj in Sk is the solution of the fol-lowing equation:

‖xk(t) − xj(t)‖ = rk(t) + rj(t). (11)

Suppose that the collision between sk and sj has occurred at time tc. Lettingt2k,j = tc + ∆t, we can derive a quartic equation in ∆t. By solving this equationfor ∆t, the candidate colliding event of sk is predicted to occur at t2 as shown inFigure 3(b), where

t2 = minj

{t2k,j |sj ∈ Sk}. (12)

By the way in which the internal events are predicted, sk cannot collide with anytime-varying bounds not registered in α(C(sk)) before hitting one in Sk, unlessinterfered with other events.

Event Handling Upon receiving a resetting event, the event handler identifiesthe time-varying bound sk involved in that event to reduce sk to its initial size.The position xk(t) and velocity vk(t) are also probed, based on the force fieldmodel given in Section 2.2. If xk(t) is not contained in the subspace in whichsk has been registered, sk is registered in the new subspace containing xk(t) asdepicted in Figure 4. As already stated, this facilitates tracing the movement ofsk. Accordingly, the corresponding subspace lists are updated. Finally, the newcandidate resetting and colliding events of sk are computed to replace the old ones,if any, in the event queue.

When a colliding event occurs, the event handler again identifies a pair of time-varying bounds, sk1 and sk2 and their neighbors. Let d be the Euclidean distance

10

Page 12: An Event-Driven Approach to Crowd Simulation with Example

ks oflocation old the

ks oflocation new the

Figure 4: registration change

between the positions of the corresponding members, that is, d = ‖xk1 − xk2‖.The neighbors of sk1 are chosen to be all members, whose positions lie in the circleof radius d placed at xk1(t). The neighbors of sk2 are chosen symmetrically.

Provided with the neighbors, our scheme employs the force field model (seeSection 2.2) to compute the force fki

(t) exerted on ski , i = 1, 2 at time t. Assumingthat ski has a point mass mki at its center, the acceleration is obtained by dividingfk(t) by mk: aki

(t) = fki(t)/mki

. The velocity vki(t) is derived from aki

(t) asfollows:

vki(t) = vki

(tc) +∫ t

tcaki

(t)dt. (13)

Since the inter-event time for each time-varying bound is sufficiently small, vkiis

linearly approximated:

vki(t) = vki

(tc) + aki(tc) · (t − tc), (14)

which gives the direction and speed of the member represented by the time-varyingbound ski . Finally, a Kalman filter [46, 54] is applied to the velocity vki

(t) to pre-vent an abrupt directional change, which could cause motion artifacts. Togetherwith the current motion type, these data specify a motion specification to drive themotion generator. After prescribing the motion specifications for ski , i = 1, 2, theyare reset in the same way as described in the handling of a resetting event. Again,only the time-varying bounds in Ski are considered to generate the candidate col-lision events of ski in the future.

11

Page 13: An Event-Driven Approach to Crowd Simulation with Example

2.2 Force Field Model

According to pedestrian dynamics [15, 16, 10, 17], a pedestrian acts as if he/shewould be subject to external forces. In this context, generating an acceleration ordeceleration force can be considered as the reaction of an individual pedestrianto the information perceived from the environment including neighbors and othernearby objects. Helbing et al. [18, 17] have shown that pedestrian behaviors can besimulated realistically based on the socalled social force model. Inspired by theirresults, we provide a force field model not only to guide the global flow of crowdbehavior, but also to facilitate the local reactive behaviors of members.

Force Field Model The total force applied to a member is a weighted sum ofthree forces: driving force, braking force, and avoiding force. The driving force f d

is to guide the global behavior, that is, to drive a member to its goal, whereas thebraking force f b and avoiding force f a are to facilitate the local behavior changes.Therefore, the total force fk applied to each individual member k can be describedby

fk = fdk +

∑j

w1k,jf

bk,j +

∑j

w2k,jf

ak,j, (15)

where fbk,j denotes the braking force exerted on member k by object j, and f a

k,j

denotes the avoiding force. An object is either a member of the crowd or a life-less object in the environment. Letting xk and xj respectively be the positions ofmember k and object j, the weights wi

k,j , i = 1, 2, are defined as follows:

wik,j = ci(max (vk · dk,j

‖dk,j‖ ,0)), i = 1, 2, (16)

where ci is a positive constant, vk is the velocity of member k, and dk,j = xj−xk.That is, the strength of fbk,j or fak,j is proportional to the norm of the projected

velocity of object j onto the unit direction vector dk,j

‖dk,j‖ . The objects located behindmember k exert no influence on it, whereas those in front exert their influences.

Driving Force The driving force fdk consists of two kinds of forces: One is for

global velocity control and the other is for local velocity adjustments due to nearbyobjects. A crowd has a common goal to reach and the route (planed path) to achievethis goal. The route is given by a piecewise linear curve connecting a sequence ofthe subgoals. We construct a spline curve from this curve, if needed, to provide C1

continuity. The desired direction ek for member k is chosen as the tangent vec-tor at the closest point on the resulting curve from the position xk. The member

12

Page 14: An Event-Driven Approach to Crowd Simulation with Example

is supposed to move in the desired direction ek with predefined speed vdes unlessotherwise disturbed. The actual velocity vk is expected to approach the desired ve-locity vdesek(t) within a certain time τk, which is also predefined (see the first termof Equation 17). Members are sometimes attracted or repulsed by other objects (e.gwindow display, garbage, etc.). Accordingly, each member k locally changes theglobal velocity due to a force exerted on it in the direction dk,j (attraction) or itsopposite (repulsion) (see the second term of Equation 17). Therefore, the drivingforce f d

k(t) at time t is given by

fdk(t) =

mk

τk(vdesek(t) − vk(t)) +

∑j

mkcintk,j

dk,j

‖dk,j‖ , (17)

where cintk,j is a parameter indicating the strength of the attraction(or repulsion) force

on member k exerted by object j. If cintk,j < 0, then object j produces a repulsion

force. Otherwise, the object generates an attraction force.

Braking Force A crowd member has a tendency to keep a certain distance fromother objects in order to avoid collisions. The braking force f b

k,j makes member k

decrease speed toward object j, which is a combination of a decelerating force fdeck,j

and a damping force fdamk,j :

fbk,j = fdec

k,j + wdam fdamk,j , (18)

where wdam is a weight value. The decelerating force fdeck,j indirectly reduces the

speed toward object j by cancelling out the driving force, whereas the dampingforce fdam

k,j directly reduces the speed.

The magnitude of decelerating force fdeck,j monotonically decreases as the dis-

tance between member k and object j increases. The maximum magnitude is thesame as that of the driving force. Therefore, we define the decelerating force fdec

k,j

as follows:

fdeck,j =

{−(1 − ‖dk,j‖

Dj)( dk,j

‖dk,j‖ · fdk,j)

dk,j

‖dk,j‖ if ‖dk,j‖ < Dj,

0 otherwise,(19)

where Dj denotes the maximum distance within which the decelerating force to-ward object j can be exerted.

The magnitude of the damping force fdamk,j is in proportion to that of the relative

velocity of member k with respect to object j and its direction is the same as that

13

Page 15: An Event-Driven Approach to Crowd Simulation with Example

of −dk,j. Therefore,

fdamk,j =

{−cdam mk(vj − vk) · dk,j

‖dk,j‖ if (vj − vk) · dk,j < 0,

0 otherwise,(20)

where cdam is a damping constant.

Avoiding Force Together with the braking force, the avoiding force is appliedto make a member avoid collisions. The avoiding force is either for changing themoving direction of the member or for pushing the member to the center of a time-varying bound sk. The avoiding force is a weighted sum of the following twoforces:

f ak,j = f tur

k,j + wsaff safk,j, (21)

where wsaf is a weight value.The turning force f tur

k,j changes the moving direction of member k:

f turk,j =

{cturmk(1 − ‖dk,j‖

Aj)qk,j if ‖dk,j‖ < Aj,

0 otherwise,(22)

where ctur is a constant, qk,j is the unit vector perpendicular to dk,j, and Aj denotesthe maximum distance within which the avoiding force to object j is exerted.

The time-varying bound of a member is a collision-free region since no objectsare allowed to be in this region except the member itself. The safety force f saf

k,j

makes member k move toward the center of its time-varying bound sk:

f safk,j = csafmk(xk − xk), (23)

where csaf is a constant and xk is the center of sk. The magnitude of f safk,j is propor-

tional to the distance between member k and object j.

3 Crowd Simulation

In this section, we describe an integrated framework for event-driven crowd sim-ulation based on the collision avoidance scheme as given in the previous section.Adopting the previous results as proposed in [35, 36, 39], we minimize our effortson describing scenarios and behavioral rules as well as the scripting system, toabstract our event-driven approach from complex realities.

14

Page 16: An Event-Driven Approach to Crowd Simulation with Example

3.1 Initialization

At the beginning, the initializer parses a scenario described in a script languageto initiate a crowd simulation. The scenario for the crowd simulation provides theinformation on the global simulation flow together with the objects including bothcrowd members and lifeless objects involved in the simulation. The simulation flowis specified by boundary conditions and a simulation procedure. The boundaryconditions include both initial and final conditions. The former consists of theinitial configurations of objects. The latter is the goal, which possibly consistsof subgoals set for the crowd. The simulation procedure is a sequence of pre-scheduled crowd behaviors and the behavioral rules, to achieve the goal startingfrom the initial configurations. Our initializer first sets the boundary conditions,then plans the global flow by scheduling the external events, and finally gets thesimulation started.

Since we mainly deal with pedestrian crowds, the goal is the target position fora crowd to reach guided by the route, that is, a sequence of subgoals. This infor-mation is recorded in the billboard. The virtual environment includes obstacles,interesting locations, streets, squares, guideposts, and so on, which are global in-formation shared by the crowd members. The environment is established initiallyby placing pre-defined geometric objects in the simulation space. The global mapof the environment is also recorded in the billboard. Whenever an event occurs, themembers involved in that event refer to the billboard to renew their knowledge. Anexternal event of a specific type is reserved for updating the billboard.

Every crowd member maintains its own internal status to interact with othermembers and objects in the environment. The internal status is specified by thephysical state, the mental state, and the relationship with other members and ob-jects. The physical state includes the information on position, velocity, and max-imum acceleration norm. Our initializer properly sets their initial values in accor-dance with the scenario. The mental state representing a goal, happiness, anger,anxiety, and so on is also initialized together with the relationship, which speci-fies the degrees of attraction (or repulsion) to other members and objects to reflectfriendship and curiosity. The relationship in combination with the mental stateadds variations to reactive behaviors.

Finally, we explain how to deal with the simulation procedure. As alreadymentioned, the simulation procedure consists of two parts, that is, a sequence ofpre-scheduled crowd behaviors and behavioral rules. The pre-scheduled behaviorscan be considered as the responses to unconditional external events. Based on thisinterpretation, we generate the external events corresponding to the pre-scheduledbehaviors. The behavioral rules specify the conditions to trigger the external events

15

Page 17: An Event-Driven Approach to Crowd Simulation with Example

and the responses to these events. We schedule such external events randomlywhile harmonizing the resulting events with the given unconditional events. Eachof the behavioral rules are defined by a tuple (E,M,B), where E, M, and Brepresent an event type, member(s), and a behavior, meaning that ”M perform(s)B as the reaction to E”. The behavior B may consist of one or more actions calleda motion. For more complex rules, we refer readers to the results in [36, 39]. Ourinitializer organizes the behavioral rules so that the event handler can easily accessthem.

3.2 Behavior Simulation

In this subsection, we describe how to simulate crowd behaviors, which consistsof three tasks: event scheduling, event handling, and internal event generation. Toconvey our idea effectively, we mainly deal with pedestrian crowd behaviors.

3.2.1 Event Scheduling

For crowd simulation, we identify two type of events: external and internal events.Generated by the initializer, the external events are for guiding the crowd simula-tion as described in the scenario. Once generated, every external event must occurat the time set by the initializer. Predicted by the event handler, candidate internalevents are competing with each other to be actual events. Those events add localvariations due to the dynamic simulation environment including crowd membersand other objects. The event scheduler maintains the candidate internal events to-gether with the external events in the event queue. Before a new candidate eventis added to the queue, the corresponding previous candidate is deleted from thequeue if it still exists there. The events scheduler removes the actual events one byone from the event queue in the order of their predicted times to activate the eventhandler.

3.2.2 Event Handling

Upon receiving an event from the event scheduler, what the event handler does isto derive the reaction to that event by updating the internal status in accordancewith the behavioral rules as well as the information perceived from nearby crowdmembers, the environment, and the billboard.

External Events Given an external event, the event handler identifies the eventtype to find its corresponding behavioral rule. From this rule, the event handler

16

Page 18: An Event-Driven Approach to Crowd Simulation with Example

extracts the members involved and their reactions to that event. The reaction ofa member provides a sequence of actions, each of which specifies the type of amotion to perform, for example, walking, running, and so on. The characteristics ofthe motion such as the direction and speed are either derived from behavioral rules(if specified) or inherited from the current motion of the member (if not specified),to complete a motion specification. In general, one or more motion specificationsfor every member involved are prescribed depending on the reaction specified inthe behavioral rule corresponding to the event. Finally, the event handler invokesthe internal event generator to create new candidate events in the future for thosemembers involved in the current external event.

Internal Events We consider two type of internal events: internal events for tak-ing care of the interactions among crowd members and those for the interactionswith the environment. The former type of internal events not only facilitates adap-tive behaviors of members such as collision avoidance but also are instrumental forinformation propagation. To handle such events effectively, we employ the event-driven scheme for collision avoidance described in Section 2. The latter type ofevents are for producing adaptive behaviors to the environment such as obstaclesand interesting regions, which can also be handled effectively using our collisionavoidance scheme. In each of the cases, the internal event generator is invoked toproduce new candidate events after generating the reaction to the current internalevent. In what follows, we describe how to generate the reaction in detail.

Whenever a pair of time-varying bounds collide with each other, an event ofthe former type occurs. The members involved in that event exchange their in-ternal status to adaptively change their behaviors according to the behavior rulecorresponding to the event. The types of motions to be performed by the membersas their reactions are either explicitly specified in the behavioral rule or inheritedfrom the current motions. The event handler changes the force field locally toreflect the interactions of those members with their neighbors as explained in Sec-tion 2.2. From the resulting force field, the event handler derives the parametersof the motion, that is, the direction and speed. The motion specification for eachmember is prescribed from those parameters together with the motion type.

An event of the latter type occurs when a time-varying bound touches (hits) alifeless object or an interesting region [36]. They are also represented as 2D balls,which are the 2D projections of their bounding cylinders. Interpreting such balls astrivial cases of 2D time-varying bounds, the event-driven scheme can be employedto trace those events. In fact, a static object such as an obstacle or a guidepostcan be considered as a crowd member of a specific type so as to apply an event

17

Page 19: An Event-Driven Approach to Crowd Simulation with Example

handling scheme similar to the former one but with some minor modification. Forexample, on hitting a guidepost by a time-varying bound, the corresponding mem-ber refers to the global map recorded in the billboard to confirm its route. However,an interesting region is processed quite differently. First, a member is allowed tointersect an interesting region. Next, once a member touches an interesting regionto generate an event, it never causes any events of the same kind. The response tothe event is to move toward to the center of the region. To make the member rejointhe crowd later, we schedule an external event.

3.2.3 Internal Event Generator

Given a crowd member (or its time-varying bound) sk, the internal event gener-ator predicts both types of internal candidate events for sk in the future, that is,candidate colliding and resetting events as described in Section 2.1. Again, thetime-varying bounds are allowed to penetrate each other. The candidate resettingevent is predicted to occur when sk touches a side of R(sk) (see Figure 2) for thefirst time. The candidate colliding event is predicted to occur when sk collideswith a time-varying bound in Sk for the first time. To treat static objects and inter-esting locations homogenously with the crowd members, we augment Sk to alsocontain those. Finally, the request for scheduling those events are sent to the eventscheduler.

3.3 Motion Generation

In this section, we describe how to generate a motion. The behaviors of crowdmembers are changing dynamically to reflect the stream of motion specificationsprescribed by the behavior generator in an on-line manner. In particular, thesespecifications are the responses to massive events mostly generated in runtime tofacilitate the reactive behaviors of a large number of crowd members. For efficientmotion synthesis, we employ the on-line motion blending scheme as given in [38].For completeness, we briefly describe this scheme.

A motion specification consists of motion data such as motion type, direc-tion, and speed. The motion type is for choosing the set of (locomotive) ex-ample motions to blend, and the direction and speed are used as the motion pa-rameters to determine the characteristics of the desired motion. Based on multi-dimensional data interpolation, the on-line motion blending scheme comprises fivesteps: parametrization, weight computation, time-warping, posture blending, andmotion retargetting.

18

Page 20: An Event-Driven Approach to Crowd Simulation with Example

As a preprocess, the example motions are parameterized automatically accord-ing to their characteristics. Those motions are placed in the parameter space spec-ified by speeds and turning angles. Provided with the parameter vector of a targetmotion, the contribution (weight) of every example motion to the target motionis computed using cardinal basis functions [48]. To choose the proper posturesfrom the example motions at each time instance, the examples are timewarped tobe aligned based on their keytimes. These postures are blended in accordance withtheir contributions to synthesize a desired posture. Finally, the target posture isretargetted on the fly to a crowd member and the environment to prevent artifactssuch as foot sliding and penetration.

4 Experimental Results

Our crowd animation system was implemented in C++ on top of the MicrosoftWindows XP. Experiments were performed on an Intel Pentium PC (PIV 2.4 GHzprocessor and 1 GB memory). We used a human model of 43 DOFs (Degrees OfFreedom): 6 DOFs for the pelvis position and orientation, 3 DOFs for the spine,7 DOFs for each limb, 3 DOFs for the head, and 3 DOFs for the neck. In allexperiments except the first one, we used 3D human models each consisting of1450 polygons.

The first experiment was to show the efficiency of our event-driven collisionavoidance scheme. Non-human creatures such as birds were chosen to minimizethe influence of the motion generator on the performance. We simulated two flocksof birds flying along a corridor. Unlike a human creature, each bird was approxi-mated to a 3D bounding ball of which the initial radius was 20 inches. There werea total of 1000 birds in both flocks each of which consists of 500 birds. The desiredspeed of the birds was set to be 200 inches/s, and the maximum norm of accelera-tion was 500 inches/s2 for all birds. The corridor had a volume of 6000 × 1000 ×1000 cubic inches with eight static columns within it. The radius of each columnwas 50 inches. As shown in Figure 5(a), the two flocks of birds are initially placedat the opposite ends of the corridor, respectively. Each flock of birds moved to theother end during the simulation, while avoiding any collisions with other birds andlifeless objects. Figure 5(b) shows a snapshot of the simulation. We also performedthe simulation using the fixed time step scheme with the same force field model tocompare our collision avoidance scheme. For fair comparison, the fixed time stepscheme also used space subdivision to localize the collision check, and adopted astrategy of ”undo and retry with a smaller time step (half the previous)” to resolveintersections. By varying the number of birds from 100 to 1000, the simulation

19

Page 21: An Event-Driven Approach to Crowd Simulation with Example

times for one second simulation were plotted as given in Figure 6. The renderingand motion generation times were excluded to compare only the efficiency of col-lision avoidance. As expected, the event-driven scheme handled the crowdednesseffectively in the middle of the corridor, where the two flocks of birds collided witheach other during the simulation, to outperform the fixed time step scheme.

Our second experiment was to simulate a human crowd consisting of 200 mem-bers to walk around in a square while avoiding collisions with others. We approx-imated each member to a bounding cylinder with the initial radius of 20 inches.The maximum norm of acceleration for each member was 200 to 250 inches/s2.Figure 7 (a) shows the initial placements of the characters in the square. Aftersimulating the characters for five seconds, we generated an external event for thosenear the upper-right corner of the square to direct crowd behavior such as an evac-uation during which all members moved to the lower-left corner. The characters asdrawn with red circles in Figure 7 (b) received the external message. The messagewas propagated to others through local interactions. Figure 7 (c) shows a snapshotof the simulation. The members eventually gathered around the lower-right corneras shown in Figure 7 (d). The frame rate of the simulation was five frames persecond (5Hz), including rendering time.

Our third experiment was to simulate 50 athletes competing in a marathon race.Figure 8 (a) shows the race track on the ground and the initial placement of run-ners. To start the race, we generated an external event corresponding to the startingsignal. In modelling the behavioral rules for runners, we took into account thecompetitive nature of the race as well as the level of fatigue due to their physicalexercise. When a runner spurted abruptly at full speed, an internal event for eachnearby runner evoked a spurt behavior so that it did not fall too far behind thatrunner. We also generated an event when the fatigue level of a runner exceededa predefined threshold. Upon such an event, the runner gradually slowed down.Figure 8 (b) shows a snapshot of the race. To generate realistic motions of variousspeeds and turning angles, we took example motions with five different turningangles and four different speeds. The scene was synthesized at the rate of 20Hz.The same simulation was repeated with 100 members. As shown in Figure 9, thescene was produced at the rate of 10Hz.

Our last experiment was for simulating a crowd walking in a park. There weresmall stores on both sides of a circular road, and each member wandered about theroad in a clockwise or counter-clockwise direction, occasionally stopped in frontof a store to buy goods, and then continued to move. When a pair of intimate mem-bers came across each other, an internal event evoked a ”greet” behavior directingboth members to exchange greetings. Without a sophisticated collision avoidancescheme, this situation would result in interferences with each other causing conges-

20

Page 22: An Event-Driven Approach to Crowd Simulation with Example

tion. Our scheme successfully guided each member to move through the crowdedareas without incurring much congestion. Figure 10 shows a snapshot of the parkscene. The crowd scene consisting of 200 members was generated at the rate of 5Hz.

As observed in the last three experiments, the bottleneck of our approach wasmotion generation. Employing an on-line motion blending scheme in [38], ourmotion generator was able to synthesize motions at a little more than 3000 Hz withtwenty example motions. With similar static scene complexities, the performanceof our scheme was inversely proportional to the number of crowd members. Tosupport our observations, we repeated the second experiment while varying thenumber of crowd members from 40 to 200. As shown in Figure 11, the frame ratesconfirmed the results obtained from the previous three experiments.

5 Conclusion

In this paper, we present an event-driven approach for crowd simulation, in partic-ular, the simulation of the locomotive behavior of a crowd. Guided by the exter-nal events reflecting a given scenario, the behavior of a crowd evolves as intendedwhile adding variations due to the internal events mainly triggered by the collisionsamong time-varying bounds, each representing a crowd member or a static object.The skeleton of our approach is an event-driven algorithm for collision detectioncombined with a force field model based on pedestrian dynamics [18]. Althoughwe mainly deal with locomotive motions, we believe that our approach can beadapted to other types of motions as well by using more sophisticated behavioralrules while also elaborating the force field model accordingly.

For applications such as computer games, we adopt an on-line approach as-suming that input data are not available in advance. At the moment, we are ableto simulate a small human crowd consisting of 50 to 200 members (1450 polygonseach) at an interactive rate (5-20Hz). In the near future, we expect that our schemecan easily achieve a real-time performance for ten times larger crowds, regardingthe recent trend of hardware enhancement.

To convey our main idea effectively, we minimize our efforts in describingscenarios and behavioral rules as well as the scripting system, which are well ex-plained elsewhere [36, 39]. This by no means implies that they are not important.An authoring tool for crowd simulation should be equipped with those components.In fact, human behaviors are too complex to describe with simple rules. More so-phisticated behavioral rules are required to synthesize crowd behaviors in generalincluding those governed by pedestrian dynamics. We are planning to generalize

21

Page 23: An Event-Driven Approach to Crowd Simulation with Example

(a) (b)

Figure 5: a flock of free-flying birds

Figure 6: the actual processing time required to simulate birds for one second.

our crowd simulation system so that it will be equipped with more sophisticatedother components as well within our event-driven framework.

References

[1] AI-implant, 2002. http://www.ai-implant.com/prod-maya-demo.html.

[2] AntZ, 1998. http://www.antz.com/technology.

[3] O. Arikan and D. A. Forsyth. Interactive Motion Generation from Examples.ACM Transactions on Graphics (Proc. SIGGRAPH 2002), 21(3):483–490,

22

Page 24: An Event-Driven Approach to Crowd Simulation with Example

(a) (b)

(c) (d)

Figure 7: a square scene

(a) (b)

Figure 8: a marathon race (50 members)

23

Page 25: An Event-Driven Approach to Crowd Simulation with Example

Figure 9: a marathon race (100 members)

(a) (b)

Figure 10: a park scene

Figure 11: the frame rates of the simulation

24

Page 26: An Event-Driven Approach to Crowd Simulation with Example

July 2002.

[4] D. Baraff. Curved surfaces and coherence for non-penetrating rigid bodysimulation. In Computer Graphics (Proc. of SIGGRAPH ’90), pages 19–28,1990.

[5] D. C. Brogan and J. K. Hodgins. Group behaviors for systems with significantdynamics. Autonomous Robots, 4(1):137–153, 1997.

[6] D. C. Brogan, R. A. Metoyer, and J. K. Hodgins. Dynamically simulatedcharacters in virtual environments. IEEE Computer Graphics and Applica-tions, 15(5):58–69, 1998.

[7] J. D. Cohen, M. C. Lin, D. Manocha, and M. Ponamgi. I-COLLIDE: Aninteractive and exact collision detection system for large-scale environments.In Proc. of ACM Symposium on Interactive 3D Graphics, pages 189–196,1995.

[8] T. H. Cormen, C. H. Leiserson, and R. L. Rivest. Introduction to Algorithms.The MIT Press, 1990.

[9] A. Galata, N. Johnson, and D. Hogg. Learning Variable-Length Markov Mod-els of Behavior. Computer Vision and Image Understanding, 81:398–413,2001.

[10] P. G. Gipps and B. Marksjo. A Micro-Simulation Model For PedestrianFlows. Mathematics and Computers in Simulation, 27:95–105, 1985.

[11] S. Gottschalk, M. C. Lin, and D. Manocha. OBBTree: A hierarchical struc-ture for rapid interference detection. In Computer Graphics (Proc. of SIG-GRAPH ’96), pages 171–180, 1996.

[12] S. Guo and J. Roberge. A High-level Control Mechanism for Human Loco-motion Based on Parametric Frame Space Interpolation. In Proc. Eurograph-ics Workshop on Computer Animation and Simulation 96, pages 97–107, Au-gust 1996.

[13] J. K. Hahn. Realistic animation of rigid bodies. Computer Graphics,22(4):299–308, August 1988.

[14] B. Hakin and R. Wright. Passenger flow in subways. Operational ResearchQuaterly, 9:299–308, August 1958.

25

Page 27: An Event-Driven Approach to Crowd Simulation with Example

[15] L. Handerson. On the flow mechanics of human crowd motion. Transporta-tion Research, 8:509–515, 1974.

[16] D. Helbing. A fluid-dynamic model for the movement of pedestrians. Com-plex Systems, pages 391–415, 1992.

[17] D. Helbing, I. J. Farkas, and T.Vicsek. Simulating dynamic features of escapepanic. Nature, 407:487–490, 2000.

[18] D. Helbing and P. Molnar. Social force model for pedestrian dynamics. Phys-ical Review E 51, pages 4282–4286, 1995.

[19] P. M. Hubbard. Collision detection for interactive graphics applications.IEEE Transactions on Visualization and Computer Graphics, 1(3):218–230,September 1995.

[20] P. M. Hubbard. Approximating polyhedra with spheres for time-critical col-lision detection. ACM Transactions on Graphics, 15(3):179–210, July 1996.

[21] D. R. Jefferson. Virtual time. ACM Tracsactions on Programming Languagesand Systems, 7(3):404–425, July 1985.

[22] D. Kim, L. J. Guibas, and S. Y. Shin. Fast collision detection among multiplemoving spheres. IEEE Transactions on Visualization and Computer Graph-ics, 4(3):230–242, 1998.

[23] H. K. Kim. Efficient Collision Detection among Moving Spheres with Un-known Trajectories. PhD thesis, Dept. Electrical Engineering & ComputerScience, Korea Advanced Institute of Science and Technology, Feb. 2001.

[24] J. T. Klosowski, M. Held, J. S. B. Mitchell, H. Sowizral, and K. Zikan. Effi-cient collision detection using bounding volume hierarchies of k-DOPs. IEEETransactions on Visualization and Computer Graphics, 4(1):21–36, 1998.

[25] L. Kovar, M. Gleicher, and Frederic Pighin. Motion Graphs. ACM Transac-tions on Graphics (Proc. SIGGRAPH 2002), 21(3):473–482, July 2002.

[26] J. Lee, J. Chai, P. S. A. Reitsma, J. K. Hodgins, and N. S. Pollard. InteractiveControl of Avatars Animated with Human Motion Data. ACM Transactionson Graphics (Proc. SIGGRAPH 2002), 21(3):491–500, July 2002.

[27] Y. Li, T. Wang, and H. Shum. Motion Texture: A Two-Level Statistical Modelfor Character Motion Synthesis. ACM Transactions on Graphics (Proc. SIG-GRAPH 2002), 21(3):465–472, July 2002.

26

Page 28: An Event-Driven Approach to Crowd Simulation with Example

[28] M. C. Lin and J. F. Canny. A fast algorithm for incremental distance calcula-tion. In Prof. of IEEE International Conference on Robotics and Automation,pages 1008–1024, 1991.

[29] Massive, 2001. http://massivesoftware.com/.

[30] V. J. Milenkovic and H. Schmidl. Optimization-based animation. In Com-puter Graphics (Proc. of SIGGRAPH’2001), pages 37–46, 2001.

[31] B. Mirtich. Impulse-based Dynamic Simulation of Rigid Body Systems. PhDthesis, University of California, Berkeley, December 1996.

[32] B. Mirtich. Timewarp rigid body simulation. In Computer Graphics (Proc.of SIGGRAPH’2000), pages 193–200, 2000.

[33] B. Mirtich. Efficient algorithms for two-phase collision detection. Technicalreport, TR-97-23, A Mitsubishi Electric Research Laboratory, Dec. 1997.

[34] M. Moore and J. Wilhelms. Collision detection and response for computeranimation. In Computer Graphics (Proc. of SIGGRAPH ’88), pages 289–298,1988.

[35] S. R. Musse and D. Thalmann. A model of human crowd behavior: Groupinter-relationship and collision detection analysis. In Computer Animationand Simulations ’97, Proc. Eurographics workshop, pages 39–51, 1997.

[36] S. R. Musse and D. Thalmann. Hierarchical model for real time simulationof virtual human crowds. IEEE Transactions on Visualization and ComputerGraphics, 7(2):152–164, 2001.

[37] M. H. Overmars. Point location in fat subdivisions. Information ProcessingLetters, 44(5):261–265, December 1992.

[38] S. I. Park, H. J. Shin, and S. Y. Shin. On-line locomotion generation based onmotion blending. In Proceedings of ACM SIGGRAPH Symposium on Com-puter Animation, pages 105–111, 2002.

[39] K. Perlin and A. Goldberg. Improv: A system for scriping interactive actorsin virtual worlds. In Computer Graphics (Proc. of SIGGRAPH’96), pages205–216, 1996.

[40] K. Pullen and C. Bregler. Motion Capture Assisted Animation: Texturingand Synthesis. ACM Transactions on Graphics (Proc. SIGGRAPH 2002),21(3):501–508, July 2002.

27

Page 29: An Event-Driven Approach to Crowd Simulation with Example

[41] C. W. Reynolds. Flocks, herds, and schools: A distributed behavioral model.In Computer Graphics (Proc. of SIGGRAPH ’87), pages 25–34, 1987.

[42] C. W Reynolds. Interaction with groups of autonomous characters. In Pro-ceedings of Game Developers Conference 2000, pages 449–460, 2000.

[43] C. Rose, M. F. Cohen, and B. Bodenheimer. Verbs and adverbs: Multidi-mensional motion interpolation. IEEE Computer Graphics & Applications,18(5):32–40, 1998.

[44] Charles F. Rose, Brian Guenter, Bobby Bodenheimer, and Michael F. Co-hen. Efficient generation of motion transitions using spacetime constraints.In Proceedings of SIGGRAPH 96, pages 147–154, 1996.

[45] M. Schreckenberg and S. D. Sharma. Pedestrian and Evacuation Dynamics.Springer, Berlin, 2002.

[46] H. J. Shin, J. Lee, M. Gleicher, and S. Y. Shin. Computer puppetry: Animportant-based approach. ACM Transactions on Graphics, 20(2):to appear,2001.

[47] P. Sloan, C. F. Rose, and M. F. Cohen. Shape and animation by example.Technical Report MSR-TR-2000-79, Microsoft Research, Microsoft Corpo-ration, One Microsoft Way, Redmond, WA 98052, July 2000. Available athttp://www.research.microsoft.com.

[48] P. Sloan, C. F. Rose, and M. F. Cohen. Shape by example. In Proceedings ofACM SIGGRAPH Symposium on Interactive 3D Graphics, pages 135–144,2001.

[49] L. M. Tanco and A. Hilton. Realistic Synthesis of Novel Human Movementsfrom a Database of Motion Capture Examples. In Proc. the IEEE Workshopon Human Motion, pages 137–142, 2000.

[50] XSI, 2002. http://www.softimage.com/Corporate/Press/Visuals/.

[51] X. Tu and D. Terzopoulos. Artificial fishes: Physics, locomotion, perception,behavior. In Computer Graphics (Proc. of SIGGRAPH’94), pages 43–50,1994.

[52] G. Turk. Interactive collision detection for molecular graphics. Technicalreport, TR90-014, Dept. of Computer Science, Univ. of North Carolina atChapel Hill, Jan. 1990.

28

Page 30: An Event-Driven Approach to Crowd Simulation with Example

[53] R. Webb and M. Gigante. Using dynamic bounding volume hierarchies toimprove efficiency of rigid body simulation. Visual Computing (Proceedingof Computer Graphics International), pages 825–842, 1992.

[54] Greg Welch and Gary Bishop. Scaat: Incremental tracking with incompleteinformation. In Proceedings of SIGGRAPH 97, pages 333–344, 1997.

[55] D. J. Wiley and J. K. Hahn. Interpolation synthesis for articulated figuremotion. In Proc. of IEEE Virtual Reality Annual International Symposium’97, pages 157–160, 1997.

29