This project is based on Based on Conard Parker's notes on Boids Flocking with slight adaptations Boids move according to three rules. These were implemented
across threads to allow for a level of parallelism across GPU cores.
Boids try to fly towards the centre of mass of neighboring boids.
Boids try to keep a small distance away from other objects (including other boids).