This is a simple Android app, completely written in Kotlin to simulate flocking behavior based on Craig Reynolds's Boids algorithm.
[Wikipedia] Boids (which refers to a bird-like object) is an example of emergent behavior; that is, the complexity of Boids arises from the interaction of individual agents (the boids, in this case) adhering to a set of simple rules. The rules applied in the simplest Boids world are as follows:
- Separation: steer to avoid crowding local flockmates
- Alignment: steer towards the average heading of local flockmates
- Cohesion: steer to move towards the average position (center of mass) of local flockmates
Only separation | Only alignment | Only cohesion |
---|---|---|
- All the behaviors are abstracted behind FlockBehavior interface.
- All the applied behaviors are determined from FlockBehaviorProcessor class, you may add / modify / remove any behavior easily from here as desired.
Thanks to Daniel Shiffman for his awesome video about boids / flocking simulation.