| .. | ||
| navigation-authoring-overview.png | ||
| navigation-path-preview.png | ||
| README.md | ||
Navigation Authoring Evaluation
Evidence record — not current product guidance. Use the documentation index for current behavior and architecture.
Date: 2026-07-12
Branch: codex/renderer-material-component-foundation
This record captures implementation evidence for deterministic navigation authoring, composed source resolution, persisted path samples, bake diagnostics, and shared editor/game/headless path queries. The permanent contract lives in ADR 0032, and the user workflow lives in the navigation authoring guide.
Live editor evidence
The images below are native Wayland captures from the debug editor running the isolated
Blacksite Navigation QA project. The QA project is temporary; no acceptance interaction changes
the repository scene.
Bounds, sources, diagnostics, and validation samples
The selected bounds owns its generated artifact, exposes the complete agent profile, reports current/stale state, and shows its persisted validation sample. Bounds, obstacle, area, and link visualizers match the world-axis-aligned volumes and endpoints consumed by the bake.
Shared runtime path preview
Test Path uses the same height-aware, multi-link query core as project validation and the game
adapter. The live query returned an 8.20 m, six-waypoint route through
navigation-link-center; a subsequent editor bake regenerated 26 polygons and the same query
remained valid. Pinning a second sample immediately marked the artifact stale and disabled path
testing; undo restored the current one-sample state. The transient route, endpoints, baked mesh,
and visualizers do not enter scene serialization.
Acceptance results
| Area | Result | Evidence |
|---|---|---|
| Designer workflow | Pass | Typed bounds/obstacle/area/link actors, Bake, overlay, Test Path, and persisted sample controls |
| Source fidelity | Pass | Active unsaved snapshot plus visible subscene and recursive prefab resolution; exact affine transforms; no synthetic floor |
| Stale-state scope | Pass | Each bounds fingerprint includes only overlapping geometry/volumes and relevant links/samples; external artifact replacement is polled |
| Diagnostics | Pass | Invalid agents, grid budgets, links, duplicate artifact owners, prefab drift/structure, empty bakes, and unreachable named samples identify owners and repairs |
| Runtime parity | Pass | One scene-owned Polyanya query core drives editor preview, game Vec3 adapter, link/sample validation, and the renderer-free validation CLI |
| Artifact integrity | Pass | Schema 2, exact generator identity, deterministic fresh-bake comparison, self-verifying payload hash, and atomic replacement |
| Serialization boundary | Pass | Viewport meshes, lines, markers, routes, and cache state remain transient |
| Packaged/release acceptance | Deferred | Explicitly deferred by project-owner direction; no packaged test is claimed in this record |
Automated verification
| Command/suite | Result |
|---|---|
Affected source test matrix (shared, scene, game, editor, blacksite_surface, xtask) |
390 passed; 1 intentional manual migration test ignored |
cargo clippy -p shared -p scene -p game -p editor -p xtask --all-targets -- -D warnings |
Pass |
cargo bake-navigation --project . --check |
1 deterministic artifact current |
cargo validate-levels |
59 dependencies, 5 non-blocking findings, 0 blocking errors |
cargo fmt --all / git diff --check |
Pass |
Deliberate boundaries
V1 applies blocked areas and retains walkable cost metadata until Polyanya exposes a suitable per-polygon cost callback. Imported static-mesh manifests do not yet contain normalized navigation triangles. Runtime obstacle carving, crowd avoidance, and partial tile rebuilds remain future work; V1 uses a debounced deterministic rebuild scoped by each bounds fingerprint.

