[ CogSci Summaries home | UP | email ]

Reynolds, C. W. (1987), Flocks, herds, and schools: A distributed behavioral model, Computer Graphics, 21(4):25-34.

  author = 	 {Craig W. Reynolds},
  title = 	 {Flocks, herds, and schools: A distributed
behavioral model},
  journal = 	 {Computer Graphics},
  year = 	 {1987},
  OPTvolume = 	 {21},
  OPTnumber = 	 {4},
  OPTpages = 	 {25--34},
  OPTmonth = 	 {July},

Author of the summary: Jim R. Davies, 2000, jim@jimdavies.org

Cite this paper for:

The paper is online at http://www.cs.toronto.edu/~dt/siggraph97-course/cwr87/. Shows how to make a graphical representation of flocking, herding, etc. of animals based on a particle system. Scripting the individual paths would be tedious, so have each particle choose a path based on the dynamic environment.

Previous work

The birds in the simulation are called "boids." Cute. :P
Anyway they are 'actors' which is a technical term. Actors are computational abstractions that encompass process, procedure, and state. They are similar to objects in an OOP system. They are like communicating virtual computers.

The system has a model of flight, taking into account lift, pitch, yaw, intertia, etc.

Birds flocking seem to balance between staying together and not colliding. Other heuristics are flock centering, which is the desire to be in the center of the flock. Here that just means the center of the nearest 2 or 3 flockmates. This means that as long is the boid is near its neighbors it does not care what the rest of the flock does. This allows for the flock splitting up for an obstacle, which is exactly what happens. When boids were set to go toward the actual center of the flock, they all flew in together, which was all wrong. The limited perception of birds accounts partially for the behavior we recognize as flocking. In this model there is no computer vision; boids just have limited information access.

Behaviors have strengths. These are used to help the boid decide what to do. If you do it naively, though, sometimes conflicting vectors will cancel each other out and the system will not do anything but fly straight ahead. To deal with this problem the behaviors are prioritized. There is a fixed amount of acceleration that can be allocated. They are put in one at a time. This allows the most pressing needs to go first.

For avoiding objects, there are two models:

  1. force field. objects emenate a repulsion field that is stronger the closer you are. Problems: go to it head on and you will crash. You should ignore things beside you, not avoid them. More long range planning.
  2. steer-to-avoid. Only consider obstacles directly in front. Steer to one body length away from the object's silhouette.

Summary author's notes:

Back to the Cognitive Science Summaries homepage
Cognitive Science Summaries Webmaster:
JimDavies (jim@jimdavies.org)
Last modified: Wed Mar 1 20:43:56 EST 2000