Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CLI Tool

The landmark-cli crate provides a command-line tool for navmesh generation and pathfinding.

Installation

cargo install --path crates/landmark-cli

Or build from the workspace:

cargo build -p landmark-cli --release

Commands

build

Generate a navigation mesh from an OBJ mesh file.

landmark-cli build --input mesh.obj --output navmesh.bin

Output format is determined by file extension:

  • .json: JSON format
  • .bin, .navmesh: Binary format (C++ compatible)
  • Other/none: Binary format (default)

All RecastConfig parameters are available as flags:

landmark-cli build \
    --input mesh.obj \
    --output navmesh.bin \
    --cs 0.3 \
    --ch 0.2 \
    --walkable-slope-angle 45.0 \
    --walkable-height 2 \
    --walkable-climb 1 \
    --walkable-radius 1 \
    --max-edge-len 12 \
    --max-simplification-error 1.3 \
    --min-region-area 8 \
    --merge-region-area 20 \
    --max-vertices-per-polygon 6 \
    --detail-sample-dist 6.0 \
    --detail-sample-max-error 1.0

find-path

Find a path between two positions on a navigation mesh.

landmark-cli find-path --mesh navmesh.bin --start 0,0,0 --end 10,0,10

Positions are comma-separated x,y,z values.

Optional output file:

landmark-cli find-path --mesh navmesh.bin --start 0,0,0 --end 10,0,10 --output path.csv

The output file contains one waypoint per line in x,y,z format.

Workflow

A typical workflow:

# 1. Generate navmesh from level geometry
landmark-cli build --input level.obj --output level.bin

# 2. Query paths
landmark-cli find-path --mesh level.bin --start 0,1,0 --end 50,1,30

# 3. Adjust parameters and rebuild
landmark-cli build --input level.obj --output level.bin --cs 0.2 --walkable-radius 2