As a part of Everdepths, I programmed schooling fish using Craig Reynolds' boid algorithm. These fish also have player and obstacle avoidance, which was made with Reynolds' 'Not Bumping into Things' paper from SIGGRAPH 1988. The code is highly optimized to provide a smooth framerate for use in VR with the Oculus Rift. To further optimize the fish, I created a vertex animation shader to animate the fish in place of rigs and bones. Traditional animation techniques prove too costly to the system when many hundreds of fish are on screen at once. The fish are also placed in designated areas and are deactivated when the players are no longer inside of that area. This method was used instead of occlusion culling because it does not hinder the schooling algorithm, which makes each fish aware of every other fish within its type or group, no matter if the camera can see them or not.