Files
VoxelForge/Standalone/Research/WorldAssemblerM3/Linux141/BuildL141Fixtures.py
T
Fr0zkaandClaude Opus 5.5 9c6d261d01 proto: first liminal fixtures - flat field + monolith, periodic hills, raised road in fog (L141)
Standalone only: fixtures, liminal_road_override (fillDais), --audit-liminal-road-walk, capture-only distance fog.
Road 65 m x 6 m, 22 m up, capsule walk 127/127. Owner hashes unchanged (v227), fast tier, Clang/GCC green.
Hills repeat every 80 m but the capture reaches 56 m, so only one rise shows. Also R48 (who owns the tunnel mouth):
recommends a bounded joint plan of passage ports and layer landing candidates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
2026-11-01 08:43:24 +01:00

85 lines
2.6 KiB
Python

#!/usr/bin/env python3
"""Build three standalone liminal SurfaceWorld fixtures from the owner input."""
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/l141"))
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"))
flat = dict(base)
flat["surface_profile_override"] = dict(FLAT_FIELD)
flat["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 = dict(base)
road["surface_profile_override"] = dict(FLAT_FIELD)
road["liminal_road_override"] = {
"stable_id": "liminal/raised-road-v1",
"strate_index": 0,
"position_xy_m": [240.0, 180.0],
"half_extents_m": [32.5, 3.0, 0.75],
"deck_height_above_field_m": 22.0,
"yaw_quarter_turns": 0,
}
for name, fixture in (("flatField-monolith", flat),
("periodicHills", hills),
("raised-road", road)):
path = args.out / f"liminal-{name}.json"
path.write_text(json.dumps(fixture, indent=2) + "\n", encoding="utf-8")
print(f"[L141Fixture] name={name} file={path} status=PASS")
if __name__ == "__main__":
main()