Bullet / C++
A demonstration of Flocking dynamics using the Bullet Physics Engine and Craig Reynold's research. The flock needs to behave in a realistic manner and the boids should avoid each other, avoid obstacles and follow the leader's course. For this project, it was necessary to use 3D maths & physics.
The simulation follows three main rules which are Cohesion, Alignment and Separation and each boid has to apply those. Cohesion is about averaging the position of the nearby boids and moving our boid to towards that target. The Alignment rule is about finding the average velocity of a flock subgroup and applying that to our boid. Finally, the Separation rule is about avoiding collisions with other boids by taking the total sum of the position vectors of the nearby boids and applying a force in the opposite direction.