Well, I had a day off of studying for finals so I decided to spend it working on a monstrous flocking algorithm. This video shows the progressive iterations over the day. I eventually got this O(n^4) complexity algorithm. It really blows up around n=200 and these clips are with 10,000 boids so they are not realtime. I need to optimize this and get it from 2D to 3D space. I am pretty sure I can get it down to O(n^2).