10.1.1.103.7187

Upload: andy-taylor

Post on 09-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/7/2019 10.1.1.103.7187

    1/10

    (~ ) ~ Com puter Graphics, Volume 21, Num ber 4, July 1987

    F l o c k s , H e r d s , a n d S c h o o ls : A D i s t r i b u t e d B e h a v i o r a l M o d e lCraig W. Reynolds

    Symbolics Graphics Division1401 Westwood Boulevard

    Los Angeles, California 90024(Electronic mail: [email protected])

    A b s t r a c tThe aggregate motion of a flock of birds, a herd of land ani-mals, or a school of fish is a beautiful and familiar part of then a t u r a l world. But this type of complex motion is rarely seen incomputer animation. This paper explores an approach basedon simulation as an alternative to scripting the paths of eachbird individually. The simulated flock is an elaboration of aparticle system, with the simulated birds being the particles.The aggregate motion of the simulated flock is created by adistributed behavioral model much like that at work in a natu-ral flock; the birds choose their own course. Each simulatedbird is implemented as an i ndepend ent actor that navigates ac-cording to its local perception of the dy namic envir onmen t, thelaws of simulated physics that rule its motion, and a set ofbehaviors programmed into it by the "animator." The aggre-gate motion of the simulated flock is the result of the denseinteraction of the relatively simple behaviors of the individualsimulated birds.Categories and Subject Descriptors: 1.2.10 [Artificial Intelli-gence]: Vision and Scene Understanding; 1.3.5 [ComputerGraphics]: Computational Geometry and Object Modeling;1.3.7 [Computer Graphics]: Thre e-Dimen sional Graphics andRealism--Animation; 1.6.3 [Simulation and Modeling[: Appli-cations.General Terms: Algorithms, design.Additional Key Words, and Phrases: flock, herd, school, bird,fish, aggregate motion, particle system, actor, flight, behav-ioral animation, constraints, path planning.I n t r o d u c t i o nThe motion of a flock of birds is one of nature's delights.Flocks and related synchronized group behaviors such asschools of fish or herds of land animals are both beautiful towatch and intriguin g to contemplate. A flock* exhibits manycontrasts. It is made up of discrete birds yet overall motionseems fluid; it is simple in con cept yet is so visually complex,Permission o copy without fee all or part of this material is grantedprovided that the copiesa r e n o t made or distributed for directcommercial advantage, he ACM copyright notice and the title of thepublicationand its date appear, and notice s given hat copying s bypermissionof the Association or Computing Machinery.To copyotherwise, or to republish, requires a fee and/or specific permission.

    1 98 7 ACM-0-89791-227-6/87/007/0025 $00.75

    it seems randoml y arrayed and yet is magn ificently synchro-nized. Perhaps most pu zzling is the strong impression of inten-tional, centralized control. Yet all evidence indicates that flockmotion must be merely the aggregate result of the actions ofindividual animals, each acting solely on the basis of its ownlocal perception of the world.One area of interest within computer animation is the de-scription and control of all types of motion. Computer anima-

    tors seek both to invent wholly new types of abstract motionand to duplicate (or make variations on) the motions found inthe real world. At first glance, producing an animated, com-puter graphic portrayal of a flock of birds presents significantdifficulties. Scripting the path of a large number of individualobjects using traditional computer animation techniques wouldbe tedious. Given the complex paths that birds follow, it i sdoubtful this specification could be made without error. Evenif a reasonable number of suitable paths could be described, itis unlikely that the constraints of flock motion could be main-tained (for example, preventing collisions between all birds ateach frame). Finally, a flock scripted in this manner would behard to edit (for example, to alter the course of all birds for aportion of the animation). It is not impossible to script flockmotion, but a better approach is needed for efficient, robust,and believable animati on of flocks and related group m otions.This paper describes one such approach. This approachassumes a flock is simply the result of the interaction betweenthe behaviors of individual birds. To simulate a flock we simu-late the behavior of an indiv idual bird (or at least that portionof the bird's behavior that allows it to participate in a flock). Tosupport this behavioral "control structure" we must also simu-late portions of the bird's perceptual mechanisms and aspectsof the physics of aerodynamic flight. If this simulated birdmodel has the correct flock-member behavior, all that shouldbe required to create a simulated flock is to create some in-stances of the simulated bird model and allow them to inter-act. **

    Some experiments with this sort of simulated flock are de-scribed in more detail in the remaind er of this paper. The suc-*In this paperflock refers generically to a group of objects thatexhibit this general class of polarized, noncolliding, aggregatemotion. The term polarization is from zoology, meaning align-ment of animal groups. English is rich with terms for groups ofanimals; for a charming and literate discussion of such words seeAn Exultation of Larks. [16]**This paper refers to these simulated bird-like, "bird-old" objectsgenerically as "boids" even when they represent other sorts ofcreatures such as schooling fish.

    25

  • 8/7/2019 10.1.1.103.7187

    2/10

    ~ SIGGRAPH 87, Anaheim, Ju ly 27-31, 1987

    cess and validity of these simulations is difficult to measureobjectively. They do seem to agree well with certain criteria[25] and some statistical properties [23] of natural flocks andschools which have been reported by the zoological and behav-ioral sciences. Perhaps mor e significantly, many people whoview these animated flocks immediately recognize them as arepresentation of a natural flock, and find them similarly de-lightful to watch.O ur F o r e f i o c k sThe computer graphics community has seen simulated birdflocks before. The Electronic Theater at SIGGRAPH '85 pre-sented a piece labeled "motion studies for a work in progressentitled 'Eurythmy'" [4] by Susan Amkraut, Michael Girard,and George Karl from the Computer Graphics Research Groupof Ohio State University. In the film, a flock of birds flies upout of a minaret and, pas sing between a series of columns, fliesdown into a lazy spiral around a courtyard. All the while thebirds slowly flap their wings and avoid collision with theirflockmates.

    That anim ation was produced using a technique completelyunlike the one described in this paper and apparently not spe-cifically intended for flock modeling. But the underlying con-cept is useful and interesting in its own right. The followingoverview is based on unpublished communications [3]. Thesoftware is informally called "the force field animation sys-tem." Force fields are defined by a 3 x 3 matrix operator thattransform from a point in space (where an object is located) toan acceleration vector; the birds trace paths along the "phaseportrait" of the force field. There are "rejection forces"around each bird and around static objects. The force fieldassociated with each object has a bounding box, so object in-teractions can be culled according to bounding box tests. Anincremental, linear time algorithm finds bounding box inter-sections. The "animator" defines the space field(s) and setsthe initial positions, orientations, and velocities of objects. Therest of the simu lation is automatic.Karl Sims of MIT's Media Lab has constructed some be-haviorally controlled animation of groups of moving objects(spaceships, inchworms, and quadrupeds), but they are not or-ganized as flocks [35]. Another author kept suggesting [28,29, 30] implement ing a flock simulation based on a distribute dbehavioral model.

    P a r t i c l e S y s t e m sThe simulated flock described here is closely related to p a r t i -c l e s y s t e m s [27], which are used to represent dynamic "fuzzyobjects" having irregul ar and complex shapes. Particle systemshave been used to model fire, smoke, clouds, and more re-cently, the spray and foam of ocean waves [27]. Particle sys-tems are collections of large numbers of individual particles,each having its own behavior. Particles are created, age, anddie off. During their life they have certain behaviors that canalter the particle's own state, which consists of c o l o r , o p a c i t y ,l o c a t i o n , and v e l o c i t y .

    Underl ying the bold flock model is a slight generalizationof particle systems. In what might be called a "subobject sys-tem," Reeves's dot-like particles are replaced by an entire geo-metrical object consisting of a full local coordinate system anda reference tO a geometrical shape model. The use of shapesinstead of dots is visually significant, but the more fundamen-tal difference is that individual subobjects have a more com-plex geometrical state: they now have orientation.

    Another difference between bold flocks and particle sys-tems is not as well defined. The behavior of boids is generallymore complex than the behaviors for particles as described inthe literature. The present bold behavior model might be aboutone or two orders of magnitude more complex than typicalparticle behavior. However this is a difference of degree, not ofkind. And neither simulated behavior is nearly as complex asthat of a real bird.Also, as presented, particles in particle systems do not in-teract with one another, although this is not ruled out by defini-tion. But birds and hence boids must interact strongly in orderto flock correctly. Bold behavior is dependent not only on in -

    t e r n a l s t a t e but also on e x t e r n a l s t a t e .

    A c t o r s a n d D i s t r i b u t e d S y s t e m sThe behavioral model that controls the boid's flight and flock-ing is complicated enough that rather than use an a d h o c ap-proach, it is worthwhile to pursue the most appropriate formalcomputational model. The behaviors will be represented asrules or programs in some sense, and the internal state of eachbold must be held in some sort of data structure. It is conve-nient to encapsulate these behaviors and state as an o b j e c t , inthe sense of object-oriented progr amming systems [10, 11,21]. Each i n s t a n c e of these objects needs a computationalp r o c e s s to apply the behavioral programs to the internal data.The computational abstraction that combines process, proce-dure, and state is called an a c t o r [12, 26, 2]. An actor isessentially a virtual computer that communicates with othervirtual computers by p a s s i n g m e s s a g e s . The actor model hasbeen proposed as a natural structure for animation control byseveral autho rs [28, 13, 29, 18]. It seems part icul arly apt forsituations involvi ng interacting characters and behavior sim ula-tion. In the literature of parallel and distributed computer sys-tems, flocks and schools are given as examples of robustself-organizin g distributed systems [15].

    B e h a v i o r a l A n i m a t i o nTraditional hand-dr awn eel animation was produced with a me-dium that was completely inert. Traditional computer anima-tion uses an active medium (computers running graphicssoftware), but most animation systems do not make much useof the computer's ability to automate motion design. Usingdifferent tools, contemporary computer animators work at al-most the same low level of abstraction as do eel animators.They tell their story by directly describing the motion of theircharacters. Shortcuts exist in both media; it is common forcomputer animators and eel animators to use helpers to inter-polate between specified keyframes. But little progress hasbeen made in automating motion description; it is up to theanimator to translate the nuances of emotion and characteriza-tion into the motions that the character performs. The animat orcannot simply tell the character to "act happy" but must tedi-ously specify the moti on that conveys happiness.

    Typical computer animation models only the shape andphysical properties of the characters, whereas b e h a v i o r a l orc h a r a c t e r - b a s e d animation seeks to model the behavior of thecharacter. The goal is for such simulated characters to handlemany of the details of their actions, and hence their motions.These b e h a v i o r s include a whole range of activities from sim-ple path planni ng to complex "emotio nal" interactions be-tween characters. The construction of behavioral animationcharacters has attracted many researchers [19, 21, 13, 14, 29,

    26

  • 8/7/2019 10.1.1.103.7187

    3/10

    ( ~ ~ Com puter Graphics, Volume 21, Num ber 4, Ju ly 19i i l l l l

    30, 41 , 40] , but i t i s s t i l l a young f i e ld in which more work i sneeded.Because of the de tached na ture of the cont ro l , the personwho crea tes animat ion wi th charac ter s imula t ion might nots t r i c t ly be an animator. Tradi t iona l ly , the animator i s d i rec t lyrespons ib le for a l l mot ion in animat ion product ion [40] . I tmight be more proper to ca l l the person who di rec t s an imat ionvia s imula ted charac ter s a meta-animator, s ince the animator i sl ess a des igner of mot ion and more a des igner of behavior .These behaviors , when ac ted out by the s imula ted charac ter s ,l ead indi rec t ly to the f ina l ac tion . T hus the animato r ' s job be-comes somewhat l ike tha t of a thea t r ica l d i rec tor : the charac-te r ' s per formance i s the indi rec t resul t of the d i rec tor ' sins t ruc tions to the ac tor . One of the charming a spec t s of thework repor ted here i s not knowing how a s imula t ion i s going toproceed f rom the spec i f i ed behaviors and in i t i a l condi t ions ;there a re many unexpected , p leasant surpr i ses . On the o therhand, th i s charm s ta r t s to wear th in as deadl ines approach andthe unexpected annoyances pop up . This author has spent a lo tof t ime recent ly t ry ing to ge t uncoopera t ive f locks to move asin tended ( " these d arn boids seem to have a mind of the i rown! " ) .

    speed . A minimum speed can a l so be spec i f i ed but defaul t szero . A maxim um acce lera t ion , expressed as a f rac t ion of tmaximum speed, i s used to t runca te over -anxious reques t s acce lera t ion , hence provid ing for smooth changes of speed aheading. This i s a s imple model of a c rea ture wi th a f inamount of ava i l able energy.Many phys ica l forces a re not suppor ted in the cur rent bom o d e l . Gravity i s modeled but used only to def ine bankibehavior . I t i s def ined proced ura l ly to a l low the cons t ruc t ionarbi t ra r i ly shaped f i e lds . I f each bold was acce lera ted by gri ty each f rame, i t would t end to fa l l unless gravi ty was coutered by lift o r buoyancy. Buoyancy i s a l igned aga ins t gravibut aerodynamic l i f t i s a l igned wi th the boid ' s loca l "up" rec t ion and re la ted to ve loc ity . This l eve l of mod el ing l eadsef fec t s l ike normal ly l eve l f l ight , going fas te r when f ly idown (or s lower up) , and the "s ta l l " maneuver . The spel imi t parame ter could be mo re rea l i s t i ca l ly mode led as a f rt iona l drag, a backward poin t ing force re la ted to ve loc i ty . the cur rent model s t eer ing i s done by d i rec t ing the ava i l athrust in the appropr ia te d i rec t ion . I t would be m ore rea l i s t icsepara te ly model the tangential thrus t ing forces and the lates teer ing forces, s in ce they normal ly have d i f fe rent magni tude

    G e o m e t r i c F l ig h tA fundamenta l pa r t of the bold model i s the geome t r ic abi l i tyto fly . The mot ion of the members of a s imula ted school orherd can be cons idered a type of " f ly ing" by g loss ing over thecons iderable in t r i cac ies of wing, f in , and l eg mot ion (and inthe case of herds , by res t r i c t ing f reedom of mot ion in the th i rddimens ion) . In th i s paper the t e rm geometric f l igh t refers to acer ta in type of mot ion a long a pa th : a dynamic , incrementa l ,r ig id geomet r ica l t r ansformat ion of an objec t , moving a longand tangent to a 3D curve . Whi le the mot ion i s r ig id , the ob-jec t ' s under ly ing geomet r ic model i s f ree to a r t i cu la te orchange shape wi th in th i s " f ly ing coordina te sys tem." Unl ikemore typica l an imated mot ion a long predef ined sp l ine curves ,the shape o f a f l ight pa th i s not spec i f i ed in advance .

    Geom et r ic f l ight i s based on incrementa l t r ans la t ions a longthe objecrs " forward d i rec t ion" i t s loca l pos i t ive Z axi s .These t rans la t ions a re in te rmixed wi th steering--rotationsabout the loca l X and Y axes (pitch and yaw) , which rea l ignthe g lobal or ienta t ion of the loca l Z axi s . In rea l f l ight , turn ingand moving happen cont inuous ly and s imul taneous ly . Incre-menta l geomet r ic f l ight i s a d i scre te approximat ion of th i s ;smal l l inear mot ions model a cont inuous curved pa th . In ani -mat ion the mot ion mus t increment a t l eas t once per f rame.Running the s imula t ion a t a h igher ra te can reduce the d i scre tesampl ing er ror of the f l ight model and re f ine the shape o f mo-t ion b lur pa t t e rns .

    Fl ight model ing makes extens ive use of the objec t ' s owncoordina te sys tem. Local space represent s the "boid ' s eyeview;" i t impl ies measur ing th ings re la t ive to the boid ' s ownpos i t ion and or ienta t ion . In Car tes ian t e rm s , the l e f l / r ight ax i si s X, up/down i s Y, and forward/back i s Z. The convers ion ofgeome t r ic da ta be tween the loca l and g lobal re ference f rames i shandled by the geomet r ic opera tors localize and globalize. I t isconvenient to use a loca l sca le so tha t the uni t of l ength of thecoordina te sys tem i s one body length. Biologi s t s rout ine lyspec i fy f lock and school s t a t i st i cs in t e rms of body lengths .

    Ge o m e t r i c f l i g h t m o d e l s c o n s e r v a t io n o f m o m e n t u m . Anobjec t in f l ight t ends to s t ay in f light . There i s a s imple mod elof v i scous speed damping , so even i f the bold cont inua l ly ac-ce lera tes in one d i rec t ion , i t wi l l not exceed a cer ta in ma x imum

    B a n k i n gGeomet r ic f l ight re la tes t rans la t ion , p i t ch , and yaw, but donot cons t ra in roll, the ro ta t ion about the loca l Z axi s . Thdegree of f reedom i s used for banking--rolling the objec ta l ign the loca l Y axi s wi th the ( loca l XY compone nt of to ta l ) acce lera t ion ac t ing upon i t . Normal ly banking i s bason the l a te ra l component of the acce lera t ion , but the t angentcomponent can be used for cer ta in appl ica t ions . The l a tecomponents a re f rom s teer ing and gravi ty . In s t ra ight f l igthere i s no radia l force , so the gravi ta t iona l t e rm dominates abanking a l igns the objec t ' s -Y axi s wi th "gravi ta t iona l dowdi rec t ion . When turn ing , the radia l component grows la rgand the "acce lera t io na l down" d i rec t ion swings outward , l ikpendulum hanging f rom the f ly ing objec t . The magni tude the turn ing acce lera t ion var ies d i rec t ly wi th the o bjec t ' s ve loi ty and wi th the curva ture of i t s pa th ( so inverse ly wi th tradius of i ts turn) . The l imi t ing case of inf in i t e ve loc i ty resebles banking behavior in the absence of gravi ty . In these casthe loca l + Y (up) d i rec t ion p oin t s d i rec t ly a t the center curva ture def ined by the cur rent turn .

    D i r e c l i o n of F t i g h l4

    B a n k

    Figure 1 .Wi th cor rec t banking (what p i lo t s ca l l a coordinated tuthe objec t ' s loca l space remains a l igned wi th the "perceptuor "acce lera t iona l" coordina te sys tem. This has severa l advtages : i t s impl i f i es the b i rd ' s (or p i lo t ' s ) or ienta t ion t ask

  • 8/7/2019 10.1.1.103.7187

    4/10

    ~ / ~ SIGGRAPH 87, Anaheim , July 27-31, 1987

    keeps the lift from the airfoils of the wings pointed in the mostefficient direction ("accelerational up"), it keeps the passen-gers' coffee in their cups, and most importantly for animation,it makes the flying boid fit the viewer's expectation of howflying objects should move and o rient themselves. On the otherhand, realism is not always the goal in animation. By simplyreversing the angle of bank we obtain a cartoony motion thatlooks like the object is being flung outward by the centrifugalforce of the turn.

    B o i d s a n d T u r t l esThe incremental mixing of forward translations and local rota-tions that underlies geometric flight is the basis of "turtlegraphics" in the programming language Logo [5]. Logo wasfirst used as an educational tool to allow children to learn ex-perimentally about geometry, arithmetic, and programming[22]. The Logo turtle was originally a little mechanical robotthat crawled around on large sheets of paper laid on the class-room floor, drawing graphic figures by dragging a felt tipmarker along the paper as it moved. Abstract turtle geometry isa system based on the frame of reference of the turtle, an ob-ject that unites position and heading. Under program controlthe Logo turtle could move forward or back from its currentposition, turn left or right from its current heading, or put thepen up or down on the paper. The turtle geometry has beenextended from the plane onto arbitrary manifolds and into 3Dspace [1]. Th ese "3d turtles" and their paths are exactly equiv-alent to the boid objects and their flight paths.

    N a t u r a l F l o c k s , H e r d s , a n d S c h o o l s" . . . and the thousands of ishes moved as a huge beast, piercingthe water. They appeared united, inexorably bound to a common

    fate. How comes this unity?"--Anonymous, 17th century (from Shaw)For a bird to participate in a flock, it must have behaviorsthat allow it to coordinate its movements with those of itsflockmates. These behaviors are not particularly unique; allcreatures have them to some degree. Natural flocks seem toconsist of two balanced, opposing behaviors: a desire to stayclose to the flock and a desire to avoid collisions within theflock [34]. I t is clear why an indi vidual bird wants to avoidcollisions with its flockrnates. But why do birds seem to seekout the airborne equivalent of a nasty traffic jam? The basicurge to join a flock seems to be the result of evolutionarypressure from several factors: pro tection from predators, statis-tically improving survival of the (shared) gene pool from at-

    tacks from predators, profiting from a larger effective searchpattern in the quest for food, and advantages for social andmating activities [33].There is no evidence that the complexity of natural flocksis bounded in any way. Flocks do not become "full" or "over-loaded" as new birds join. When herring migrate toward theirspawning grounds, they run in schools extending as long as 17miles and containing millions of fish [32]. Natural flocks seemto operate in exactly the same fashion over a huge range offlock populations. It does not s eem that an indi vidual bird canbe paying much attention to each and every one of its flock-mates. But in a huge flock spread over vast distances, an indi-vidual bird must have a localized and filtered perception of the

    rest of the flock. A bird might be aware of three categories:itself, its two or three nearest neighbors, and the rest of theflock [23].These speculations about the "computational complexity"of flocking are meant to suggest that birds can flock with anynumber of flockmates because they are using what would be

    called in formal computer science a constant time algorithm.That is, the amount of "thinking" that a bird has to do in orderto flock must be largely independent of the number of birds inthe flock. Other wise we w ould expect to see a sha W upperbound on the size of natural flocks when the individual birdsbecame overloaded by the complexity of their navigation task.This has not been observed in nature.Contrast the in sensitivi ty to complexity of real flocks withthe situation for the simulated flocks described below. Thecomplexity of the flocking algorithm described is basicallyO(N2). That is, the work required to run the algorithm growsas the square of the flock's population. We definitely do s e e anupper bound on the size of simulated flocks implemented asdescribed here. Some techniques to address this performanceissue are discussed in the section Algorithmic Considerations .

    S i m u l a t e d F l o c k sTo build a simulated flock, we start with a boid model thatsupports geometric flight. We add behaviors that correspo nd tothe opposing forces of collision avoidance and the urge to jointhe flock. Stated briefly as rules, and in order of decreasingprecedence, the behavio rs that lead to simulated flocking are:1. Collision Avoidance: avoid collisions with nearbyflockmates2. Velocity Matching: attempt to match velocity with nearbyflockmates3. Flock Centering: attempt to stay close to nearby flockmates

    Velocity is a vector quantity, referring to the combin ation ofheading and speed. The manner in which the results from eachof these behaviors is reconciled and combined is significantand is discussed in more detail later. Similarly, the meaningnearby in these rules is key to the flocking process. This is alsodiscussed in more detail later, but generally one boid's aware-ness of another is based on the distance and direction of theoffset vector between them.Static collision avoidance and dynamic velocity matchingare complementary. Together they ensure that the memb ers of asimulated flock are free to fly within the crowded skies of theflock's interior without running into one another. Collisionavoidance is the urge to steer away from an im mine nt impact.Static collision avoidance is based on the relative position ofthe flockmates and ignores their velocity. Conversely, velocitymatching is based only on velocity and ignores position. It is apredictive version of collision avoidance: if the boid does agood job of matching velocity with its neighbors, it is unlikelythat it will collide with any of them any time soon. With veloc-ity matching, separations between boids remains approximatelyinvariant with respect to ongoing geometric flight. Static colli-sion avoidance serves to establish the m ini mum required sepa-ration distance; velocity matching tends to main tain it.Flock centering makes a boid want to be near the center ofthe flock. Because each boid has a localized perception of theworld, "center of the flock" actually means the center of thenearby flockmates. Flock centering causes the boid to fly in adirection that moves it closer to the centroid of the nearbyboids. I f a boid is deep inside a flock, the popu lation density inits neighborhood is roughly homogeneous; the boid density is

    28

  • 8/7/2019 10.1.1.103.7187

    5/10

    ~ ' Com pu te r G raph ics , Vo l ume 21, Num ber 4 , Ju l y 1987

    approximately the same in all directions. In this case, the cemtroid of the neighborhood boids is approximately at the centerof the neighborhood, so the flock centering urge is small. Butif a boid is on the bounda ry of the flock, its neighboring boidsare on one side. The centroid of the neighborhood boids isdisplaced from the center of the neighbor hood toward the bodyof the flock. Here the flock centering urge is stronger and theflight path will be deflected somewhat toward the local flockcenter.

    Real flocks sometimes split apart to go ar ound an obstacle.To be realistic, the simulated flock model must also have thisability. Flock centering correctly allows simulated flocks tobifurc ate. As long as an ind ividual boid ca n stay close to itsnearby neighbors, it does not care if the rest of the flock turnsaway. More simplistic models proposed for flock organization(such as a central forc e model or a fol low the des ignated leadermodel) do not allow splits.The flock model presented here is actually a better modelof a school or a herd than a flock. Fish in murky water (andland animals with their inability to see past their herdmates)have a limited, short-range perception of their environment.

    Birds, especially those on the outside of a flock, have excellentlong-range "visual perception." Presumably this allows widelyseparated flocks to join together. If the flock centering urgewas completely localized, when two flocks got a certain dis-tance apart they would ignore each other. Long-range visionseems to play a part in the incredibly rapid propagation of a"maneuver wave" through a flock of birds. It has been shownthat the speed of propagation of this wavefront reaches threetimes the speed implied by the measured startle reaction timeof the individual birds. The explanation advanced by WaynePorts is that the birds perceive the motion of the oncoming"maneuver wave" and time their own turn to match it [25].Potts refers to this as the "c horus line" hypothesis.Arbitrat ing Independent BehaviorsThe three behavioral urges associated with flocking (and othersto be discussed below) each produce an isolated suggestionabout which way to steer the boid. These are expressed asacceleration requests. Each behavior says: "if I were incharge, I would accelerate in that direction." The accelerationrequest is in terms of a 3D vector that, by system convention,is truncated to unit magnitude or less. Each behavior has sev-eral parameters that control its function; one is a "strength," afractional value between zero and one that can further attenuatethe acceleration request. It is up to the navigat ion module ofthe boid brain to collect all relevant acceleration requests andthen determine a single behaviorally desired acceleration. Itmust combine, prioritize, and arbitrate between potentiallyconflicting urges. The p i l o t m odul e takes the acceleration de-sired by the navigation module and passes it to the f l i gh t m od-ule, which attempts to fly in that direction.

    The easiest way to combine acceleration requests is to aver-age them. Because of the included "strength" factors, this isactually a weighted average. The relative strength of one be-havior to another can be defined this way, but it is a precariousinterrelationship that is difficult to adjust. An early version ofthe boid model showed that navigation by simple weighted av-eraging of acceleration requests works "pretty well." A boldthat chooses its course this way will fly a reasonable courseunder typical conditions. But in critical situations, such as po-tential collision with obstacles, conflicts must be resolved in atimely manner. During high-speed flight, hesitation or indeci-sion is the wrong response to a brick wall dead ahead.

    The main cause of indecision is that each behavior mightbe shouting advice about which way to turn to avoid disaster,but if those acceleration requests happen to lie in approxi-mately opposite directions, they will largely cancel out under asimple weighted averaging scheme. The boid would make avery small turn and so continue in the same direction, perhapsto crash into the obstacle. Even when the urges do not cancelout, averaging leads to other problems. Consider flying over agridwork of city streets between the skyscrapers; while "'flynorth" or "fly east" might be good ideas, it would be a badidea to combine them as "f ly northeast."

    Techniques from artificial intelligence, such as expert sys-tems, can be used to arbitrate conflicting opinions. However, aless complex approach is taken in the current implementation.Priori t ized acceleration alloca tion is based on a strict priorityordering of all component behaviors, hence of the consider-ation of their acceleration requests. (This ordering can changeto suit dynamic conditions.) The acceleration requests are con-sidered in priority order and added into an accumulator. Them agni t ude of each request is measured and added into anotheraccumulator. This process con tinues until the sum of the accu-mulated magnitudes gets larger than the maximum accelerationvalue, which is a parameter of each boid. The last accelerationrequest is trimmed back to compensate for the excess of accu-mulated magnitude. The point is that a fixed amount of accel-eration is under the control of the navigation module; thisacceleration is parceled out to satisfy the acceleration requestof the various behaviors in order of priority. In an emergencythe acceleration would be allocated to satisfy the mo st pressingneeds first; if all available acceleration is "'used up," the lesspressing behaviors might be temporari ly unsatisfied. For exam-ple, the flock centering urge could be correctly ig nored tempo-rarily in favor of a maneuver to avoid a static obstacle.

    Simulated Percept ionThe bold model does not directly simulate the senses used byreal animals during flocking (vision and hearing) or schooling(vision and fishes' unique "lateral line" structure that providesa certain amount of pressure imaging ability [23, 24]). Ratherthe perception model tries to make available to the behaviormodel approximately the same informa tion that is available to areal animal as the end result of its perceptual and cognitiveprocesses.

    This is primar ily a matter of filtering out the surplus infor-mation that is available to the software that implements theboid's behavior. Simulated boids have direct access to the geo-metric database that describes the exact position, orientation,and velocity of all objects in the environment. The real bird'sinformation about the world is severely limited because it per-ceives through imperfect senses and because its nearby flock-mates hide those farther away. This is even more prono unced inherding animals because they are all constrained to be in thesame plane. In fish schools, visual perception of neighboringfish is further limited by the scattering and absorption of lightby the sometimes murky water between them. These factorscombine to strongly localize the information available to eachanimal.

    Not only is it unreal istic to give each simulated boid perfectand complete information about the world, it is just plainwrong and leads to obvious failures of the behavior model.Before the curren t imp lementation of localized f lock centeringbehavior was implemented, the flocks used a central forcemodel. This leads to unusual effects such as causing all mem-bers of a widely scattered flock to simul taneously converge

    29

  • 8/7/2019 10.1.1.103.7187

    6/10

    ~ SIGGRAPH87,Anaheim,July 27-31,1987

    toward the f lock ' s cen t ro id . A n in te res ting resul t of the exper i -ments repor ted in th i s paper i s tha t the aggregate mot ion tha twe in tu i t ive ly recognize as " f lock ing" (or school ing or herd-ing) dep end s upo n a l imi ted , loca l i zed v iew of the wor ld .The behaviors tha t make up the f locking model a re s t a tedin t e rms of "nearby f lockmates ." In the cur rent implementa-

    t ion , the ne ighborhood i s def ined as a spher ica l zone of sens i -t iv i ty centered a t the boid ' s loca l or ig in . The magni tude of thesens i t iv i ty i s def ined as an inverse exponent ia l of d i s tance .Hence the ne ighborhood i s def ined by two parameters : a radiusand exponent . There i s reason to be l i eve tha t th i s f i e ld of sens i -t iv i ty should rea l i s t i ca l ly be exaggera ted in the forward d i rec-t ion and probably by an amount propor t iona l to the boid ' sspeed. Being in mot ion requi res an increased awareness ofwhat l i es ahead, and th i s requi rement increases wi th speed. Aforward-weighted sens i t iv i ty zone would probably a l so im-prove the behavior in the cur rent implementa t ion of boids a tthe l eading edge of a f lock , w ho tend to ge t d i s t rac ted by thef lock behind them. B ecause of the way the i r heads and eyes a rear ranged, rea l b i rds have a wide f i e ld of v iew (about 300 de-grees ) , but the zone of over lap f rom both eyes i s smal l (10 to15 degrees ) . Hence the b i rd has s t e reo depth percept ion onlyin a very smal l , forward-or iented cone . Research i s cur rent lyunder way on models of forward-weigh ted percept ion forboids .

    In an ear ly vers ion of the f lock model , the m et r i cs of a t-t rac t ion and repul s ion were w eighted l inear ly by d i stance . T hisspr ing- l ike mode l produce d a bouncy f lock ac t ion , f ine per -haps for a car toony charac ter iza t ion , but not very rea l i s t i c . Themodel was changed to use an inverse square of the d i s tance .Th i s m o r e g r a v i t y - l i k e m o d e l p r o d u c e d wh a t a p p e a r e d t o b e amore na tura l , be t t e r damped f lock model . Thi s cor re la ted wel lwi th the carefu l ly cont ro l l ed quant i t a t ive s tudies tha t Br ianPar t r idge made of the spa t i a l r e la t ionships of school ing f i sh[23] ; he found tha t "a f i sh i s much more s t rongly inf luencedby i t s near ne ighbors than i t i s by the d i s tant members of theschool . The con t r ibut ion of each f i sh to the [ inf luence] i s in-verse ly propor t iona l to the square or the cube of the d i s tance ."In previous work he and col leagues [23 , 24] demons t ra ted tha tf i shes school based on informat ion f rom both the i r v i sua l sys -tem and f rom the i r " l a te ra l l ine" organ which senses pressurewaves . The area of a perspec t ive image of the s i lhouet te of anobjec t ( i t s "v i sua l angle") var ies inverse ly wi th the square ofi t s d i s tance , and tha t pressure waves t rave l ing through a 3Dmedium l ike water fa l l of f inverse ly wi th the cube of the d i s -tance.

    The boid percept ion model i s qui te a d h o c and avoids ac tu-a l ly s imula t ing v i s ion . Ar t i f i c ia l v i s ion i s an ext remely com-plex problem [38] and i s fa r beyond the scope of th i s work . Buti f boids could "s ee" the i r envi ronment , they would be be t t e r a tpa th p lanning than the cur rent mode l . I t is poss ib le to cons t ruc ts imple maze- l ike shapes tha t would confuse the cur rent boidmodel but wou ld be eas i ly so lved by a boid wi th v i s ion .

    Impromptu FlockingThe f locking model descr ibed above g ives boids an eagernessto par t i c ipa te in an acceptable approximat ion of f lock- l ike mo-t ion . Boids re leased near one another begin to f lock toge ther ,cavor t ing and jos t l ing for pos i t ion . The boids s t ay near oneanother (flock centering) but a lways mainta in prudent separa-t ion f rom the i r ne ighbors (collision avoidance), and the f lockq u i c k l y b e c o m e s " p o l a r i z e d " - - i t s m e m b e r s h e a d i n g in a p -proximate ly the same di rec t ion a t approximate ly the samespeed (velocity matching); when they change d i rec t ion they do

    i t in synchroniza t ion . Sol i t a ry boids and smal le r f locks jo in tobecome la rger f locks , and in the presence of externa l obs tac les(d i scussed be low) , l a rge r f locks can sp l i t in to smal le r f locks .For each s imula t ion run , the in i t i a l pos i t ion (wi th in a spec i -f i ed e l l ipsoid) , heading, ve loc i ty , and var ious o ther parametersof the boid model a re in i t i a l i zed to va lues randomized wi th in

    spec i f i ed d i s t r ibut ions . A res ta r t able rando m-num ber gene ra tori s used to a l low repea tabi l i ty . Thi s randomiza t ion i s not re -qui red; the boids could jus t as wel l s t a r t out a r ranged in aregular pa t t e rn , a l l o ther aspec t s of the f lock model a re com-ple te ly de termini s t i c and repea table .When the s imula t ion i s run , the f lock ' s f i r s t ac t ion i s areac t ion to the in i t i a l condi t ions . I f the boids s t a r t ed out tooc lose ly c rowded toge ther , there i s an in i t i a l " f l ash expans ion"where the mutua l des i re to avoid col l i s ion dr ives the boidsradia l ly away f rom the s i t e of the in i t i a l over -pressure . I f r e -l eased in a spher ica l she l l wi th a radius smal le r than the" n e i g h b o r h o o d " r a d i u s , t h e b o i d s c o n tr a c t to wa r d th e s p h e r e ' scenter ; o therwise they begin to coa lesce in to smal l f locket testha t might themselves be gin to jo in toge ther . I f the boids a reconf ined wi th in a cer ta in region , the smal le r f locks eventua l ly

    conglom era te in to a s ingle f lock i f l e f t to wander long enough.Scripted FlockingThe behaviors d i scussed so fa r provide for the abi l i ty of indi -v idual b i rds to f ly and par t i c ipa te in happy a imless f locking.But to combine f lock s imula t ions wi th o ther animated ac t ion ,we need more d i rec t cont ro l over the f lock . We would l ike todi rec t spec i f i c ac t ion a t spec i f i c t imes ( for example , " the f lockenters f rom the l e f t a t :02 .3 seconds in to the sequence , turns tof ly d i rec t ly upward a t :03 .5 , and i s out of the f rame a t :04 .0") .

    Th e c u r r e n t i m p l e m e n t a t i o n o f t h e b o l d m o d e l h a s s e v e r a lfac i l i t i es to d i rec t the mot ion and t iming of the f lock ac t ion .Fi r s t , the s imula t ions a re run under the cont ro l of a genera l -purpos e animat ion scr ip t ing sys tem [36] . T he de ta i l s of tha tscr ip t ing sys tem are not re levant here except tha t , in addi t ion tothe typica l in te rac t ive mot ion cont ro l fac i l i t i es , i t p rovides theabi l i ty to schedule the invoca t ion of user - sup pl ied sof tware(such as the f lock model ) on a f ram e-by- f ram e bas is . Thi sscr ip t ing fac i l i ty is the bas ic tool used to descr ib e the t iming ofvar ious f lock ac t ions . I t a lso a l lows f l exib le cont ro l over thet ime-varying va lues of parame ters , w hich can be passed dow nto the s imula t ion sof tware . F ina l ly the scr ip t i s used to se t upand animate a l l nonbehaviora l aspec t s of the scene , such asbackgroun ds , l ight ing , camer a mot ion , and o the r v i s ib le ob-jec t s .

    The p r imary tool for sc r ip t ing the f lock ' s pa th i s the migra-tory urge bui l t in to the boid model . In the cur rent model th i surge i s spec i f i ed in t e rms of a g lobal t a rge t , e i ther as a g lobald i rec t ion (as in "going Z for the winter" ) or as a g lobalpos i t ion - -a t a rge t poin t toward which a l l b i rds f ly. The mo delcomputes a bounded acce lera t ion tha t incrementa l ly turns theboid toward i t s migra tory t a rge t .

    Wi th the scr ip t ing sys tem, we can animate a d y n a m i c p a -rameter whose va lue i s a g loba l pos i t ion vec tor or a g loba ld i rec t ion vec tor . Thi s parameter can be passed to the f lock ,which can in turn pass i t a long to a l l boids , each of which se t si t s own "migra tory goal regi s te r . " Hence the g lobal migra torybehavior of a l l b i rds can be d i rec t ly cont ro l l ed f rom the scr ip t .(Of course , i t i s not necessary to a l t e r a l l boids a t the samet ime, for example , the de lay could be a func t ion of the i rpresent pos i t ion in space . Real f locks do not change d i rec t ions imul taneous ly [25] , but ra ther the turn s ta r t s wi th a s inglebi rd and spreads q uickly across the f lock l ike a shock wave . )

    30

  • 8/7/2019 10.1.1.103.7187

    7/10

    ( ~ ~ C o m p ute rGraphics, Volume 21, N um ber 4, Ju ly 1987

    We can lead the flock around by animating the goal pointalong the desired path, somewhat ahead of the flock. Even ifthe migratory goal point is changed abruptly the path of eachboid still is relatively smooth because of the flight model'ssimulated conservation of momentum. This means that theboid's own flight dynamics implement a form of smoothinginterpolation between "co ntrol points."A v o i d i n g E n v i r o n m e n t a l O b s t a c l e sThe most interesting motion of a simulated flock comes frominteraction with other objects in the envi ronm ent. The isolatedbehavior of a flock tends to reach a steady state and becomesrather sterile. T he flock can be seen as a relaxation solution tothe constraints implied by its behaviors. For example, the con-flicting urges o f f l ock cen t e r ing and col l i s ion avoidance do notlead to constant back and forth motion, but rather the boidseventually strike a balance between the two urges (the degreeof damping controls how soon this balance is reached). Envi-ronmental obstacles and the b oid's attempts to navigate aroundthem increase the apparent complexity of the behavior of theflock. (In fact the complexity of real flocks might be duelargely to the complexity of the natural enviro nment .)

    Envir onmental obstacles are also impor tant from the stand-point of modeling the scene in which we wish to place theflock. If the flock is scripted to fly under a bridg e and around atree, we must be able to represent the geometric shape anddimension of these obstacles. The approach taken here is toindependently model the "shape for rendering " and the "shapefor collision avoidance." The types of shapes curr ently used forenvironmen tal obstacles are much less complicated than themodels used for rendering of computer graphic models. Thecurrent work implements two types of shapes of environmental

    collision avoidance. One is based on the f o r c e f i e l d concept,which works in undemanding situations but has some short-comings. The other model called s teer- to-avoid is more robustand seems closer in spirit to the natural mechanis m.The force field model postulates a field of repulsion forceemanating from the obstacle out into space; the boids are in-creasingly repulsed as they get closer to the obstacle. Thisscheme is easy to model; the geometry of the field is usuallyfairly simple and so an avoidance acceleration can be directlycalculated from the field equation. These models can producegood results, such as in "Eurythmy" [4], but they also havedrawbacks that are apparent on close examination. If a boidapproaches an obstacle surrounded by a force field at an anglesuch that it is exactly opposite to the direction of the forcefield, the boid will not turn away. In this case the force fieldserves only to slow the boid by accelerating it backwards andprovides no side thrust at all. The worst reaction to an impend-ing collision is to fail to turn. Force fields also cause problemswith "peripheral vision" The boid should notice and turn awayfrom a wall as it flies toward it, but the wall should be ignoredif the boid is flying alongside it. Finally, force fields tend to be

    too strong close up and too weak far away; avoiding an obstacleshould involve long-range plannin g rather than panicky correc-tions at the last minute.Steer- to-avoid is a better simu lation of a natural bird guidedby vision. The boid considers only obstacles directly in frontof it. (It finds the intersection, if any, of its local Z axis withthe obstacle.) Working in local perspective space, it finds thesilhouette edge of the obstacle closest to the point of eventualimpact. A radial vector is computed which will aim the boid ata point one body length beyond that silhouette edge (see figure2). Currently steer-to-avoid has been implemented for severalobstacle shapes: spheres, cylinders, planes, and boxes. Colli-

    31

  • 8/7/2019 10.1.1.103.7187

    8/10

    ~ SIGGRAPH 87 , Anaheim,Ju ly 27-31, 1987

    sion avoidance for arbitrary convex polyhedral obstacles is be-ing developed.

    Figure 2.Obstacles are not necessarily fixed in space; they can beanimated around by the script during the animation. Or moreinterestingly, the obstacles can be behavioral characters. Spar-rows might flock around a group of obstacles that is in fact aherd of elephants. Similarly, behavioral obstacles might notmerely be in the way; they might be objects of fear such aspredators. It has been noted [25] that natural flocking instinctsseem to be sharpened by predators.

    O t he r A pp l i c a t i on s o f t he F l oc k Mode lThe model of polarized no ncollidi ng aggregate motion hasmany applications, visual simulation of bird flocks in computeranimati on being one. Certain modificatio ns yield a fish schoolmodel. Further modifications, such as limitation to a 2D sur-face and the ability to follow the terrain, lead to a herd model.Imagine a herd of PODA-style legged creatures 19], using KarlSims' techniques for locomotion over uneven, complex terrain|35]. Other applications are less obvious. Traffic patterns,such as the flow of cars on a freeway, is a flock-li ke motion.There are specialized behaviors, such as being constrained todrive within the lanes, but the basic principles that keep boidsfrom col liding are ju st as app licab le on the freeway. We couldimagine creating crowds of "extras" (human or otherwise) forfeature films. However the most fun are the offbeat combina-tions possible in computer graphics by mixing and matching: aherd of pogo sticks, a flock of Pegasus-like winged horses, or atraffic jam of spaceships o n a 3D interplanetary highway.

    One serious application would be to aid in the scientificinvestigation of flocks, herds, and schools. These scientistsmust work almost exclusively in the observational mode; ex-periments with natural flocks and schools are difficult to per-form and are likely to disturb the behaviors under study. Itmight be possible, using a more carefully crafted model of therealistic behavior of a certain species of bird, to perform con-trolled and repeatable experiments with "simulated naturalflocks." A theory of flock organization can be unambiguouslytested by implemen ting a distributed behavioral model and sim-ply comparing the aggregate motion of the simulated flockwith the natural one.

    Algorithmic Considerat ionsA naive implem entation of the basic flocking algorithm wouldgrow in complexity as the order of the square of the flock'spopulation ("O(N~)"). Basically this is because each bold mus t

    reason about each of the other boids, even if only to decide toignore it. This does not say the algorithm is slow or fast,merely that as the size of the problem (total population of theflock) increase s, the compl exity increa ses even faster. Dou-bling the number of boids quadruples the amount of timetaken.However, as stated before, real birds are probably not as

    sensitive to the total flock population. This gives hope that thesimulated boid could be taught to navigate independent ly of thetotal population. Certainly part of the problem is that we aretrying to run the simulation of the whole flock on a singlecomputer. The natural so lution is to use distributed processingas the real flock does. If we used a separate processor for eachboid, then even the naive implemen tation of the flocking algorithm would be O(N), or linear with respect to the population. But even that is not good enough. It still means that asmore boids are added to the flock, the complexity of the prob-lem increases.What we desire is a constant time algorithm, one that isinsensitive to the total population . An other way to say this isthat an N 2 algor ithm would be O K if there was an effic ient wayto keep N very small. Two approaches to this goal are cur-

    rently under investigation. One is dynamic spatial partitioningof the flock; the boids are sorted into a lattice of "bins" basedon their position in space. A boid trying to navigate inside theflock could get quick access to the flockmates that are physically nearby by examining the "bins" near its current position.Another approach is to do incremental collision detection("nea rness t esting"). General collisi on detection is another N algorithm, but if one does collision detection incrementallybased on a partial solution that described the s ituation just amoment before, then the algorithm need worry only about thechanges and so can run mu ch faster, assuming that the incre-mental changes are small. The incremental collision detectionalgorithm used in Girard's PODA system [9] apparentlyachieves constant time perfor mance in the typical case.

    C omp ut ing E nv ironmen tThe boids software was written in Symbolics Common Lisp.The code and animation were produced on a Symbolics 3600Lisp Machine, a high-performance personal computer. Theflock software is implemented in Flavors, the object-orientedprogramming extensions to Symbolics Common Lisp. The ge-ometric aspects of the system are layered upon S-Geometry, aninteractive geometric mod eler [37]. Boids are based on theflavor 3D:OBJECT, which provides their geometric abilities.The flock simulations are invoked from scripts created andanimated with the S-Dynamics [36] animation system, whichalso provided the real-time playback facility used to view themotion tests. The availability of this graphical toolkit allowedthe author to focus immediately on the issues unique to thisproject. One example of the value of this substrate is that theinitial version of the flock model, including implementationtesting, debugging, and the production of seven short motiontests was accomplished in the ten days before the SIGGRAPH'86 conference.

    The boid software has not been optimized for speed. Butthis report would be incomplet e without a rough estimate of theactual performance of the system. With a flock of 80 boids,using the naiv e O(N ~) algorith m (and so 6400 individual boid-to-boid comparisons), on a single Lisp Machine without anyspecial hardware accelerators, the simulation ran for about 95seconds per frame. A ten-second (300 frame) motion test tookabout eight hours of real time to produce.

    32

  • 8/7/2019 10.1.1.103.7187

    9/10

    ~ Com puter Graph ics , Vo lume 21 , Num ber 4 , Ju ly 1987

    F u t u r e W o r kThis paper has largely ignored the internal animation of thegeometrical model that provides the visual representation ofthe bold. The original motion tests produced with these modelsall show flocks of little abstract rigid shapes that might bepaper airplanes. There was no flapping of wings nor turning ofheads, and there was certainly no character animation. Thesetopics are all important and per tinent to believable animation ofsimulated flocks. But the underl ying abstract nature of flockingas polarized, no ncollidi ng aggregate motio n is largely indepen-dent of these issues of internal shape change and articulation.This notion is supported by the fact that most viewers of thesesimulations identify the motion of these abstract objects as"flocking'" even in the absence of any internal animation.

    But doing a believable job of melding these two aspects o fthe motion is more than a matter of concatenatin g the action ofan internal animation cycle for the character with the motiondefined by geometrical flight. There are important issues ofsynchronizatio n between the curren t state of the flight dy-namics model, and the amplitude and frequency of the wingmotion cycle. Topics of current development include internalanimation, synchronization, and interfaces between thesimulation- based flock model and other more traditional, inter-active animation scripting systems. We would like to allow askilled computer animator to design a bird character and defineits "wing flap cycle" using standard interactive modeling andscripting techniques, and then be able to take this cyclic mo-tion and "plug it in" to the flock simulation model causing theboids in the flock to fly according to the scripted cycle.

    The behaviors that have been discussed in this paper are allsimplistic, isolated behaviors of low complexity. Tile boidshave a geometric and kinematic state, but they have no signifi-cant mental state. Real animals have more elaborate, abstractbehaviors than a simple desire to avoid a painful collision; theyhave more complex motivations than a simple desire to fly to acertain point in space. More interesting behavior models wouldtake into account hunger, finding food, fear of predators, aperiodic need to sleep, and so on. Behavior models of this typehave been created by other investigators [6, 19, 21], but theyhave not yet been implemented for the bold model describedhere.C o n c l u s i o nThis paper has presented a model of polarized, noncollidingaggregate motion, such as that of flocks, herds, and schools.The model is based on simu lating the behavior of each birdindependently. Working independently, the birds try both tostick together and avoid collisions with one another and withother objects in their environment. The animations showingsimulated flocks built from this model seem to correspond tothe observer's intuitive notion of what constitutes "flock-likemotion." However it is difficult to objectively measure howvalid these simulations are. By comparing behavioral aspectsof the simulated flock with those of natural flocks, we are ableimprove and refine the model. But having approached a certainlevel of realism in the model, the parameters of the simulatedflock can be altered at will by the animator to achieve manyvariations on f lock-like behavior.A c k n o w l e d g m e n t sI would like to thank flocks, herds, and schools for existing;nature is the ultimate source of ins piration for computer graph-ics and animation. I would also like to acknowledge the contri-

    butions to this research provided by workers in a wonderfullydiverse collection of pursuits:To the natural sciences of behavior, evolution, and zoology:for doing the hard work, the Real Science, on which this com-puter graphics approximation is based. To the Logo group whoinvented the appropriate geometry, and so put us in the driver 's

    seat. To the Actor semantics people who invented the appropri-ate control structure, and so gave the bold a brain. To the manydevelopers of modern Lisp who invented the appropriate pro-gramming language. To my past and present colleagues atMIT, III, and Symbolics who have patiently listened to myspeculations about flocks for years and years before I made myfirst bold fly. To the Graphics Division of Symbolics, Inc.,who employ me, put up with my nasty disposition, provide mewith fantastic computing and graphics facilities, and have gen-erously supported the develo pment of the work descri bed here.And to the field of computer graphics, for giving professionalrespectability to advanced forms of play such as reported inthis paper.

    R e f e r e n c e sI. Abelson, H., and diSessa, A., "Maneuvering a Three Dimen-sional Turtle" in Turtle Geometry: The Computer as a Medium forExploring Mathematics, The MIT Press, Cambridge, Massachu-setts, 1981, pp. 140-159.2. Agha, G., Actors: A Model of Concurrent Computation in Distrib-uted Systems, The MIT Press, Cambridge, Massachusetts, 1986.3. Amkraut, S., personal communication, January 8, 1987.4. Amkraut, S., Girard, M., Karl, G., "motion studies for a work inprogress entitled "Eurythmy' " in SIGGRAPH Video Review, Issue21 (second item, time code 3:58 to 7:35), 1985, produced at theComputer Graphics Research Group, Ohio State University, Colum-bus, Ohio.5. Austin, H., "The Logo Primer," M|T A.I. Lab, Logo WorkingPaper 19, 1974.6. Braitenberg, V., Vehicles: Experiments in Synthetic Psychology,The MIT Press, Cambridge, Massachusetts, 1984.7. Burton, R., Bird Behavior, Alfred A. Knopf, Inc., 1985.8. Davis, J. R., Kay, A., Marion, A., unpublished research on be-havioral simulation and animation, Atari Research, 1983.9. Girard, M., Maciejewski, A. A., "Computational Modeling forthe Computer Animation of Legged Figures," in Computer GraphicsV 19 #3, 1985, (proceedings of acre SIGGRAPH '85), pp. 263-270.10. Goldberg, A., Robson, D., SMALLTALK-80, The Language andits Implementation, Addison-Wesley Publishing Company, ReadingMassachusetts, 1983.11. Goldberg, A., Kay, A., SMALLTALK-72 Instruction Manual,Learning research group, Xerox Palo Alto Research Center, 1976.12. Hewitt, C., Atkinson, R., "Parallelism and Synchronization inActor Systems," acm Symposium on Principles of Programming Lan-guages 4, January 1977, Los Angeles, California.

    33

  • 8/7/2019 10.1.1.103.7187

    10/10

    ~ SIGG RAPH 87, Anaheim , Ju ly 27-31, 1987

    13. Kahn, K. M. , Creat ion o f Computer Animat ion from S tory De-scr ip t ions , MIT Artificial In telligence Laboratory, Technical Report540 (doctoral dissertation), August 1979.14. Kahn, K. M., Hewitt, C., Dynamic Graphics using Quasi Paral-lelism, May 1978, proceedings of ACM SIGGRAPH, 1978.15. Kleinrock, L., "Distributed Systems," in Communica t ions o f theACM, V28 #11, November 1985, pp. 1200-1213.16. Lipton, J., An Exaltation o f Larks (or, The Venereal Game ),Grossman Publishers, 1977. Reprinted by Penguin Books 1977,1980, 1982, 1983, 1984, 1985.17. Maciejewski, A. A ., Klein, C.A ., "Obstacle Avoidance forKinematicallyRedundant Manipulators in Dynamically VaryingEnvironments," to appear in In terna t iona l Journa l o f Robot ic Re-search .18. Magnenat-Thalmann, N., Thalmarm, D., Computer Animat ion:Theory and Prac t ice , Springer-Verlag, Toyko, 1985.19. Marion, A. , "Artificially Motivated Ob jects;' [installationpiece], ACM SIGGRAPH art show, 1985.20. Moon, D. A., "Object-oriented Programming with Flavors" inProceedings of the First Annual Conference on Obje ct-Oriented Pro-gramming Sys tems , Languages , a nd Appl ica t ions , ACM, 198621. Myers, R., Broadwell, P., Schaufler, R., "Plasm: Fish Sample,"[installation piece], ACM SIGGRAPH art show, 1985.22 . Papert, S., "Teaching Children to be Mathematicians vs. Teach-ing Them About Mathematics" In terna t iona l Journa l o f Mathemat i -cal Education and Scien ces, V3, pp. 249-262, 1972.23. Partridge, B. L., "The Structure and Function of Fish Schools,"Scien t if ic Amer ican , June 1982, pp. 114-123.24. Pitcher, T. J., Partridge, B. L.; Wardle, C. S., "Blind Fish CanSchool," Science 194, #4268 (1976), p. 964.25. Potts, W. K., "The Chorus-Line Hypothesis of Manoeuver Co-ordination in Avian Flocks," letter in Nature , Vol 309, May 24,1984, pp. 344-345.26. Pugh, J., '~ct ors --T he Stage is Set," acre S1GPLANNot ices ,VI9 #3, March 1984, pp. 61-65.27. Reeves, W., T., "Particle Systems--A Technique for Modeling aClass of Fuzzy Objects," acm Transactions on Graphics, V2 #2,

    April 1983, and reprinted in Computer Graphics , V17 #3, July1983, (acm S[GGRAPH '83 Proceedings), pp. 359-376.28. Reynolds, C. W., Computer Animation in the World of Actorsand Scripts, SM thesis, MIT (the Architecture Machine Group),May 1978.29. Reynolds, C. W., "Computer Animat ion with Scripts and Ac-tors," Computer Graphics , V16 #3, July 1982, (acm SIGGRAPH'82 Proceedings), pp. 289-296.30. Reynolds, C. W., "Descrip tion and Control of Time and Dy-namics in Computer Animation" in the notes for the course on Ad-vanced Computer Animat ion at acm SIGGRAPH '85, and reprintedfor the notes of the same course in 1986.31. Selous, E., Thought-transference (or what ?) in Birds , Constable,London, 1931.32. Scheffer, V. B., Spires o f Form: Gl impses o f Evo lut ion , HarcourtBrace Jovanovich, San Diego, 1983 (reprinted 1985 by Harvest/HBJ), p. 64.33. Shaw, E., "Schooling in Fishes: Critique and Review" in Devel -opment and Evo lu tion o f Behav ior . W. H. Freeman and Company,San Francisco, 1970, pp. 452-480.34. Shaw, E., "Fish in Schools," Natura l His tory 84 , no. 8 (1975),pp. 40~16.35. Sims, K., Locomot ion o f Jo in ted Figures O ver Com plex Terra in ,SM thesis, MIT Media Lab, currently in preparation, April 1987.36. Symbolics Graphics Division, S-Dynamics (user's manual),Symbolics Inc., November 1986.37. Symbolics Graphics Division, S-Geometry (user's mafiual),Symbolics Inc., October 1986.38. Pinker, S. (editor), Visual Cognition, The MIT Press, Cam-bridge, Massachusetts, 1985.39. Thomas, F., Johnson, O., Disney Animation: The Illusion ofLife, Abbeville Press, New York, 1981, pp. 47-69.40. Wilhelms, J., "Toward Automatic Motion Control," IEEE Com-puter Graphics and Appl ica t ions , V7 #4, April 1987, pp. ! 1-22.41. Zeltzer, D., "'Toward an Integrated View of 3-D Computer Ani-mation," The Visual Computer, V1 #4, 1985, pp. 249-259.