Hopefully some day we will have holographic screens to be able to play games like this xD
Fish flocking model was done from scratch in VEX, Houdini. Difference from basic boid flocking model is that I made fishes to be aware of their front, right, left, etc and they turn towards their goal considering this. You can see it in Cohesion - fishes try to reach point in the middle of the screen. When point is behind they try to turn towards the point making circles, instead of just swimming backwards.
Obstacle avoidance was done using sdf volume. After simulation was done I smoothed it a bit inside CHOP.
Fish animation respect speed changes. Also fishes can bend depending on their velocity change.
Rendered in Houdini, Mantra.
Composed in Nuke.