core: Tunnel Network cave planner with a continuous backbone floor (L134, evaluator v230)
Backbone rooms and edges share one floor profile h(s); side branches keep flat floors; overlap backing capped at the lower floor. Default seed: route audit 0 blocked / 0 unsupported / 0 grade over 51,975 capsule samples; passages open; fast tier, seams, Clang/GCC W1/W8/W12 green. Open: seed 1 (24 blocked at the 2-3 arrival mouth) and seed 2 (22 unsupported at passage 1-2) fail composed audits; near-ready +6..+14% on layers 1-3. Not for merge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
This commit is contained in:
1 parent
4a97023b24
commit
a3c8e3687d
23 files changed
+338
-53
No files matched your search
@@ -125,11 +125,11 @@ RECIPE_RE = re.compile(
|
||||
|
||||
def owner_hash_baseline(recipe: str, style: int) -> tuple[Path, str]:
|
||||
if recipe == "surface-world" and style == 1:
|
||||
return (BASELINES / "owner-hash/canonical/owner-hash-surface-world-style1-v227.baseline",
|
||||
"L130-v227-reach-units")
|
||||
return (BASELINES / "owner-hash/canonical/owner-hash-surface-world-style1-v230.baseline",
|
||||
"L134-v230-continuous-backbone")
|
||||
if recipe == "floating-islands" and style == 2:
|
||||
return (BASELINES / "owner-hash/canonical/owner-hash-floating-islands-style2-v227.baseline",
|
||||
"L130-v227-reach-units")
|
||||
return (BASELINES / "owner-hash/canonical/owner-hash-floating-islands-style2-v230.baseline",
|
||||
"L134-v230-continuous-backbone")
|
||||
raise VerificationFailure(f"no pinned owner hash baseline for {recipe} style {style}")
|
||||
|
||||
|
||||
@@ -1078,7 +1078,7 @@ def run_ore_vein_hash_controls(runner: VerificationRunner) -> None:
|
||||
def cavern_audit_cameras(layout_path: Path) -> list[tuple[float, float, float, float, float]]:
|
||||
layout = json.loads(layout_path.read_text(encoding="utf-8"))
|
||||
edges = layout.get("cavern_edges", [])
|
||||
if layout.get("cavern_graph_vocabulary_version") != 1 or len(edges) != 1:
|
||||
if layout.get("cavern_graph_vocabulary_version") not in (1, 2) or len(edges) != 1:
|
||||
raise VerificationFailure(f"missing one resolved cavern edge in {layout_path}")
|
||||
points = [[value / 1_000_000.0 for value in point]
|
||||
for point in edges[0]["control_points_um"]]
|
||||
@@ -1152,7 +1152,7 @@ def run_native_caves_field_audit(runner: VerificationRunner, binary: Path) -> tu
|
||||
r"false_all_air=REJECTED false_all_solid=REJECTED .*status=PASS$"),
|
||||
"brute-force interval proofs have zero misses and reject both false-proof controls")
|
||||
layout = json.loads(layout_path.read_text(encoding="utf-8"))
|
||||
graph_ok = (layout.get("cavern_graph_vocabulary_version") == 1
|
||||
graph_ok = (layout.get("cavern_graph_vocabulary_version") in (1, 2)
|
||||
and len(layout.get("cavern_rooms", [])) == 1
|
||||
and len(layout.get("cavern_edges", [])) == 2)
|
||||
runner.require(f"native-caves-field-{compiler}:resolved-graph", graph_ok,
|
||||
@@ -1235,7 +1235,7 @@ def run_native_lattice_field_audit(runner: VerificationRunner, binary: Path) ->
|
||||
rooms = layout.get("cavern_rooms", [])
|
||||
lattice_rows = [row for row in layout.get("strates", [])
|
||||
if row.get("strate_index") == 1]
|
||||
graph_ok = (layout.get("cavern_graph_vocabulary_version") == 1
|
||||
graph_ok = (layout.get("cavern_graph_vocabulary_version") in (1, 2)
|
||||
and len(edges) >= 9 and len(rooms) >= 8
|
||||
and len(lattice_rows) == 1
|
||||
and lattice_rows[0].get("generator_kind") == "Maze"
|
||||
@@ -1261,7 +1261,7 @@ def lattice_camera_positions(layout_path: Path, count: int = 4) -> list[tuple[fl
|
||||
edges = sorted(layout.get("cavern_edges", []), key=lambda edge: edge["stable_id"])
|
||||
helix = next((edge for edge in edges
|
||||
if edge["stable_id"] == "lattice/spine/01-helix-ramp-v1"), None)
|
||||
if layout.get("cavern_graph_vocabulary_version") != 1 or helix is None:
|
||||
if layout.get("cavern_graph_vocabulary_version") not in (1, 2) or helix is None:
|
||||
raise VerificationFailure(f"missing resolved lattice helix in {layout_path}")
|
||||
helix_points = [[value / 1_000_000.0 for value in point]
|
||||
for point in helix.get("polyline_um", [])]
|
||||
@@ -1414,7 +1414,7 @@ def run_lattice_performance(runner: VerificationRunner, binary: Path,
|
||||
def cave_camera_positions(layout_path: Path, count: int = 4) -> list[tuple[float, float, float, float, float]]:
|
||||
layout = json.loads(layout_path.read_text(encoding="utf-8"))
|
||||
edges = sorted(layout.get("cavern_edges", []), key=lambda edge: edge["stable_id"])
|
||||
if layout.get("cavern_graph_vocabulary_version") != 1 or len(edges) != 2:
|
||||
if layout.get("cavern_graph_vocabulary_version") not in (1, 2) or len(edges) != 2:
|
||||
raise VerificationFailure(f"missing two resolved cave spine edges in {layout_path}")
|
||||
rng = _SplitMix64(CAVES_CAMERA_SWEEP_SEED)
|
||||
cameras = []
|
||||
|
||||
Reference in new issue
Block a user