/Octree

Rust library for Octree, optimised for multi-threading, capable of tracking highly dynamic environment.

Primary LanguageRustApache License 2.0Apache-2.0

Octree

Rust library for Octree, optimized for multi-threading, capable of tracking highly dynamic environment.

GitHub Workflow Status Documentation Codecov

Benchmark

An existing Rust Octree library is used as the baseline performance in benchmark. Currently only building time is tested in benchmark. Query performance will be added later.

Octree Building Benchmark

How To Reproduce Benchmark Result

cd <path/to/repo/root>
python3 bin/generate_points.py
cargo run --bin=bench --release

Todo

This library is under development, currently it's only a single threaded Octree implementation, but already supports dynamic object tracking.

Things to do in the near future:

  • Extend to multi-thread, can use adriankrupa's C++ implementation as a reference.
  • A demo. Could use this library to reimplement my N Body Simulator. My current simulator was a coursework for Computer Graphics course at The University of Manchester, it used python with an $O(n^2)$ algorithm to calculate acceleration, its FPS is horrible.
  • Publish to crates.io when the multithread feature is ready.