Skip to main content

mapv10 Generator

Rust generator for mapv10 artifacts.

The generator owns map truth and writes typed products, previews, and validation reports. It must not depend on browser state, Three.js, UI state, React, or downstream application simulation.

Lake mesh output is generated from mapv10-lake-polygons-v2 outer rings plus optional hole rings through earcutr; the generator must not reintroduce center-fan lake surfaces or bbox quads.

Initial responsibility:

  • parse seed/config
  • produce deterministic staged artifacts
  • write manifests and byte-length metadata
  • validate generated products before viewer consumption

Implemented modules:

  • config, model, artifacts, validation, previews, and stages.
  • Stages: 00-config, 01-continent, 02-geography-graph, 03-heightfield, 04-water, 05-biomes-materials, 06-political, 07-routes, 08-map-features, 09-influence, 10-borders-sdf, 11-tile-pyramid, 12-meshes, 13-readiness, 14-previews, and 15-valenar-worlddata.

Stage 09-influence writes generic influence registries, deterministic source anchors, corruption intensity/type masks, and derived effective visual/material products without mutating base biome/material truth.

Stage 15-valenar-worlddata writes run-local Valenar bridge products under valenar/world-<seed>.json and valenar/world-<seed>.mesh.json. The export preserves mapv10 numeric ids, derives Valenar regions/areas/provinces/Locations from generated truth, normalizes Location facts, emits gameplay anchors, and shares a deterministic content hash between the gameplay JSON and mesh manifest. Valenar's runtime default remains the small world-42 dummy fixture until an explicit import/package step chooses one of these generated products.

Commands:

cargo fmt --check
cargo test --release
cd ../viewer && npm run fixture:continent

../viewer/public/continent-lod6 is the canonical browser proof fixture served as /mapv10/runs/continent-lod6/manifest.json by npm run verify:browser:continent; bootstrap it through the viewer fixture:continent script so the generated Valenar WorldData export is also validated. The fixture must include the current required raster contract, including materialWeightsB, influence masks, and effective visual/material products at the root and in every raster tile.

See:

  • ../architecture.md
  • ../roadmap.md