#!/usr/bin/env python3 """Build the L143 liminal pictures and walk-audit controls.""" from __future__ import annotations import argparse import json import os from pathlib import Path ROOT = Path(__file__).resolve().parents[4] OWNER = Path(os.environ.get("VOXELFORGE_OWNER_DATA", ROOT / "Standalone/data/owner_world.json")) OUT_DEFAULT = Path(os.environ.get("VOXELFORGE_VERIFY_OUT", ROOT / "Saved/Linux/l143")) FLAT_FIELD = { "version": 1, "kind": "flatField", "minimum_arena_clearance_m": 0.0, } def main() -> None: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--out", type=Path, default=OUT_DEFAULT / "fixtures") args = parser.parse_args() args.out.mkdir(parents=True, exist_ok=True) base = json.loads(OWNER.read_text(encoding="utf-8")) monolith = dict(base) monolith["surface_profile_override"] = dict(FLAT_FIELD) monolith["motif_family_override"] = { "version": 1, "strate_index": 0, "placement_policy": "seed,strate,stable_id", "motifs": [{ "stable_id": "liminal/oversized-familiar-monolith-v1", "kind": "cappedCylinder", "radius_m": 1.6, "height_m": 26.0, "route_side_offset_m": 42.0, "placement_radius_m": 0.0, "fillet_radius_m": 0.6, "blend_width_m": 1.2, "minimum_spacing_m": 0.0, "yaw_quarter_turns": 0, "attachment": "seated_floor", }], } hills = dict(base) hills["surface_profile_override"] = { "version": 1, "kind": "periodicHills", "amplitude_x_m": 2.2, "amplitude_y_m": 2.2, "wavelength_x_m": 80.0, "wavelength_y_m": 80.0, "minimum_arena_clearance_m": 0.0, } road_override = { "stable_id": "liminal/road-clouds-v2", "strate_index": 0, "start_xy_m": [120.0, 340.0], "path_length_m": 360.0, "curve_control_offset_m": 84.0, "deck_height_above_field_m": 44.0, "rise_control_m": 22.0, "half_width_m": 4.0, "half_thickness_m": 1.0, "sample_spacing_m": 1.0, "support_spacing_m": 24.0, "support_radius_m": 0.55, } road = dict(base) road["surface_profile_override"] = dict(FLAT_FIELD) road["liminal_road_override"] = dict(road_override) short_control = dict(base) short_control["surface_profile_override"] = dict(FLAT_FIELD) short_override = dict(road_override) short_override["path_length_m"] = 180.0 short_control["liminal_road_override"] = short_override pillars = dict(base) pillars["surface_profile_override"] = dict(FLAT_FIELD) pillars["liminal_pillar_grid_override"] = { "stable_id": "liminal/horizon-pillar-grid-v1", "strate_index": 0, "center_xy_m": [700.0, 800.0], "rows": 15, "columns": 15, "spacing_m": 76.0, "radius_m": 5.5, "height_m": 40.0, } fixtures = ( ("flatField-monolith", monolith), ("periodicHills", hills), ("road-in-clouds", road), ("road-short-control", short_control), ("pillar-grid", pillars), ) for name, fixture in fixtures: path = args.out / f"liminal-{name}.json" path.write_text(json.dumps(fixture, indent=2) + "\n", encoding="utf-8") print(f"[L143Fixture] name={name} file={path} status=PASS") if __name__ == "__main__": main()