In 1986, Craig Reynolds created a computer model of flocking "boids". In this, each "boid" is guided by 3 steering behaviors: Separation, Alignment, and Cohesion. This was presented at a SIGGRAPH '88, and has been used in Half-Life, Unreal, and Enemy Nations

  • Separation is defined to steer each boid to avoid crowding, and collision.

  • Alignment allowed each boid to steer toward the average heading of other local boids. Without this, the flock resembles a swarm of bees, or flies.

  • Cohesion prevents the flock from dispersing by steering each boid toward the average position of local flockmates.

This is a stateless technique. Each iteration requires no memory of the previous, which is advantageous when memory constraints are an issue.