Flocking, Flowing, Swarms
Project 4 for Simulation of Biology was the classic Boids simulation as described by Craig W. Reynolds in 1987. The expected outcome was just enough 2D Boids to exhibit flocking behavior with either toroidal wrapping boundaries, or hard boundaries that deflect incoming Boids. The ability to turn particular forces on/off on demand and attract/repel the Boids from the mouse was also required. Leveraging data-oriented principles, multi-threading, frustum culling during the render phase, and OpenGL display lists to cache the OpenGL 1.0 geometry calls I was able to create an interactive 3D Boids simulation that could support thousands of Boids simultaneously. While using an Octree data structure to accelerate spatial searching was considered, it ended up not being the limiting factor for performance.