LCM Nav3D vs Recast: navigation for flying AI
TL;DR: Unreal's Recast navmesh answers "where can I stand?". LCM Nav3D answers "where is there empty air?". They solve different problems and they are not really competitors - if your project has both infantry and aircraft, the right answer is usually to run both, which Tutorial 09 covers.
This page is for deciding which one your project needs. If you already know you need volumetric navigation, skip to Installation.
The structural difference
Recast builds a surface: a mesh of convex walkable polygons, a two-dimensional sheet folded through three-dimensional space. Every position on it is somewhere an agent could put its feet.
LCM Nav3D builds a volume: a sparse voxel octree that partitions the empty space itself, so a position is anywhere an agent could fit - including two hundred metres up with nothing underneath it.
That difference is structural, not a matter of configuration. There is no Recast setting that produces a representation of open air, because a navmesh has no way to express "this cubic metre of sky is free". The vocabulary isn't there. Core Concepts explains how the octree represents it instead, and why open sky costs almost nothing to store.
| Recast navmesh (ships with UE5) | LCM Nav3D | |
|---|---|---|
| Represents | the walkable surface | the navigable volume |
| Data structure | convex polygon mesh, in tiles | sparse voxel octree |
| Answers | where can I stand? | where is there empty air? |
| Movement | across the ground | any direction, including straight up |
| Memory driven by | the surface area you cover | how cluttered the level is, not how big it is |
| Natural fit | soldiers, vehicles, characters | drones, dragons, submarines, spacecraft |
| Cost | free, built in | a plugin |
The workarounds, and where each one breaks
Everyone tries at least one of these before reaching for volumetric navigation. They are listed here honestly, because several of them are genuinely the correct choice for the right project.
A navmesh plane at flight altitude
Put an invisible floor at 3000 units and let Recast build on it. Cheap, and it works - as long as every agent flies at that one altitude. The moment something needs to dive under a bridge or climb over a building, you are back to 2D pathfinding wearing a hat. There is no vertical avoidance, because there is no vertical.
Several stacked navmeshes
The obvious extension, and it multiplies the problem rather than solving it. Transitions between layers have to be authored by hand, and an agent still cannot travel diagonally through the space between two layers - which, for a flyer, is most of the space.
A uniform 3D grid
Correct in principle: a voxel grid genuinely represents volume, and A* over it works. The problem is that it is dense. Memory grows with the cube of the extent, and empty sky costs exactly as much as solid rock. A 2 km level is unaffordable. Sparsity is the entire reason the octree exists - one node can cover a huge empty region, and detail only appears where geometry actually is.
Raycast steering with no pathfinding
Fire a few traces, steer away from what you hit. Cheap, and it looks fine in open terrain. It fails on anything concave: a U-shaped canyon, a hangar with one door, a courtyard. Steering has no global plan, so the agent walks into the pocket and stays there. This is the workaround that ships and then generates bug reports six months later.
Hand-authored spline highways
Predictable, cheap and fully art-directable. For scripted flypasts and fixed patrol routes this is the right answer and you should not replace it with pathfinding. But it is not navigation - agents cannot respond to a goal nobody anticipated, and every new route is authoring work.
When Recast is the right answer
Recast is mature, free, extremely well tested and already integrated with Behavior Trees, EQS and the crowd system. Use it when:
- Your agents walk. This is most games. Nothing here improves on Recast for infantry.
- Your "flying" is cosmetic - a hover drone that floats 50 cm above the floor and follows terrain. Recast plus a Z offset is simpler and cheaper.
- Flight routes are fixed and scripted. Use splines.
- You need Detour crowd avoidance for a ground army. That is
Recast's
UCrowdManager, and it works well.
When you actually need volume
- Agents move through open space where the gaps are the interesting geometry - canyons, cave systems, asteroid fields, city airspace.
- Multi-level interiors where above and below both matter, and an agent should be able to choose between them.
- Underwater or zero-gravity movement, where there is no floor to project onto.
- You need tactical queries about volume - cover, line of sight, height advantage - rather than about floor positions.
- Agents must reroute around things that move, in three dimensions.
What you get beyond the pathfinder
A weekend of work gets you 3D A* over a grid. The reason to use a plugin is everything that has to exist around the solver before flying agents stop looking broken:
| Capability | What it does | Chapter |
|---|---|---|
| Volumetric EQS | Generators and tests that score candidate points anywhere in the navigable volume, using SVO line-of-sight, cover, threat exposure and height advantage | Tactical EQS |
| Mass Entity crowds | Thousands of agents through the ECS with no per-agent controller, tick function or code | Mass Entity Crowds |
| Dynamic obstacles | Moving actors restamp the octree, and agents reroute around closing doors and rising platforms | Dynamic Obstacles |
| 3D nav links and area modifiers | Vertical ladders, jump shafts and teleporters, plus volumetric cost overlays for water and danger zones | Nav Links and Areas |
| 6-DOF flight dynamics | A rigid-body flight and hydro model - thrust, lift, drag, attitude - so movement looks like a body rather than a lerp | Flight and Locomotion |
| Gameplay Debugger integration | Per-agent and plugin-wide state in the stock UE debugger, next to Recast, BT and EQS | Gameplay Debugger |
| Editor tooling | A setup wizard, a health check that reports what would stop agents moving, and an auto-tuner that measures voxel settings against your real routes | Editor Tools |
Running both in one level
This is the common case, and it is supported directly rather than being a workaround. Walking agents stay on Recast; flying agents use the octree; both exist in the same level at the same time.
Adding a ULcmCrowdAvoidanceBridge to a flying pawn registers it
with Unreal's stock UCrowdManager, so Detour RVO steers Recast crowd
agents around it. A Z-band filter stops agents at very different altitudes from
uselessly avoiding each other. Full walkthrough in
Tutorial 09.
The two systems do not fight over anything. Recast keeps its navmesh, LCM Nav3D keeps its octree, and the bridge is the only place they meet.
Common questions
Can Unreal's navmesh handle flying AI at all?
Only by approximating it. A navmesh describes a walkable surface, so any flying behaviour built on it is really surface navigation with an offset, or a set of stacked surfaces with hand-authored transitions. That is fine for a hover drone following terrain and inadequate for anything that has to choose its altitude.
Do I have to choose between Recast and LCM Nav3D?
No. They coexist in the same level and are designed to. Ground agents on Recast, flying agents on the octree, and a bridge so Detour crowd avoidance sees the flyers.
Why an octree instead of a simple 3D grid?
Density. A uniform grid spends the same memory on empty sky as on solid geometry, and the cost grows with the cube of the extent. The octree is sparse: one node covers a large empty region, and it only subdivides where there is something to subdivide around. Navigation data ends up driven by how cluttered the level is rather than how big it is.
Does this replace Unreal's navigation system?
No, it sits beside it. Recast, Behavior Trees, StateTree, EQS, AI Perception, Mass and the Gameplay Debugger all keep working as they do now - LCM Nav3D adds tasks, tests, traits and a debugger category to them rather than substituting for them.
Which engine versions are supported?
Unreal Engine 5.2 to 5.8, on Windows 64-bit and Linux. See Installation for the full requirements.
Where to go next
| If you want to… | Go to |
|---|---|
| Understand how the octree works | Core Concepts |
| Get a pawn flying in your own level | Your First Flying Agent |
| Run Recast and Nav3D together | Hybrid Recast + Nav3D |
| See every setting | Settings Reference |