Ok, heres a demo of the app I am currently using in my testing for those that have shown interest, its not that user freindly interface wise, but it was not written with "public" release in mind.
Rules:
Cohesion - Boids try to fly towards the average position of local flockmates in a given radial volume of 3D space
Separation - Boids try to keep a small distance away from other local flockmates in a given radial volume of 3D space
Alignment - Boids try to match velocity with other local flockmates in a given radial volume of 3D space, velocity is speed in a given direction.
Keys 1 -7 Change Boid Mesh
1 - qBoid
2 - Poly Arrow
3 - Fish
4 - Butterfly
5 - Seagull
6 - Parrot
7 - Shark
Controls:
Cohesion Radius - Q increase - A decrease
Alignment Radius - W increase - S decrease
Separation Radius - E increase - D decrease
Reset Boids - R
Number of Boids - T increase - G decrease (min 10 - max 500)
You will need to Reset - R - the Boids for a change in the number of Boids to take effect.
Boid Max Velocity - Y increase - H decrease - N Apply
Boid Max Turnig Force - U increase - J decrease - M Apply
Max Velocity and Max Turning Force are not realtime adjustments and need to be applied to take effect, as they are tied in directly to the individual Boid Type structure which I will be using later for some additional individual behavioural functionality.
Update Cycle - I increase - K decrease
The update cycle changes how many cycles have to pass before calls to the update Boids functions are made. When set to 1 this means every update cycle, 2 means every other update cycle and so on.
Animation Speed - O increase - L decrease
For those Boid meshs that have animations, this will increase and decrease the playback speed in realtime.
The B key will toggle on and off the outline of the confinement volume, and the Z key toggles an application speed attenuation function which attempts to keep the Boids moving at roughly the same speed no matter how many, this will have very little or no effect when Vsync is on.
Toggles:
Z - Attenuation
X - Wireframe Mode
C - AntiAlias
V - VSync
B - Outline of the confinement volume
P - Mesh Freedom
Mesh Freedom changes the rotational constraints of the Boid mesh "Pitch - Roll - Yaw" means it can rotate about all axes (X,Y,Z), "Yaw Only" means it will only rotate left and right (Y axis)
Flockers.zip 4.09MB
76 downloads