Boids
At SIGGRAPH ‘87, Craig Reynolds demonstrated a new computer model of animal motion that he called boids. Using just three simple rules, he discovered that the result was a lifelike simulation of flocks of creatures, coordinating their movements.
From Craig Reynold’s page on boids.
These three steering behaviors, while individually simple, combine to produce complex movements, simulating flocks of birds, herds of sheep, or schools of fish.
Boids were frequently referenced as an example of artificial life. Rather than trying to simulate an artificial intelligence, they merely recreate some of the patterns followed by living organisms.
They are also an example of procedural animation, animation created through processes rather than created by hand or motion-captured. While boids are hardly the only example of procedural animation, they were one of the more widely known inspirations, seeing use in many films such as 1992′s Batman Returns. Many 3D applications include boid behaviors, or have plugins that do so, and the original Lisp source code is available on Craig Reynold’s site, along with links to other implementations.
Boids are frequently implemented as demonstrations of various graphical libraries and systems, such as this implementation in Processing, with source code.
Boids are an excellent example of how simple building blocks can create complex behaviors. They also suggest ways that procedural generation can operate over time, not just as a static thing created at the start of a level: what if your generation continues as the player interacts with it? Contrariwise, can you apply flocking to your level generator, using the end result of the flocking to inform another generative process? And, of course, procedural animation and artificial life are fascinating fields in and of themselves; subjects we’ll definitely hear more about around here.
Reynolds, C. W. (1987) "Flocks, Herds, and Schools: A Distributed Behavioral Model", in Computer Graphics, 21(4), pages 25-34.
Early boids test:
The film from SIGGRAPH 1987: