Automatic and Manual Off-Mesh Link Generation for Advanced Navigation

Title
Automatic and Manual Off-Mesh Link Generation for Advanced Navigation

Description
Babylon.js navigation currently works well for continuous walkable surfaces, but complex game environments often require transitions between disconnected areas, such as jumps, climbs, drops, and platform-to-platform movement.

This feature request proposes an advanced off-mesh link system with two complementary workflows:

  1. Automatic link generation
    The engine can analyze the navigation layout and generate valid traversal links automatically, detecting opportunities such as jumpable gaps, climbable ledges, and drop-down transitions.

  2. Manual link authoring
    Developers and level designers can also place custom navigation points by hand, defining exact start and end positions for traversal links. This gives full control over AI movement and allows map-specific design decisions that are not always possible through automation alone.

The goal is to provide a flexible system where automatic generation handles common cases, while manual placement gives map designers precise control over gameplay, pacing, and enemy behavior.

A good implementation would expose a simple API for:

The image below represents exactly the kind of behavior this feature would enable:

The image below represents exactly the kind of behavior this feature would enable:

  • setting link type, range, and constraints
  • visualizing links in the editor or debug view
  • integrating links with the existing crowd and agent system

Benefits of the implementation

  • Enables AI agents to move across multi-level environments
  • Supports jumping, climbing, and dropping behavior
  • Reduces repetitive manual setup through automatic generation
  • Gives map designers precise control when manual placement is needed
  • Improves the quality and realism of enemy movement
  • Makes Babylon.js more capable for action games, platformers, and advanced AI scenes
  • Lowers the barrier to implementing complex navigation behaviors
  • Can attract more developers to the framework if it remains easy to use and flexible

Closing note
If this feature stays easy to configure and simple to use, it could make Babylon.js significantly more appealing to developers who need advanced navigation without heavy custom engineering.

3 Likes

This is a great list of things to have indeed.

cc @isaac-mason

3 Likes

Ooh this would be amazing!!

1 Like

A few users of navcat have already implemented automatic offmesh link generation in user-land! Probably equally also possible in recast-navigation-js userland.

Someone referenced porting the jumplink generation from recast4j to navcat user-land: recast4j/detour-extras/src/main/java/org/recast4j/detour/extras/jumplink at main · recast4j/recast4j · GitHub

Hopefully sometime soon navcat will get a repository example demonstrating a method, and from there it may get generalised into a library feature. Maybe segment-to-segment links will get added too.

1 Like

Awesome, thank you so much, @isaac-mason !

Sorry that I’m unfamiliar with where user-land is :smile: Does this mean somewhere in the navcat repo there’s a script for automatic offmesh link generation? I’d really love to see how they managed to do it!

Sorry, by that I mean they were able to implement offmesh link generation in their own code that uses navcat, without modifications to navcat itself. There’s no examples in the repo for this just yet.

1 Like

Got it :slight_smile: I’ll be checking out the link you shared about the jumplink generation from recast4j!