Skip to content

This is a simple Android app, completely written in Kotlin to simulate flocking behavior based on Craig Reynolds's Boids algorithm.

Notifications You must be signed in to change notification settings

jayasuryat/FlockingSimulation

Repository files navigation

Flocking Simulation / Boids

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

Demo

Demo gif

Adjust the coefficients for the three rules for different behaviors.

All controlls gif

Only separation Only alignment Only cohesion
All controlls gif All controlls gif All controlls gif

Logic

  • 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

Thanks to Daniel Shiffman for his awesome video about boids / flocking simulation.

About

This is a simple Android app, completely written in Kotlin to simulate flocking behavior based on Craig Reynolds's Boids algorithm.

Topics

Resources

Stars

Watchers

Forks

Languages