As my final project for CS184: Computer Graphics and Imaging, I chose to implement a flocking simulation by modeling a school of fish.
Along with basic flocking behavior, I also made the fish able to swim towards food placed in the GUI and made them able to detect and avoid obstacles.