Flocking Behaviour
Cohesion, separation and alignment.
Implementing Craig Reynolds’ boids is a rite of passage for any game programming student.
Supposedly this algorithm is used in one of the batman movies’ CGI scenes. I’ve uploaded an excerpt from said movie onto Youtube for your viewing pleasure.