{"id":40726102,"url":"https://github.com/mkmarek/svo-rs","last_synced_at":"2026-01-21T14:08:33.162Z","repository":{"id":185717394,"uuid":"672572117","full_name":"mkmarek/svo-rs","owner":"mkmarek","description":"Sparse Voxel Octree for 3D navigation with Bevy support","archived":false,"fork":false,"pushed_at":"2023-12-01T23:58:15.000Z","size":55,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-12-02T13:57:30.570Z","etag":null,"topics":["bevy","navigation","octree","rust-lang","voxel"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mkmarek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-30T14:40:49.000Z","updated_at":"2023-12-01T08:22:44.000Z","dependencies_parsed_at":"2023-12-01T13:57:24.237Z","dependency_job_id":null,"html_url":"https://github.com/mkmarek/svo-rs","commit_stats":null,"previous_names":["mkmarek/svo-rs"],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/mkmarek/svo-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkmarek%2Fsvo-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkmarek%2Fsvo-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkmarek%2Fsvo-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkmarek%2Fsvo-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkmarek","download_url":"https://codeload.github.com/mkmarek/svo-rs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkmarek%2Fsvo-rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28634790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bevy","navigation","octree","rust-lang","voxel"],"created_at":"2026-01-21T14:08:33.055Z","updated_at":"2026-01-21T14:08:33.153Z","avatar_url":"https://github.com/mkmarek.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# svo-rs\n\n\u003e :warning: **Work in progress** I would call it almost feature complete. It's however untested in real world scenarios. :warning:\n\nSparse Voxel Octree (SVO) implementation in Rust based on [3D Flight Navigation Using\nSparse Voxel Octrees](https://www.gameaipro.com/GameAIPro3/GameAIPro3_Chapter21_3D_Flight_Navigation_Using_Sparse_Voxel_Octrees.pdf) with integration for the [Bevy engine](https://bevyengine.org/) under the `bevy` feature.\n\nThis crate contains only the SVO data structure with a builder and an algorithm to voxelize meshes from Bevy. It does not contain any pathfinding code as there are much better crates for that. Also depending on your 3D environment you might want to use different pathfinding algorithms.\n\n## Usage\n\nExample using the [pathfinding crate](https://crates.io/crates/pathfinding).\n\n```rust\nlet mut builder = svo_rs::SparseVoxelOctreeBuilder::new(voxel_size);\nbuilder.add_mesh(VoxelizedMesh::sphere(1.0, voxel_size, IVec3::ZERO));\n\nlet tree = builder.build()\n\nlet start = tree\n    .find_node(Vec3::new(...))\n    .unwrap();\nlet end = tree\n    .find_node(Vec3::new(...))\n    .unwrap();\n\nlet solution = pathfinding::prelude::astar(\n    \u0026start,\n    |n| {\n        tree.successors(*n)\n            .into_iter()\n            .map(|s| (s, 1))\n            .collect::\u003cVec\u003c_\u003e\u003e()\n    },\n    |n| n.manhattan_distance(\u0026end, \u0026tree),\n    |n| *n == end,\n);\n```\n\nFor more examples see the examples directory or the benches directory.\n\n## Credit and References\n\n### 3D Flight Navigation Using Sparse Voxel Octrees\n\n```\nhttps://www.gameaipro.com/GameAIPro3/GameAIPro3_Chapter21_3D_Flight_Navigation_Using_Sparse_Voxel_Octrees.pdf\n```\n\n### Morton Code library\n\nThe library was not used directly it was rather used as a reference for the implementation of the morton code generation.\n\n```\n@Misc{libmorton18,\nauthor = \"Jeroen Baert\",\ntitle = \"Libmorton: C++ Morton Encoding/Decoding Library\",\nhowpublished = \"\\url{https://github.com/Forceflow/libmorton}\",\nyear = \"2018\"}\n```\n\n### AABB Triangle intersection\n\n```\nhttps://gdbooks.gitbooks.io/3dcollisions/content/Chapter4/aabb-triangle.html\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkmarek%2Fsvo-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkmarek%2Fsvo-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkmarek%2Fsvo-rs/lists"}