Known to work properly in: Windows 2000, Windows NT4 with Service Pack 3 or above installed Windows 95, 98 & 98 2nd Edition (All known win32 environments with DirectX 3 or above) To run the simulation you will need: Microsoft's DirectX version 3 or above installed. 16 bits or more colour depth display mode (it does not use 256 colour mode palettes). To improve the frame rate, which is crucial to the simulation: - Reduce the number of boids. - Use the smaller boid meshes. - Reduce the landscape features. - Reduce the number of active boid behaviours. - Use an accelerated graphics card. I recommend the GeForce range, nearly triple the frame rate with hardware transform and lighting. Visit www.nvidia.com for more details. - The faster the CPU the better. - Use a Windows NT Kernel operating system. - Use NT with multiprocessing ( more than one CPU ). If you are using Windows 95 without DirectX drivers, visit: www.microsoft.com/directx/homeuser/downloads/ to update your system. |
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 rules:
All the behaviour produced from each boid is a resultant combination of these three individual boid behaviours, within it's 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. 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 three simple rules to produce the complex and fascinating emergent behaviour. |
There are three ways in which to stop or restart the simulation: 1. Pressing the Start/Stop button at the bottom of the control panel. 2. Selecting the Start/Stop option from the 'Main' drop down menu. 3. Pressing the space bar. When the simulation is stopped, only the boids motion is affected. Therefore most of the other features still remain active. |
There are four ways to manipulate or change the camera view: 1. Using the sliders on the right hand side control panel. 2. Pressing the 'Centre Angle' button on the control panel. 3. Using the menu items from the 'Camera View' drop down menu. 4. Directly pressing the menu's accelerator keys. When there are no boids present in the scene, the view 'To Boid' becomes unavailable. |
From Above To Boid Looking North Looking East Looking South Looking West + Camera Position - Camera Position + Camera Rotation - Camera Rotation Centre Rotation |
NumPad5 NumPad* NumPad8 NumPad6 NumPad2 NumPad4 Up Arrow Down Arrow Right Arrow Left Arrow Home |
There are three ways to manipulate or change the objects in the active scene: 1. Using the two sliders on the control panel that control the boid numbers and sizes. 2. The 'Objects' drop down menu contains many commands including: - Setting the style of the rendering. - Setting the number and sizes of the boids. - Setting the colours of the boids. - Setting the mesh shapes of the boids. 3. There are accelerator keys for all the menu options. |
Wireframe Unlit Flat Flat Gouraud Add Flyer Remove Flyer Increase Flyer Size Decrease Flyer Size Set Flyers to Tetrahedrons Set Flyers to Small Birds Set Flyers to Animated Birds Set Flyers to White Set Flyers to Yellow Set Flyers to Pink |
F5 F6 F7 F8 = - ] [ CTRL+T CTRL+S CTRL+A 1 2 3 |
There are two ways to manipulate the landscape: 1. The 'Landscape' drop down menu contains many commands including: - 'None' deactivates the landscape completely removing it from the scene. - Four different rendering styles to choose from. The landscape can have both a wire-frame and solid appearance enabled simultaneously. - The geometry of the landscape can be recalculated. - The colouring style can be set to either green or checkerboard. 2. All the commands on the landscape menu also have keyboard accelerators. |
None Wireframe Unlit Flat Flat Gouraud Green Checkered Recalculate |
CTRL+N F9 F10 F11 F12 6 7 CTRL+R |
The 'Behaviour' drop down menu gives all the available options for changing the boids
behaviour including the following: - Three checked menu items that enable/disable the boid behaviours. - A menu item to display the flyer attributes dialog box. Flyer attributes and their default values:
The 'Range of Flock Headings' is the horizontal heading range that determines whether a certain boid is heading in a similar enough direction to become part of the flock. If the difference between the boids headings does not exceed this range, they can join together in a flock. Having this feature allows boids traveling in totally different directions to ignore each other. Making the boids more selective about flocking with other boids. Therefore allowing different flocks going in different directions, to pass each other without splitting up or interfering with each other. Please note that there is no input validation for the flyer attributes. This allows maximum flexibility but can cause the simulation to crash in extreme cases. |
The 'Main' drop down menu contains two menu items for loading and saving configurations of boids to and from disk. The configuration files are produced in a human readable format that allows detailed examination and alteration of their contents. It is worth noting that if a configuration is loaded and it contains more boids than there is currently active, only the active number of boids will be loaded in. This feature is to prevent any overloading that could be caused by transferring files to a less powerful workstation. Therefore it is worth checking beforehand, how many boids there are to load in. Then possibly increase the active number of boids to accommodate them. |
The 'Display Mode' drop down menu gives the following options: - Full screen mode (default), also activated by pressing ALT+ENTER. - Select mode dialog, which sets the default full screen mode resolution. - Window sizing commands, which are useful for benchmarking a workstation. - Toggle Show / Hide the control panel, also activated by pressing TAB. |
There are no known bugs or errors in the code, but there are the following issues: - There is no input validation for the flyer attributes. This allows maximum flexibility but can cause the simulation to crash in the worst case. - The rendering of the landscape creates a very significant performance overhead. Rewriting the project to use Direct3D immediate mode or OpenGL would solve this. |
The simulation was designed and programmed by Robert Platt,
a mature student of BSc (Hons) Software Engineering at the
University of Westminster,
London, England. It constituted for the final year project for the academic year 1999/2000. |