Some sources I used for inspiration and help building this.
- http://www.red3d.com/cwr/boids/
- https://natureofcode.com/book/chapter-6-autonomous-agents/
- https://dl.acm.org/doi/10.1145/37401.37406
- https://en.wikipedia.org/wiki/Octree
- https://magnum.graphics/showcase/octree/?spheres=20&sphere-radius=0.1&sphere-velocity=1.0
- https://castle-engine.io/vrml_engine_doc/output/xsl/html/section.how_octree_works.html
- Rust 1.66 (programming language)
- Bevy 0.9.1 (game engine)
- Rayon 1.6.1 (multithreading)
- Nalgebra 0.31.4 (linear algebra library)
- The Naive and the Octree implementation include multithreading
- Menu for changing the parameters of the simulation
- Octree is implemented as an "arena allocated tree"
- The Octree is built in every call of the function "flock" - every time we update the speed of the boids
- Results of benchmarks
- Updating of Octree (instead of rebuilding)
- Faster rendering speed (rendering has issues at higher number of boids)