The Animation
The following video is of the animation running on the LambdaTable in the Electronics Visualization Lab at the University of Illinois at Chicago. The animation is running in real time on this four node cluster written using the Shade Distributed Scene Graph.
The Story
Having all exhausted all other options our intrepid desktop refugees jump through a portal into the unknown. They emerge in a strange new location, where eyes watch up in the heavens and familiam looking objects behave in strange new ways.
This place was written about in the ancient texts. Its name, LAMBDA. The refugees must continue through this realmn looking for another portal to leap through. And they will continue leaping till they find their way home.
Creation Experience
Writing the flocking code was not particularly hard. The pseudo-code available made it fairly easy to go about creating the algorithm. There was a lot of time going into tuning the movements of the boids themselves. The pseudo-code gives good approximations of what weight each of the rules should have.
The only tweaks persay were modifying the algorithms to be affected by bounding volumes. Rather than thinking of an obstacle as something that should be moved away from constantly, this was changed to if the boid and the obstacle's bounding volumes are close to intersection start moving away from the object. This is especially prevalent when the boids navigate around the mouse. There is a circular path the boids take around the mouse. A bounding box would have been a better fit in terms of a bounding volume for the mouse, but a bounding sphere is cheaper to calculate and works perfectly for the pucks.
Downloads
The source code for this program is distributed within the source code for the Shade Distributed Scene Graph project, and is contained in the latest release.
The original .blend files used during the creation of the models, converted to .3ds to import into Shade, are available for download as well.