3D Boids Simulation



Introduction      Screen Shots      BBC Talking with Animals

Download      Related Links      Robert's Resource



 Latest Version:  0.91  Enhancement Date:  27th Dec 2001
 Project Start Date:  15th June 1999  Current Status:  Fully Functional

Click Here For Detailed Version Information

 
Introduction

Boids were originally invented by Craig Reynolds and are quite simply a model of the flocking, herding or schooling behaviours observed with intelligent lifeforms.  The grouping behaviour for the boids is produced by the application of just three simple forces:

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 ect.  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.


I am developing this simulation using Microsoft Visual C++ Version 6, the Microsoft Foundation Classes, the C++ Standard Template Library and OpenGL.  Previously it used Direct3D with COM, because my graphics card did not support OpenGL at the time.  It also uses multiprocessing to allow the user interface to be used without causing any interference to the rendering.  The application is a pure Win32 format and has been developed and tested cross platform.  Such as NT4 (with service pack 3 or above) and Windows 2000.  The simulation also works fine in all the Windows 9X releases including ME with DirectX version 3 or above installed.  DirectDraw is used to enumerate the available display modes.





 
3D Boids Project Screen Shots








 
BBC Talking with Animals


Filmed with Charlotte Uhlenbroek at Brighton's West Pier in November 2001







 
3D Boids Project Download

Latest OpenGL binary >>> 3DBoids91.zip      236Kbytes

University Project VC++6 source & Direct3D binary >>> 3DBoids54.zip      302Kbytes






 
Related Links:

Craig Reynolds' Boids
BBC Talking with Animals
Charlotte Uhlenbroek
Brighton West Pier Trust
OpenGL.org
NATUREWIZARD
MFC Programming from the Ground Up
STL Programming from the Ground Up
Cutting-Edge Direct3D Programming







email: robert@abs2net.com
home page: www.roberts-resource.com
University Project Supervisor: Stuart Pattinson

ABS to NET and project page initiated on Friday 17th September 1999