Flocking and Behavioral Animation
Image from Stella and Stanley: Breaking the Ice
by Craig Reynolds, 1987.
Image from Eurythmy by Michael Girard and
Susan Amkraut, 1989.
Characteristics of Flocking
- Coordinated movement of a medium to large number of entities.
- May or may not incorporate some physics into their motion.
- Has some "intelligence": driving force/goals + knowlege of local
- Each entity (boid) is not completely independent, but interacts with
surrounding boids in a small neighborhood.
- Each boid is aware of itself and a few neighbors
- Has an area of perception.
- Local control rules for the individual boids produce an overall
movement effect of the flock/herd/school: emergent behavior or
- The boids have collision avoidance rules and steering behaviors
- Separation - avoid crowding
- Alignment - steer towards the average flock heading (helps with
- Cohesion - steer to move toward the average position of local
Collision avoidance rules
flock centering - remain part of the flock -- stay close to neighbors
velocity matching - try to match velocity of neighbors
Great starting point: Craig Reynolds Boid's page
See the work by Reynolds
- Amkraut and Girard
- Terzopolous, U. Toronto, - fish (see the SIGGRAPH 96 course notes)
- Jessica Hodgins, CMU - herding robots
Improv project image (S94, S95, S96), NYU
Behavioral Animation : How is
- More Intelligence / Independence / Autonomous
- Simulating personality and behavoirs more complex than simple
goals and basic reaction to environment. (fuzzy line)
- Can be individuals, a few, or many participants
- Often presented in terms of actors or autonomous agents.
- High-level interface to control of the intelligent characters -
design personality, etc.
- 30% of CPU in many games is devoted to character AI.
- Simple behavioral animation being added to many games for
secondary animation (playing talking, jittering, characteristic
- Even extended to the point of just giving actors a script (ala
Who's doing work in this area ?
- Starting points
Most links courtesy of Craig Reynold's page