Navigation for Bevy with NavMesh
Navigation mesh for Bevy using Polyanya.

Check out the WASM demos
Usage
From a prebuilt NavMesh
Loading a mesh from a gLTF file, then building a NavMesh from it and using it for getting paths. See gltf.rs and NavMesh::from_bevy_mesh.
From obstacle components
Spawn entities marked as obstacles, create the NavMesh live from them. See auto_navmesh_aabb and NavMeshUpdaterPlugin.
Example videos
Parameters for NavMesh generation
Reading list
Pathfinding:
- Compromise-free Pathfinding on a Navigation Mesh: Fast and optimal path finding on a generalized navmesh
NavMesh building:
- Line Generalisation by Repeated Elimination of Points: Geometry simplification while keeping the general shape
- Constrained Delaunay Triangulation: Building a tri-mesh from edges
To Implement
- Steering Behaviors For Autonomous Characters https://www.red3d.com/cwr/steer/
- A Generic Solution to Polygon Clipping https://dl.acm.org/doi/pdf/10.1145/129902.129906
- Polygon Offsetting by Computing Winding Numbers https://mcmains.me.berkeley.edu/pubs/DAC05OffsetPolygon.pdf
Bevy Supported Versions
| Bevy | vleue_navigator | avian |
|---|---|---|
| 0.15 | 0.11 | avian#e23d070e |
| 0.14 | 0.10 | 0.1 |
| 0.13 | 0.7 | x |