LCM Nav3D Free demo Get it on Fab

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:

When you actually need volume


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