Files
VoxelForge/Standalone/Research/WorldAssemblerM3/Linux144/BuildL144Fixtures.py
T
Fr0zkaandClaude Opus 5.5 a45ba9bb10 wip: Core.Liminal.Field v1 recipe, 4 seed-selected variants between fixed mouths (L144, fails mouth joins)
Plans and draws flat field+monolith, repeating hills, road over cloud floor and pillar grid in a 3-strata fixture,
binding passage/0-1 and 1-2 as fixed endpoints. Composed W1 probes: 3/4 seeds fail one passage interface, 4/4 fail the
liminal walk audit near the mouths (support itself passes). Stopped per AGENTS.md. Same mouth-ownership failure
class as FI (L133/L140) and VS seed 2 (L139).

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

59 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
"""Build the 3-strata composed Core.Liminal.Field fixture."""
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/l144"))
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)
world = json.loads(OWNER.read_text(encoding="utf-8"))
if len(world.get("strates", [])) < 3:
raise SystemExit("owner fixture needs at least three authored strate slots")
world["strates"] = world["strates"][:3]
world["total_strates"] = 3
world["settings_asset"]["TotalStrates"] = 3
world["settings_asset"]["FixedStrates"] = world["settings_asset"]["FixedStrates"][:3]
# Keep the resolved arrival near the departure depth. The owner's 5000-unit
# reach clamps to liminal bedrock on most seeds and leaves no field floor.
world["strates"][0]["passage_config"]["ReachMin"] = 1536
world["strates"][0]["passage_config"]["ReachMax"] = 1792
world["surface_profile_override"] = {
"version": 1,
"kind": "flatField",
"minimum_arena_clearance_m": 0.0,
}
middle = world["strates"][1]
middle["asset"]["GeneratorType"] = 4 # ECaveGeneratorType::SurfaceWorld
middle["asset"]["StrateName"] = "Liminal Field"
# Keep the departure mouth 24–32 m above liminal bedrock so every variant
# has room for its floor, road landing and support footings.
middle["passage_config"]["ReachMin"] = 192
middle["passage_config"]["ReachMax"] = 256
world["core_liminal_field"] = {
"version": 1,
"strate_index": int(middle["index"]),
"variant_policy": "seed_modulo_4",
}
output = args.out / "core-liminal-field-3-strata.json"
output.write_text(json.dumps(world, separators=(",", ":")) + "\n", encoding="utf-8")
print(f"[L144Fixture] path={output} strates=SurfaceWorld,Core.Liminal.Field,TunnelNetwork status=PASS")
if __name__ == "__main__":
main()