Complexity Theory: Emergence

This applet was produced from a modified code that was originally created by Larry O'Brien (lobrien@msn.com), and is based on "Boids" program by Craig Reynolds in 1986 to demonstrate an aspect of complexity theory called "emergence."

The goal is to produce a reasonably lifelike reproduction of flocking or herding behavior in animals by establishing a small set of simple rules for each animal. Each animal can look at the entire scene and all the other animals in the scene, but it reacts only to a set of nearby "flockmates." The animal moves according to three simple steering behaviors:

  1. Separation: Avoid crowding local flockmates.
  2. Alignment: Follow the average heading of local flockmates.
  3. Cohesion: Move toward the center of the group of local flockmates.

More elaborate models can include obstacles and the ability for the animals to predict collisions and avoid them, so the animals can flow around fixed objects in the environments. In addition, the animals might also be given a goal, which can cause the herd to follow a desired path.

Emergence means that, despite the limited nature of computers and the simplicity of the steering rules, the result seems realistic. That is, remarkably lifelike behavior "emerges" from this simple model.

You can find out more about the modeling of flocking behavior and see a spectacular 3D version of Boids at Craig Reynold's page.