Chord error 2.5 -> 10 cm, shell work skipped outside the 0-0.75 m band. Sweep pairs -39%, prepare -60%, near-ready 3-8% faster than L115 but still +13..+22% vs L109. Floor offset 7.88 mm; captures match L115 by eye; fast tier, walk audits, Clang/GCC W1/W8/W12 determinism green. Not for merge yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
55 lines
2.3 KiB
Python
55 lines
2.3 KiB
Python
#!/usr/bin/env python3
|
|
"""Render the L115 view set with the L119 candidate binaries."""
|
|
from __future__ import annotations
|
|
|
|
import importlib.util
|
|
import json
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[4]
|
|
RESEARCH = Path(__file__).resolve().parent
|
|
SPEC = importlib.util.spec_from_file_location(
|
|
"l115_capture_runner", ROOT / "Standalone/Research/WorldAssemblerM3/Linux115/RunL115Captures.py")
|
|
if SPEC is None or SPEC.loader is None:
|
|
raise SystemExit("cannot load the L115 capture view definitions")
|
|
RUNNER = importlib.util.module_from_spec(SPEC)
|
|
SPEC.loader.exec_module(RUNNER)
|
|
|
|
# Reuse L115's exact camera and station definitions, while rendering through L119.
|
|
RUNNER.CAPTURES = RESEARCH / "captures/L119"
|
|
RUNNER.SAVED = ROOT / "Saved/Linux/l119/captures"
|
|
RUNNER.HELPERS.RESEARCH = RESEARCH
|
|
RUNNER.BINARIES = {
|
|
"L115": ROOT / "Saved/Linux/l119/bin/VoxelForgeCoreHeadless-l119-clang"}
|
|
RUNNER.RENDERERS = {
|
|
"L115": ROOT / "Saved/Linux/l119/bin/VoxelForgeOffscreenCapture-l119-clang"}
|
|
RUNNER.HELPERS.BINARIES = RUNNER.BINARIES
|
|
RUNNER.HELPERS.RENDERERS = RUNNER.RENDERERS
|
|
|
|
|
|
def main() -> int:
|
|
result = RUNNER.main()
|
|
if result != 0:
|
|
return result
|
|
index = RUNNER.CAPTURES / "capture-index.json"
|
|
document = json.loads(index.read_text(encoding="utf-8"))
|
|
for row in document["captures"]:
|
|
row["variant"] = "L119"
|
|
index.write_text(json.dumps(document, indent=2) + "\n", encoding="utf-8")
|
|
markdown = RUNNER.CAPTURES / "INDEX.md"
|
|
lines = ["# L119 captures (L115 view set)", "",
|
|
"The 23 L115 camera poses were rendered with the L119 binary. Floor anchors "
|
|
"require an upward normal alignment of at least 0.85, target-to-floor distance "
|
|
"at most 0.25 m, and camera-to-floor distance between 2.0 and 3.2 m. Open-air "
|
|
"sections have outside and interior wall close-ups at 4 m.", ""]
|
|
for row in document["captures"]:
|
|
image = row["capture"].removeprefix("captures/L119/")
|
|
lines.append(f"- [{row['passage']} {row['station']}]({image}) — "
|
|
f"{row['kind']}; {row.get('drawn_triangles', 0)} triangles; "
|
|
f"{row['pixel_quality_status']}")
|
|
markdown.write_text("\n".join(lines) + "\n", encoding="utf-8")
|
|
return 0
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|