No description
Find a file
xyd 9f4ce64458
Fix crash on large-scale navmesh generation (assert triggered) (#796)
Co-authored-by: yudong xiang <xiangyudong@foxmail.com>
2026-02-27 02:16:52 -05:00
.github Specify x64 platform when building with Windows in github actions 2026-02-08 13:42:00 -05:00
DebugUtils Modernize CMake configs 2026-02-07 22:44:12 -05:00
Detour Removed template from closestPointOnDetailEdges function 2026-02-08 13:32:32 -05:00
DetourCrowd Modernize CMake configs 2026-02-07 22:44:12 -05:00
DetourTileCache Modernize CMake configs 2026-02-07 22:44:12 -05:00
Docs Modernize premake5 file. 2026-02-08 13:32:32 -05:00
Recast Fix crash on large-scale navmesh generation (assert triggered) (#796) 2026-02-27 02:16:52 -05:00
RecastDemo Disable warnings as errors in the test project and set the warning level to the default 2026-02-08 13:42:21 -05:00
Tests allocSpan unit test 2026-02-08 17:31:28 -05:00
.clang-format Fixed struct alignment and tabbing in clang-format settings 2025-05-19 23:20:18 -04:00
.clang-tidy Added clang-tidy config 2025-06-03 00:04:06 -04:00
.editorconfig Add Clang to Travis and treat warnings as errors 2018-06-16 17:04:54 +02:00
.gitignore Ignore IMGUI ini state file 2025-07-07 13:39:59 -04:00
CHANGELOG.md Explicitly use html tags in Changelog to work around bug in doxygen (#750) 2024-12-31 01:27:57 -05:00
CMakeLists.txt Make RECASTNAVIGATION_ENABLE_ASSERTS do what it looks like it does (#806) 2026-02-04 22:57:21 -05:00
CODE_OF_CONDUCT.md Docs Overhaul (#680) 2023-12-28 17:06:03 -05:00
CONTRIBUTING.md Fixed broken doc file links after re-name 2024-01-06 19:09:53 -05:00
Doxyfile Fixed ordering of custom pages in doxygen's sidebar 2024-01-06 16:57:22 -05:00
License.txt - Moved license.txt, readme.txt to root folder 2009-03-29 15:59:39 +00:00
README.md Fixed typo in README.md 2024-03-23 10:10:48 -07:00
recastnavigation-config.cmake.in install CMake config file with exported targets (#575) 2022-11-20 15:42:04 -05:00
recastnavigation.pc.in Add version and pkgconfig (#474) 2021-03-05 17:24:04 +01:00
version.h.in Add version and pkgconfig (#474) 2021-03-05 17:24:04 +01:00

Recast Navigation

State-of-the-art navmesh generation and navigation for games.

Recast Demo

🚀 Features

  • 🤖 Automatic - Recast can generate a navmesh from any level geometry you throw at it
  • 🏎️ Fast - swift turnaround times for level designers
  • 🧘 Flexible - detailed customization options and modular design let you tailor functionality to your specific needs
  • 🚫 Dependency-Free - building Recast & Detour only requires a C++98-compliant compiler
  • 💪 Industry Standard - Recast powers AI navigation features in Unity, Unreal, Godot, O3DE and countless AAA and indie games and engines

Recast Navigation is divided into multiple modules, each contained in its own folder:

  • Recast/ - Navmesh generation
  • Detour/ - Runtime loading of navmesh data, pathfinding, navmesh queries
  • DetourTileCache/ - Navmesh streaming. Useful for large levels and open-world games
  • DetourCrowd/ - Agent movement, collision avoidance, and crowd simulation
  • DebugUtils/ - API for drawing debug visualizations of navigation data and behavior
  • Tests/ - Unit tests
  • RecastDemo/ - Standalone, comprehensive demo app showcasing all aspects of Recast & Detour's functionality

Getting Started

Check out BuildingAndIntegrating.md for information on how to build the comprehensive RecastDemo project, as well as guidance on integrating Recast & Detour into your own project.

If you are new to Recast & Detour, check out Sample_SoloMesh.cpp in RecastDemo to get started with building navmeshes and NavMeshTesterTool.cpp for building paths with Detour.

⚙ How it Works

Recast constructs a navmesh through a multi-step mesh rasterization process.

  1. First Recast rasterizes the input triangle meshes into voxels.
  2. Voxels in areas where agents would not be able to move are filtered and removed.
  3. The walkable areas described by the voxel grid are then divided into sets of polygonal regions.
  4. The navigation polygons are generated by re-triangulating the generated polygonal regions into a navmesh.

You can use Recast to build a single navmesh, or a tiled navmesh. Single meshes are suitable for many simple, static cases and are easy to work with. Tiled navmeshes are more complex to work with but better support larger, more dynamic environments. Tiled meshes enable advance Detour features like re-baking, heirarchical path-planning, and navmesh data-streaming.

Official documentation is available at recastnav.com

Docs are generated via Doxygen from source file comments and from markdown files in the Docs/ directory.

❤ Community

Ask questions, voice ideas, or request new features over on Github Discussions or on our old Google Group list.

Check out the Development Roadmap to see what features and functionality you might be able to help with, and the Contribution Guidelines for information on how to make contributions.

Our Code of Conduct applies to all Recast Navigation community channels.

⚖ License

Recast & Detour is licensed under the ZLib license. See License.txt for more.