|
Boids were originally invented by Craig Reynolds
and are quite simply a model of the flocking, herding or schooling behaviours
observed with intelligent life-forms, especially birds. The grouping behaviour of
boids is produced by three fundamental steering behaviours:
|
Cohesion: |
The attraction of the boids to each other. |
|
|
Alignment: |
The adjustment of each individual boid's velocity to match up with
the rest of the flock's velocity. |
|
|
Separation: |
The avoidance of any direct collisions with any other boids. |
|
All the behaviour produced from each boid is a resultant combination of these
three individual boid behaviours, within its local environment. Boid
behaviour therefore is a good model of a cellular automaton, where there can
be an emergence of group behaviour. The implementation of the boid
behaviours can be varied using very basic or advanced programming techniques.
Basic boids would just inhabit a blank two dimensional plane and follow simple
averaging algorithms. Advanced boids could live in a complex three
dimensional environment with obstacles etc. Their behaviour could be
influenced by much finer details, like their field of vision and movement
characteristics, which could even be particular to each boid. This project
features three extra optional behaviours:
|
Land Avoidance: |
A combination of collision detection and avoidance algorithms. |
|
|
V-Formation: |
Without using any pre-designated leaders, the boids adjust their relative positions
to form a V-Formation. Thus naturally producing an emergent leader boid. |
|
|
Random Behaviour: |
To generate natural noise and indirection. |
|
Elaboration of boid details can go on and on indefinitely. But the essence
and underlying framework for all boid simulations, is just the deployment of the
first three simple rules to produce the complex and fascinating emergent behaviour.
This simulation has been developed using Microsoft Visual C++, the
Microsoft Foundation Classes, the C++ Standard Template Library and OpenGL.
Previously it used Direct3D Retained Mode, because early graphics cards did not fully support
OpenGL at the time. It also utilizes multi-threading to allow the user interface
to be used without causing any interference to the rendering. The application
is a pure Win32 format, so it works on most 32-bit versions of Windows.
Such as NT4 (with service pack 3 or above) and Windows 2000. The simulation
also works fine with Windows XP and Windows Vista.
|
|