Cory Johns

GPU Boids

Project Summary

In this project I implemented the Boids algorithm in a GLSL compute shader in order to simulate thousands of fish in real-time. The project was inspired by the original work done by the developers of ABZU, but my project was implemented for the Godot game engine and only features the basic foundation of what they achieved. In addition to the Boids algorithm, I also implemented an animation system using a vertex shader with Godot’s MultimeshInstance3D node. The performance of the project was compared against a standard CPU implementation.

I modeled the fish in Blender and the final model was fully textured and contained ~4.5k vertexes. The Boids simulation was able to run at over 60fps on my laptop with over 4000 fish. The CPU implementation however, was unable to make 1fps at those settings.

Simulation with 4048 fish
Project Files on GitHub