Skip to main content
Euca’s navigation (euca-nav) builds a grid navmesh from scene colliders, runs A* pathfinding (8-connected, Euclidean heuristic, line-of-sight smoothing), and steers agents along paths. All of it is headless.
Fully headless. Navmesh, pathfinding, and steering run on the :3917 server.

Generate a navmesh and compute a path

# Build a 100×100 grid navmesh over a region, blocking cells under colliders
curl -s -X POST http://localhost:3917/navmesh/generate \
  -H 'Content-Type: application/json' \
  -d '{"min_x":-50,"max_x":50,"min_z":-50,"max_z":50,"cell_size":1.0}'
# {"ok":true,"width":100,"height":100,"total_cells":10000,"blocked_cells":0}

# A* between two world positions → a list of waypoints
curl -s -X POST http://localhost:3917/path/compute \
  -H 'Content-Type: application/json' -d '{"from":[0,0,0],"to":[10,0,5]}'
# {"ok":true,"count":10,"waypoints":[[1.5,0,1.5],[2.5,0,2.5],...,[10.0,0,5.0]]}

Autonomous steering

POST /path/set attaches a NavAgent + PathGoal to an entity. The pathfinding_system recomputes the path when the goal is dirty, and the steering_system updates the entity’s Velocity to follow waypoints, with arrival detection.

Endpoints

MethodPathDescription
POST/navmesh/generateBuild a grid navmesh from scene colliders
POST/path/computeA* path between two positions (returns waypoints)
POST/path/setAttach a steering agent + path goal to an entity

Status

  • ✅ Navmesh generation from colliders, grid A* with line-of-sight smoothing, steering agents — shipped and headless.
  • 🟡 The navmesh is static once built (no automatic rebuild when the world changes; regenerate to refresh).

Navigation endpoints

Navmesh, path-compute, and path-set endpoints with schemas.