/Flocking

Simple flocking simulation using Unity.Burst

Primary LanguageC#MIT LicenseMIT

Flocking

example

Challenge mini project developed during "Self Dev Days" at Laparo.

Currently, this is a brute-force flocking model implementation. Possible upgrades are planned to do during the next "Self Dev Days". The model is more or less based on these papers:1,2, and 3.

Demos

Acceleration with 2d tree

Ranges queries are accelerated using Native2dTree. Performance comparison between brutforce approach and k-d tree can be found below.

flocking-with-kdtree

Animated k-d tree preview on gizmos can be found below.

kd-tree-gif

Dependencies

TODO

Things to consider:

  • Try ECS.
  • Try WebGL build.
  • Optimization: spatial hashing/quad tree.
  • Obstacle avoidance.
  • Express forces in PBD framework.
  • Additional force with respect to the defined path.
  • Add random force (should prevent from boids gluing?)

Bibliography

Footnotes

  1. H. Hildenbrandt, C. Carere, C.K. Hemelrijk, "Self-organized aerial displays of thousands of starlings: a model," Behavioral Ecology, 21, 6, (2010).

  2. C.K. Hemelrijk and H. Hildenbrandt. "Some causes of the variable shape of flocks of birds." PloS one 6.8 (2011): e22479.

  3. C. Hartman and B. Benes. "Autonomous boids," Computer Animation and Virtual Worlds 17.3‐4 (2006).