From b1c11725e777665daf9c1803a10da15e9cd19323 Mon Sep 17 00:00:00 2001 From: Bamdad Dashtban Date: Mon, 3 Aug 2026 12:24:14 +0100 Subject: [PATCH 1/5] Add parcel-sort overlapping-coverage scene builder A five-station sorting line under five cameras with deliberately overlapping fields of view. One handler walks the line station_1 -> station_5, dwelling at each station; while it transits between two adjacent stations it is in view on both covering cameras at once. That two-camera overlap is recorded straight in the manifest's per-camera in_view flags with no schema change, so a consumer can triangulate the handler wherever two cameras cover it. Additive and opt-in: build_parcel_sort_scene is a new top-level export alongside the existing scene builders; no existing manifest changes. --- src/multicam_sim/__init__.py | 2 + src/multicam_sim/parcel_sort.py | 149 ++++++++++++++++++++++++++++++++ tests/test_parcel_sort.py | 120 +++++++++++++++++++++++++ 3 files changed, 271 insertions(+) create mode 100644 src/multicam_sim/parcel_sort.py create mode 100644 tests/test_parcel_sort.py diff --git a/src/multicam_sim/__init__.py b/src/multicam_sim/__init__.py index 581a86b..d2b917e 100644 --- a/src/multicam_sim/__init__.py +++ b/src/multicam_sim/__init__.py @@ -52,6 +52,7 @@ from .noise import CalibrationDrift, NoiseModel, PixelNoise from .occluders import Box, Cylinder, HandKeyframe, HandOccluder, Occluder, PathOccluder, Sphere from .overlay import export_overlay +from .parcel_sort import build_parcel_sort_scene from .pose import ( COCO17_EDGES, COCO17_JOINTS, @@ -143,6 +144,7 @@ "YoloLabel", "build_action_ground_truth", "build_group_formation_scene", + "build_parcel_sort_scene", "build_manifest", "build_mtmc_scene", "silhouette_visible_fraction", diff --git a/src/multicam_sim/parcel_sort.py b/src/multicam_sim/parcel_sort.py new file mode 100644 index 0000000..cd6392d --- /dev/null +++ b/src/multicam_sim/parcel_sort.py @@ -0,0 +1,149 @@ +"""Parcel-sort scene: a handler walks a line of sorting stations under overlapping cameras. + +A domain-neutral counterpart to :mod:`multicam_sim.mtmc`. Where MTMC places +cameras at SEPARATED stations with *disjoint* fields of view (an object is in at +most one view at a time, with a genuine blind gap between them), this scene +deliberately *overlaps* adjacent cameras' coverage along a straight walkway: + + * five fixed **sorting stations** (``station_1`` .. ``station_5``) sit evenly + spaced along the line; + * one **handler** — a single moving point named ``center`` — walks the line + ``station_1 -> station_5``, pausing (a **dwell**, the sort operation) at each + station before moving on; + * five **cameras** stand back off the line, one framing each station, aimed so + that adjacent cameras' fields of view overlap over the walkway *between* + stations. + +The overlap is graduated, not universal: while the handler dwells at a station +it is in exactly one camera's view, and while it *transits* between two adjacent +stations it is in view on BOTH covering cameras at once. That two-camera transit +interval is the overlap this scene exists to demonstrate (issue #84) — the +manifest's per-camera ``in_view`` flags record it with no schema change, and a +consumer can triangulate the handler wherever two cameras cover it. + +The handler keeps ONE stable ``entity.id`` throughout, the cross-camera +ground-truth identity a tracker must preserve down the line. The scene carries a +:class:`CameraTopology` whose stations name each sorting station's covering +camera and whose directed :class:`TransitEdge` s chain the walk ``station_i -> +station_{i+1}`` (and back) with the transit time between them. + +v1 models the handler as a single point target ("center"), which keeps the +overlap proof unambiguous (one point in view on two cameras) and the manifest +compact; a skeletoned handler carrying a parcel is a deliberate future +extension, not a gap. +""" + +from __future__ import annotations + +from .cameras import Camera +from .dsl.motion import Path, PathUnion +from .dsl.rig import CameraRig, StationView +from .entities import Entity +from .scene import Scene +from .topology import CameraTopology, Station, TransitEdge + +_WIDTH = 1280 +_HEIGHT_PX = 720 +_FPS = 10.0 + +_NUM_STATIONS = 5 +#: Spacing between adjacent sorting stations along the walkway (world units, +x). +_STATION_STEP = 3.0 +#: Height of the tracked handler point (torso, world +z). +_HANDLER_Z = 1.0 +#: Cameras stand back off the line along -y, looking toward the walkway. +_CAM_Y = -4.0 +_CAM_Z = 2.2 +#: Wide-ish FOV so adjacent cameras' cones overlap over the walkway. +_CAM_FOV_DEG = 70.0 + +#: Seconds the handler walks between two adjacent stations. +_WALK_S = 0.5 +#: Seconds the handler dwells (pauses, the sort operation) at each station. +_DWELL_S = 0.4 + +HANDLER_ID = "handler-1" +#: Domain-neutral sorting-station ids down the line. +STATION_IDS = [f"station_{i + 1}" for i in range(_NUM_STATIONS)] + + +def _station_x(index: int) -> float: + """World ``x`` of sorting station ``index`` (0-based) along the walkway.""" + return index * _STATION_STEP + + +def _station_views() -> list[StationView]: + """One camera per sorting station, standing back off the line and framing that + station. The wide FOV makes adjacent cones overlap over the walkway between + stations, so a transiting handler is seen by two cameras at once.""" + return [ + StationView( + position=(_station_x(i), _CAM_Y, _CAM_Z), + look_at=(_station_x(i), 0.0, _HANDLER_Z), + fov_deg=_CAM_FOV_DEG, + ) + for i in range(_NUM_STATIONS) + ] + + +def _cameras() -> list[Camera]: + return CameraRig.stations(_station_views(), width=_WIDTH, height_px=_HEIGHT_PX) + + +def _handler_path() -> PathUnion: + """A timed walk ``station_1 -> station_5`` with a dwell at each station. + + Built from the motion DSL: a zero-length ``linear(p, p).over(dwell)`` segment + holds the handler in place for the dwell, chained by ``.then`` with a + ``linear(p_i, p_{i+1}).over(walk)`` transit segment for each leg. The dwell + segments make the handler's position constant across consecutive frames at + each station; the transit segments carry it (and its overlapping two-camera + coverage) between them. + """ + points = [(_station_x(i), 0.0, _HANDLER_Z) for i in range(_NUM_STATIONS)] + path: PathUnion = Path.linear(points[0], points[0]).over(_DWELL_S) + for i in range(_NUM_STATIONS - 1): + walk = Path.linear(points[i], points[i + 1]).over(_WALK_S) + dwell = Path.linear(points[i + 1], points[i + 1]).over(_DWELL_S) + path = path.then(walk).then(dwell) + return path + + +def _num_frames(path: PathUnion) -> int: + """Frame count covering the whole timed walk at :data:`_FPS`, inclusive.""" + return int(round(path.total_duration() * _FPS)) + 1 + + +def build_parcel_sort_scene() -> Scene: + """Construct the deterministic overlapping parcel-sort scene. + + Five cameras with overlapping coverage watch one handler walk five sorting + stations, dwelling at each. Returns a :class:`Scene` carrying the per-station + :class:`CameraTopology` and no occluders. + """ + cameras = _cameras() + + path = _handler_path() + num_frames = _num_frames(path) + frames = path.compile_frames(_FPS, num_frames, name="center") + handler = Entity(id=HANDLER_ID, frames=frames) + + # Each sorting station is covered by its own camera (same index); the walk + # chains station_i <-> station_{i+1} with the transit time between them. + transit_s = _WALK_S + stations = [Station(id=station_id, camera_ids=[i]) for i, station_id in enumerate(STATION_IDS)] + edges: list[TransitEdge] = [] + for i in range(_NUM_STATIONS - 1): + src, dst = STATION_IDS[i], STATION_IDS[i + 1] + edges.append(TransitEdge(src=src, dst=dst, transit_time_s=transit_s)) + edges.append(TransitEdge(src=dst, dst=src, transit_time_s=transit_s)) + topology = CameraTopology(stations=stations, edges=edges) + + return Scene( + fps=_FPS, + num_frames=num_frames, + cameras=cameras, + entities=[handler], + occluders=[], + topology=topology, + ) diff --git a/tests/test_parcel_sort.py b/tests/test_parcel_sort.py new file mode 100644 index 0000000..b8c8bc1 --- /dev/null +++ b/tests/test_parcel_sort.py @@ -0,0 +1,120 @@ +"""Parcel-sort overlapping-coverage scene. + +One handler walks a line of five sorting stations, dwelling at each, watched by +five cameras with deliberately OVERLAPPING fields of view. Exercises the +serialized contract end to end: build the scene, write the manifest (strict JSON, +``allow_nan=False``), reload it, and assert determinism, the down-the-line +topology, the per-station dwell, and — the point of the scene — that the handler +is ``in_view`` on at least two cameras at once during station-to-station +transits. Overlap is read straight off the manifest's per-camera ``in_view`` +flags (the sim's own projection/visibility), never recomputed here. +""" + +from __future__ import annotations + +import json +import math +from pathlib import Path + +from multicam_sim import build_manifest, build_parcel_sort_scene, write_manifest +from multicam_sim.parcel_sort import HANDLER_ID, STATION_IDS + + +def _load(tmp_path: Path) -> dict: + scene = build_parcel_sort_scene() + path = tmp_path / "parcel_sort.json" + write_manifest(scene, path) + return json.loads(path.read_text()) + + +def _frames(manifest: dict) -> list[dict]: + return manifest["entities"][0]["frames"] + + +def _in_view(frame: dict) -> list[bool]: + return [o["in_view"] for o in frame["points"]["center"]["per_cam"]] + + +def test_manifest_is_strict_finite_json(tmp_path: Path) -> None: + """Every uv is finite — behind/out-of-frame projections are sanitised, so the + manifest is valid strict JSON (no Infinity/NaN) for the consumer.""" + manifest = _load(tmp_path) + for frame in _frames(manifest): + for obs in frame["points"]["center"]["per_cam"]: + assert all(math.isfinite(c) for c in obs["uv"]) + + +def test_deterministic_byte_stable_manifest() -> None: + """The builder is deterministic: two independent builds serialise to the exact + same JSON bytes (no unseeded RNG anywhere in the scene).""" + first = build_manifest(build_parcel_sort_scene()).to_json() + second = build_manifest(build_parcel_sort_scene()).to_json() + assert first == second + + +def test_visible_implies_in_view(tmp_path: Path) -> None: + """visible == in_view AND unoccluded, so visible is never true where in_view + is false.""" + manifest = _load(tmp_path) + for frame in _frames(manifest): + for obs in frame["points"]["center"]["per_cam"]: + if obs["visible"]: + assert obs["in_view"] + + +def test_handler_in_view_on_two_cameras_simultaneously(tmp_path: Path) -> None: + """The overlap proof: on some frame(s) the handler is in_view on AT LEAST + two cameras at once. Those frames are the station-to-station transits, and the + two covering cameras are always an ADJACENT pair (graduated overlap down the + line, not every camera seeing everything).""" + manifest = _load(tmp_path) + frames = _frames(manifest) + coverage = [sum(_in_view(f)) for f in frames] + + two_cam = [i for i, c in enumerate(coverage) if c >= 2] + assert two_cam, "expected >=2-camera overlap frames during transits" + + # Every overlap frame is covered by exactly an adjacent pair of cameras. + for i in two_cam: + seen = [cam for cam, iv in enumerate(_in_view(frames[i])) if iv] + assert len(seen) == 2, f"frame {i}: expected an adjacent pair, saw {seen}" + assert seen[1] - seen[0] == 1, f"frame {i}: cameras {seen} are not adjacent" + + # It is genuine graduated overlap, not universal: no frame is seen by all cams. + assert max(coverage) < len(manifest["cameras"]) + # The handler is always seen by at least one camera (no blind gap here). + assert min(coverage) >= 1 + + +def test_handler_dwells_at_each_station(tmp_path: Path) -> None: + """The dwell (the sort operation): the handler holds a constant position across + consecutive frames, once per sorting-station x.""" + manifest = _load(tmp_path) + xs = [round(f["points"]["center"]["xyz_gt"][0], 6) for f in _frames(manifest)] + + held = [a for a, b in zip(xs[:-1], xs[1:], strict=True) if a == b] + assert held, "expected held (dwell) frames where the handler pauses" + + # A dwell happens at each of the five sorting-station x positions. + dwell_xs = {x for x, nxt in zip(xs[:-1], xs[1:], strict=True) if x == nxt} + assert len(dwell_xs) == len(STATION_IDS) + + +def test_stable_identity_and_line_topology(tmp_path: Path) -> None: + """One handler with a stable id across every frame; topology emitted with a + station per sorting station (its covering camera) and directed transit edges + chaining the line both ways.""" + manifest = _load(tmp_path) + assert len(manifest["entities"]) == 1 + assert manifest["entities"][0]["id"] == HANDLER_ID + + topo = manifest["topology"] + assert [s["id"] for s in topo["stations"]] == STATION_IDS + by_id = {s["id"]: s["camera_ids"] for s in topo["stations"]} + for i, station_id in enumerate(STATION_IDS): + assert by_id[station_id] == [i] + + pairs = {(e["src"], e["dst"]) for e in topo["edges"]} + for a, b in zip(STATION_IDS[:-1], STATION_IDS[1:], strict=True): + assert (a, b) in pairs and (b, a) in pairs + assert all(e["transit_time_s"] > 0 for e in topo["edges"]) From 28c794e454b3187418aaad76b53e97b31cd1203d Mon Sep 17 00:00:00 2001 From: Bamdad Dashtban Date: Mon, 3 Aug 2026 12:24:31 +0100 Subject: [PATCH 2/5] Add left-to-right cross-camera handoff scene A parcel crosses the space in a straight line under four cameras: a left camera that sees it first and loses it, two right cameras that pick it up as it enters (with overlap bands where two near cameras see it at once), and a wide reference camera off the far-right end that sees the parcel on every frame. The handoff is read straight off the manifest's per-camera in_view flags. build_handoff_ltr_scene is a new top-level export; additive, no existing manifest changes. --- src/multicam_sim/__init__.py | 2 + src/multicam_sim/handoff_ltr.py | 126 ++++++++++++++++++++++++++++++++ tests/test_handoff_ltr.py | 115 +++++++++++++++++++++++++++++ 3 files changed, 243 insertions(+) create mode 100644 src/multicam_sim/handoff_ltr.py create mode 100644 tests/test_handoff_ltr.py diff --git a/src/multicam_sim/__init__.py b/src/multicam_sim/__init__.py index d2b917e..c4e7dd4 100644 --- a/src/multicam_sim/__init__.py +++ b/src/multicam_sim/__init__.py @@ -37,6 +37,7 @@ compute_group_membership, write_group_json, ) +from .handoff_ltr import build_handoff_ltr_scene from .manifest import ( AssumedCalibration, CameraManifest, @@ -144,6 +145,7 @@ "YoloLabel", "build_action_ground_truth", "build_group_formation_scene", + "build_handoff_ltr_scene", "build_parcel_sort_scene", "build_manifest", "build_mtmc_scene", diff --git a/src/multicam_sim/handoff_ltr.py b/src/multicam_sim/handoff_ltr.py new file mode 100644 index 0000000..6a3f42f --- /dev/null +++ b/src/multicam_sim/handoff_ltr.py @@ -0,0 +1,126 @@ +"""Left-to-right handoff scene: a parcel crosses the space, camera to camera. + +A domain-neutral scenario built to show a moving parcel being handed off across +overlapping cameras as it travels in a straight line from left to right (world +``-x -> +x``): + + * a **left** camera frames the left of the space: the parcel starts fully in + its view and gradually leaves it as it moves right; + * two **right** cameras frame the middle and right of the space with + overlapping fields of view, so as the parcel leaves the left camera it + appears first in the middle-right camera and then, over an overlap band, in + both right cameras at once; + * a **wide** camera stands well back and frames the whole line, so it sees the + parcel on EVERY frame — the always-on reference view. + +The result is a graduated coverage hand-off recorded in the manifest's per-camera +``in_view`` flags with no schema change: the left camera's ``in_view`` falls from +true to false as the parcel exits, the two right cameras' rise as it enters (with +an overlap band where both are true), and the wide camera is true throughout. The +parcel keeps ONE stable ``entity.id``, the cross-camera identity a tracker must +preserve across the hand-off. +""" + +from __future__ import annotations + +from .cameras import Camera +from .dsl.motion import Path +from .dsl.rig import CameraRig, StationView +from .entities import Entity +from .scene import Scene +from .topology import CameraTopology, Station, TransitEdge + +_WIDTH = 1280 +_HEIGHT_PX = 720 +_FPS = 10.0 +_NUM_FRAMES = 40 + +#: The parcel travels this straight line, left to right, at torso height. +_START_X = -8.0 +_END_X = 8.0 +_PARCEL_Y = 0.0 +_PARCEL_Z = 1.0 + +#: Near cameras stand back off the line along -y, looking toward it. +_CAM_Y = -5.0 +_CAM_Z = 1.8 +#: The wide reference camera stands off the FAR RIGHT end of the line and looks +#: down its length toward the far left, so the whole path stays in its frustum. +_WIDE_CAM_X = 13.0 +_WIDE_CAM_Y = -6.0 +_WIDE_CAM_Z = 3.0 + +PARCEL_ID = "parcel-1" + +#: Camera ids, in declaration order. +CAM_LEFT = 0 +CAM_MID_RIGHT = 1 +CAM_RIGHT = 2 +CAM_WIDE = 3 + + +def _station_views() -> list[StationView]: + """Four cameras: left, middle-right, right, and a wide always-on reference. + + The three near cameras are aimed at successive x-regions of the line with a + moderate FOV so their coverage overlaps in bands; the wide camera sits far + back with a large FOV so the whole line stays inside its frustum every frame. + """ + return [ + # Left camera: frames the left of the line; the parcel starts here. + StationView(position=(-5.0, _CAM_Y, _CAM_Z), look_at=(-5.0, 0.0, _PARCEL_Z), fov_deg=70.0), + # Middle-right camera: frames the centre; picks the parcel up while it is + # still in the left camera (an overlap band, no blind gap), overlapping + # both neighbours. + StationView(position=(0.0, _CAM_Y, _CAM_Z), look_at=(0.0, 0.0, _PARCEL_Z), fov_deg=75.0), + # Right camera: frames the right end; overlaps the middle-right camera in + # a band, then holds the parcel to the end. + StationView(position=(6.0, _CAM_Y, _CAM_Z), look_at=(6.0, 0.0, _PARCEL_Z), fov_deg=60.0), + # Wide reference camera: stands off the FAR RIGHT end and looks down the + # length of the line toward the far left, so the whole left-to-right path + # runs away from it and stays in view every frame. + StationView( + position=(_WIDE_CAM_X, _WIDE_CAM_Y, _WIDE_CAM_Z), + look_at=(_START_X, 0.0, _PARCEL_Z), + fov_deg=90.0, + ), + ] + + +def _cameras() -> list[Camera]: + return CameraRig.stations(_station_views(), width=_WIDTH, height_px=_HEIGHT_PX) + + +def build_handoff_ltr_scene() -> Scene: + """Construct the deterministic left-to-right cross-camera handoff scene.""" + cameras = _cameras() + + start = (_START_X, _PARCEL_Y, _PARCEL_Z) + end = (_END_X, _PARCEL_Y, _PARCEL_Z) + frames = Path.linear(start, end).compile_frames(_FPS, _NUM_FRAMES, name="center") + entity = Entity(id=PARCEL_ID, frames=frames) + + # Topology: three near stations left -> middle-right -> right, plus the wide + # reference station. Directed transit edges chain the left-to-right hand-off. + transit_s = _NUM_FRAMES / _FPS / 3.0 + topology = CameraTopology( + stations=[ + Station(id="left", camera_ids=[CAM_LEFT]), + Station(id="mid_right", camera_ids=[CAM_MID_RIGHT]), + Station(id="right", camera_ids=[CAM_RIGHT]), + Station(id="wide", camera_ids=[CAM_WIDE]), + ], + edges=[ + TransitEdge(src="left", dst="mid_right", transit_time_s=transit_s), + TransitEdge(src="mid_right", dst="right", transit_time_s=transit_s), + ], + ) + + return Scene( + fps=_FPS, + num_frames=_NUM_FRAMES, + cameras=cameras, + entities=[entity], + occluders=[], + topology=topology, + ) diff --git a/tests/test_handoff_ltr.py b/tests/test_handoff_ltr.py new file mode 100644 index 0000000..48ebf44 --- /dev/null +++ b/tests/test_handoff_ltr.py @@ -0,0 +1,115 @@ +"""Left-to-right cross-camera handoff scene. + +One parcel crosses the space in a straight line (world ``-x -> +x``) under four +cameras: a LEFT camera that sees it first and loses it, two RIGHT cameras +(mid-right, right) that pick it up as it enters — with overlap bands where two +near cameras see it at once — and a WIDE camera off the far-right end, looking +down the length of the line toward the far left, that sees the parcel on EVERY +frame. Coverage is read straight off the manifest's per-camera ``in_view`` flags +(the sim's own projection/visibility), never recomputed here. +""" + +from __future__ import annotations + +import json +import math +from pathlib import Path + +from multicam_sim import build_handoff_ltr_scene, build_manifest, write_manifest +from multicam_sim.handoff_ltr import ( + CAM_LEFT, + CAM_MID_RIGHT, + CAM_RIGHT, + CAM_WIDE, + PARCEL_ID, +) + + +def _load(tmp_path: Path) -> dict: + scene = build_handoff_ltr_scene() + path = tmp_path / "handoff_ltr.json" + write_manifest(scene, path) + return json.loads(path.read_text()) + + +def _frames(manifest: dict) -> list[dict]: + return manifest["entities"][0]["frames"] + + +def _in_view(frame: dict) -> list[bool]: + return [o["in_view"] for o in frame["points"]["center"]["per_cam"]] + + +def test_deterministic_byte_stable_manifest() -> None: + """Two independent builds serialise to the exact same JSON bytes.""" + first = build_manifest(build_handoff_ltr_scene()).to_json() + second = build_manifest(build_handoff_ltr_scene()).to_json() + assert first == second + + +def test_manifest_is_strict_finite_json(tmp_path: Path) -> None: + """Every projected uv is finite (valid strict JSON, no Infinity/NaN).""" + manifest = _load(tmp_path) + for frame in _frames(manifest): + for obs in frame["points"]["center"]["per_cam"]: + assert all(math.isfinite(c) for c in obs["uv"]) + + +def test_parcel_moves_left_to_right(tmp_path: Path) -> None: + """The parcel's world x is monotonically non-decreasing across the frames.""" + manifest = _load(tmp_path) + xs = [f["points"]["center"]["xyz_gt"][0] for f in _frames(manifest)] + assert xs[0] < xs[-1], "parcel should travel toward +x" + assert all(b >= a for a, b in zip(xs[:-1], xs[1:], strict=True)) + + +def test_wide_camera_sees_parcel_every_frame(tmp_path: Path) -> None: + """The far-right wide camera (looking down the line to the far left) is the + always-on reference: the parcel is in_view on it on EVERY frame.""" + manifest = _load(tmp_path) + frames = _frames(manifest) + assert all(_in_view(f)[CAM_WIDE] for f in frames) + + +def test_left_camera_sees_then_loses_the_parcel(tmp_path: Path) -> None: + """The LEFT camera sees the parcel at the start and loses it once the parcel + has moved right (a true->false transition, and it does not come back).""" + manifest = _load(tmp_path) + seen = [_in_view(f)[CAM_LEFT] for f in _frames(manifest)] + assert seen[0], "left camera should see the parcel at the start" + assert not seen[-1], "left camera should have lost the parcel by the end" + # One contiguous seen-then-gone run: after the first drop it never returns. + last_seen = max(i for i, v in enumerate(seen) if v) + assert all(not v for v in seen[last_seen + 1 :]) + assert all(seen[: last_seen + 1]), "left coverage is one contiguous run" + + +def test_right_cameras_pick_the_parcel_up(tmp_path: Path) -> None: + """The two RIGHT cameras enter after the start (the parcel is NOT in either at + frame 0) and hold it at the end, and the right camera is the final holder.""" + manifest = _load(tmp_path) + frames = _frames(manifest) + first = _in_view(frames[0]) + last = _in_view(frames[-1]) + assert not first[CAM_MID_RIGHT] and not first[CAM_RIGHT], ( + "right cameras should not yet see the parcel at the start" + ) + assert last[CAM_RIGHT], "the right camera should hold the parcel at the end" + + +def test_handoff_has_overlap_and_no_near_camera_blind_gap(tmp_path: Path) -> None: + """The handoff is smooth: on some frames two NEAR cameras (left/mid/right, not + the wide reference) see the parcel at once (overlap bands), and there is never + a frame where NO near camera sees it (no blind gap in the near coverage).""" + manifest = _load(tmp_path) + near = (CAM_LEFT, CAM_MID_RIGHT, CAM_RIGHT) + near_counts = [sum(_in_view(f)[c] for c in near) for f in _frames(manifest)] + assert max(near_counts) >= 2, "expected an overlap band of >=2 near cameras" + assert min(near_counts) >= 1, "no near-camera blind gap along the path" + + +def test_stable_identity(tmp_path: Path) -> None: + """One parcel with a stable id across every frame.""" + manifest = _load(tmp_path) + assert len(manifest["entities"]) == 1 + assert manifest["entities"][0]["id"] == PARCEL_ID From 68714f42976a39b6e8c362865300b72f8a25bd55 Mon Sep 17 00:00:00 2001 From: Bamdad Dashtban Date: Mon, 3 Aug 2026 12:24:39 +0100 Subject: [PATCH 3/5] Add parcel-sort manifest to the byte-golden safety net Captures the parcel-sort scene's serialized manifest as a golden fixture and adds it to test_manifest_golden's parametrized structure check, so the wire contract (key order, field presence, float precision) is pinned for this scene too. The fixture is generated from build_manifest(scene).to_json(), the same serializer the test compares against. --- .../fixtures/manifest_golden/parcel_sort.json | 2938 +++++++++++++++++ tests/test_manifest_golden.py | 8 +- 2 files changed, 2945 insertions(+), 1 deletion(-) create mode 100644 tests/fixtures/manifest_golden/parcel_sort.json diff --git a/tests/fixtures/manifest_golden/parcel_sort.json b/tests/fixtures/manifest_golden/parcel_sort.json new file mode 100644 index 0000000..1bc30a3 --- /dev/null +++ b/tests/fixtures/manifest_golden/parcel_sort.json @@ -0,0 +1,2938 @@ +{ + "cameras": [ + { + "id": 0, + "K": [ + [ + 914.0147243149534, + 0.0, + 640.0 + ], + [ + 0.0, + 914.0147243149534, + 360.0 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ], + "R": [ + [ + 1.0, + -0.0, + 0.0 + ], + [ + 0.0, + -0.28734788556634544, + -0.9578262852211513 + ], + [ + 0.0, + 0.9578262852211513, + -0.28734788556634544 + ] + ], + "t": [ + 0.0, + 0.9578262852211512, + 4.463470489130565 + ], + "width": 1280, + "height": 720, + "convention": "opencv_rdf" + }, + { + "id": 1, + "K": [ + [ + 914.0147243149534, + 0.0, + 640.0 + ], + [ + 0.0, + 914.0147243149534, + 360.0 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ], + "R": [ + [ + 1.0, + -0.0, + 0.0 + ], + [ + 0.0, + -0.28734788556634544, + -0.9578262852211513 + ], + [ + 0.0, + 0.9578262852211513, + -0.28734788556634544 + ] + ], + "t": [ + -3.0, + 0.9578262852211512, + 4.463470489130565 + ], + "width": 1280, + "height": 720, + "convention": "opencv_rdf" + }, + { + "id": 2, + "K": [ + [ + 914.0147243149534, + 0.0, + 640.0 + ], + [ + 0.0, + 914.0147243149534, + 360.0 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ], + "R": [ + [ + 1.0, + -0.0, + 0.0 + ], + [ + 0.0, + -0.28734788556634544, + -0.9578262852211513 + ], + [ + 0.0, + 0.9578262852211513, + -0.28734788556634544 + ] + ], + "t": [ + -6.0, + 0.9578262852211512, + 4.463470489130565 + ], + "width": 1280, + "height": 720, + "convention": "opencv_rdf" + }, + { + "id": 3, + "K": [ + [ + 914.0147243149534, + 0.0, + 640.0 + ], + [ + 0.0, + 914.0147243149534, + 360.0 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ], + "R": [ + [ + 1.0, + -0.0, + 0.0 + ], + [ + 0.0, + -0.28734788556634544, + -0.9578262852211513 + ], + [ + 0.0, + 0.9578262852211513, + -0.28734788556634544 + ] + ], + "t": [ + -9.0, + 0.9578262852211512, + 4.463470489130565 + ], + "width": 1280, + "height": 720, + "convention": "opencv_rdf" + }, + { + "id": 4, + "K": [ + [ + 914.0147243149534, + 0.0, + 640.0 + ], + [ + 0.0, + 914.0147243149534, + 360.0 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ], + "R": [ + [ + 1.0, + -0.0, + 0.0 + ], + [ + 0.0, + -0.28734788556634544, + -0.9578262852211513 + ], + [ + 0.0, + 0.9578262852211513, + -0.28734788556634544 + ] + ], + "t": [ + -12.0, + 0.9578262852211512, + 4.463470489130565 + ], + "width": 1280, + "height": 720, + "convention": "opencv_rdf" + } + ], + "fps": 10.0, + "num_frames": 41, + "entities": [ + { + "id": "handler-1", + "frames": [ + { + "frame": 0, + "points": { + "center": { + "xyz_gt": [ + 0.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 639.9999999999999, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + -16.600496021019993, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -673.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -1329.8014880630594, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1986.4019840840797, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 1, + "points": { + "center": { + "xyz_gt": [ + 0.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 639.9999999999999, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + -16.600496021019993, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -673.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -1329.8014880630594, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1986.4019840840797, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 2, + "points": { + "center": { + "xyz_gt": [ + 0.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 639.9999999999999, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + -16.600496021019993, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -673.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -1329.8014880630594, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1986.4019840840797, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 3, + "points": { + "center": { + "xyz_gt": [ + 0.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 639.9999999999999, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + -16.600496021019993, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -673.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -1329.8014880630594, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1986.4019840840797, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 4, + "points": { + "center": { + "xyz_gt": [ + 0.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 639.9999999999999, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + -16.600496021019993, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -673.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -1329.8014880630594, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1986.4019840840797, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 5, + "points": { + "center": { + "xyz_gt": [ + 0.5999999999999999, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 771.3200992042039, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 114.71960318318396, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -541.880892837836, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -1198.4813888588558, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1855.0818848798758, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 6, + "points": { + "center": { + "xyz_gt": [ + 1.1999999999999997, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 902.6401984084079, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 246.0397023873879, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -410.56079363363204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -1067.1612896546517, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1723.761785675672, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 7, + "points": { + "center": { + "xyz_gt": [ + 1.7999999999999996, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1033.9602976126118, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 377.3598015915918, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -279.2406944294281, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -935.8411904504477, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1592.441686471468, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 8, + "points": { + "center": { + "xyz_gt": [ + 2.4000000000000004, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1165.280396816816, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 508.6799007957961, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -147.92059522522393, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -804.5210912462436, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1461.1215872672637, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 9, + "points": { + "center": { + "xyz_gt": [ + 3.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1296.6004960210198, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 639.9999999999999, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -16.60049602102006, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -673.2009920420397, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1329.8014880630599, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 10, + "points": { + "center": { + "xyz_gt": [ + 3.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1296.6004960210198, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 639.9999999999999, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -16.60049602102006, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -673.2009920420397, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1329.8014880630599, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 11, + "points": { + "center": { + "xyz_gt": [ + 3.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1296.6004960210198, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 639.9999999999999, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -16.60049602102006, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -673.2009920420397, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1329.8014880630599, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 12, + "points": { + "center": { + "xyz_gt": [ + 3.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1296.6004960210198, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 639.9999999999999, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -16.60049602102006, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -673.2009920420397, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1329.8014880630599, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 13, + "points": { + "center": { + "xyz_gt": [ + 3.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1296.6004960210198, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 639.9999999999999, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + -16.60049602102006, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -673.2009920420397, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1329.8014880630599, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 14, + "points": { + "center": { + "xyz_gt": [ + 3.599999999999999, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1427.9205952252235, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 771.3200992042036, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 114.71960318318365, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -541.880892837836, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1198.4813888588562, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 15, + "points": { + "center": { + "xyz_gt": [ + 4.199999999999999, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1559.2406944294275, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 902.6401984084076, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 246.03970238738768, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -410.56079363363193, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -1067.1612896546521, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 16, + "points": { + "center": { + "xyz_gt": [ + 4.800000000000001, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1690.5607936336319, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1033.9602976126123, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 377.35980159159215, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -279.2406944294275, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -935.8411904504477, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 17, + "points": { + "center": { + "xyz_gt": [ + 5.3999999999999995, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1821.8808928378355, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1165.2803968168157, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 508.67990079579573, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -147.92059522522388, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -804.521091246244, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 18, + "points": { + "center": { + "xyz_gt": [ + 6.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1953.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1296.60049602102, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 640.0, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -16.600496021019627, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -673.2009920420398, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 19, + "points": { + "center": { + "xyz_gt": [ + 6.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1953.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1296.60049602102, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 640.0, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -16.600496021019627, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -673.2009920420398, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 20, + "points": { + "center": { + "xyz_gt": [ + 6.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1953.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1296.60049602102, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 640.0, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -16.600496021019627, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -673.2009920420398, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 21, + "points": { + "center": { + "xyz_gt": [ + 6.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1953.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1296.60049602102, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 640.0, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -16.600496021019627, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -673.2009920420398, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 22, + "points": { + "center": { + "xyz_gt": [ + 6.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 1953.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1296.60049602102, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 640.0, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + -16.600496021019627, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -673.2009920420398, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 23, + "points": { + "center": { + "xyz_gt": [ + 6.599999999999998, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 2084.521091246243, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1427.9205952252235, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 771.3200992042034, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 114.71960318318375, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -541.8808928378364, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 24, + "points": { + "center": { + "xyz_gt": [ + 7.199999999999998, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 2215.8411904504474, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1559.2406944294275, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 902.6401984084074, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 246.0397023873878, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -410.5607936336324, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 25, + "points": { + "center": { + "xyz_gt": [ + 7.799999999999999, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 2347.1612896546517, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1690.5607936336316, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1033.9602976126118, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 377.35980159159203, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -279.2406944294281, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 26, + "points": { + "center": { + "xyz_gt": [ + 8.399999999999999, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 2478.481388858855, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1821.8808928378355, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1165.2803968168155, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 508.67990079579585, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -147.9205952252243, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 27, + "points": { + "center": { + "xyz_gt": [ + 9.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 2609.80148806306, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1953.2009920420398, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1296.6004960210198, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 640.0000000000001, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -16.60049602102006, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 28, + "points": { + "center": { + "xyz_gt": [ + 9.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 2609.80148806306, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1953.2009920420398, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1296.6004960210198, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 640.0000000000001, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -16.60049602102006, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 29, + "points": { + "center": { + "xyz_gt": [ + 9.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 2609.80148806306, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1953.2009920420398, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1296.6004960210198, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 640.0000000000001, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -16.60049602102006, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 30, + "points": { + "center": { + "xyz_gt": [ + 9.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 2609.80148806306, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1953.2009920420398, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1296.6004960210198, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 640.0000000000001, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -16.60049602102006, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 31, + "points": { + "center": { + "xyz_gt": [ + 9.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 2609.80148806306, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 1953.2009920420398, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1296.6004960210198, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 640.0000000000001, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + -16.60049602102006, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 32, + "points": { + "center": { + "xyz_gt": [ + 9.600000000000001, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 2741.121587267264, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 2084.521091246244, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1427.9205952252244, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 771.3200992042046, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + 114.7196031831844, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 33, + "points": { + "center": { + "xyz_gt": [ + 10.2, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 2872.4416864714676, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 2215.841190450448, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1559.240694429428, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 902.6401984084082, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + 246.03970238738802, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 34, + "points": { + "center": { + "xyz_gt": [ + 10.799999999999999, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 3003.7617856756715, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 2347.1612896546512, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1690.5607936336314, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 1033.9602976126118, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + 377.35980159159163, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 35, + "points": { + "center": { + "xyz_gt": [ + 11.399999999999999, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 3135.0818848798754, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 2478.481388858855, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1821.8808928378355, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 1165.2803968168157, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + 508.6799007957956, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 36, + "points": { + "center": { + "xyz_gt": [ + 12.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 3266.40198408408, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 2609.80148806306, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1953.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 1296.6004960210203, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + 640.0000000000001, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 37, + "points": { + "center": { + "xyz_gt": [ + 12.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 3266.40198408408, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 2609.80148806306, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1953.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 1296.6004960210203, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + 640.0000000000001, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 38, + "points": { + "center": { + "xyz_gt": [ + 12.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 3266.40198408408, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 2609.80148806306, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1953.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 1296.6004960210203, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + 640.0000000000001, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 39, + "points": { + "center": { + "xyz_gt": [ + 12.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 3266.40198408408, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 2609.80148806306, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1953.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 1296.6004960210203, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + 640.0000000000001, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + } + ] + } + } + }, + { + "frame": 40, + "points": { + "center": { + "xyz_gt": [ + 12.0, + 0.0, + 1.0 + ], + "per_cam": [ + { + "cam": 0, + "uv": [ + 3266.40198408408, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 1, + "uv": [ + 2609.80148806306, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 2, + "uv": [ + 1953.20099204204, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 3, + "uv": [ + 1296.6004960210203, + 360.0 + ], + "in_view": false, + "visible": false, + "occ_frac": 0.0 + }, + { + "cam": 4, + "uv": [ + 640.0000000000001, + 360.0 + ], + "in_view": true, + "visible": true, + "occ_frac": 0.0 + } + ] + } + } + } + ] + } + ], + "topology": { + "stations": [ + { + "id": "station_1", + "camera_ids": [ + 0 + ] + }, + { + "id": "station_2", + "camera_ids": [ + 1 + ] + }, + { + "id": "station_3", + "camera_ids": [ + 2 + ] + }, + { + "id": "station_4", + "camera_ids": [ + 3 + ] + }, + { + "id": "station_5", + "camera_ids": [ + 4 + ] + } + ], + "edges": [ + { + "src": "station_1", + "dst": "station_2", + "transit_time_s": 0.5 + }, + { + "src": "station_2", + "dst": "station_1", + "transit_time_s": 0.5 + }, + { + "src": "station_2", + "dst": "station_3", + "transit_time_s": 0.5 + }, + { + "src": "station_3", + "dst": "station_2", + "transit_time_s": 0.5 + }, + { + "src": "station_3", + "dst": "station_4", + "transit_time_s": 0.5 + }, + { + "src": "station_4", + "dst": "station_3", + "transit_time_s": 0.5 + }, + { + "src": "station_4", + "dst": "station_5", + "transit_time_s": 0.5 + }, + { + "src": "station_5", + "dst": "station_4", + "transit_time_s": 0.5 + } + ] + } +} \ No newline at end of file diff --git a/tests/test_manifest_golden.py b/tests/test_manifest_golden.py index 86092e9..0e7df60 100644 --- a/tests/test_manifest_golden.py +++ b/tests/test_manifest_golden.py @@ -21,7 +21,12 @@ import pytest -from multicam_sim import build_manifest, build_mtmc_scene, build_smoke_scene +from multicam_sim import ( + build_manifest, + build_mtmc_scene, + build_parcel_sort_scene, + build_smoke_scene, +) from multicam_sim.scene import Scene _FIXTURES = Path(__file__).parent / "fixtures" / "manifest_golden" @@ -67,6 +72,7 @@ def _same_shape(got: object, ref: object, path: str = "") -> None: ("smoke", build_smoke_scene), ("mtmc", build_mtmc_scene), ("assembly", _assembly_scene), + ("parcel_sort", build_parcel_sort_scene), ], ) def test_manifest_json_matches_golden(name: str, scene_factory: object) -> None: From 725c2390ce5c463bf7e4402bafa2439bf4e1d97a Mon Sep 17 00:00:00 2001 From: Bamdad Dashtban Date: Mon, 3 Aug 2026 12:24:39 +0100 Subject: [PATCH 4/5] Add 3D scene viewer script Renders a scene manifest as a single static 3D world view: every camera drawn as a frustum pointing along its optical axis, a ground plane at z=0, and each entity's ground-truth 3D trajectory over the frames. Makes camera coverage and overlap directly visible for the overlapping-coverage scenes. matplotlib is imported lazily and is not a package dependency. --- scripts/view_scene_3d.py | 207 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 scripts/view_scene_3d.py diff --git a/scripts/view_scene_3d.py b/scripts/view_scene_3d.py new file mode 100644 index 0000000..476aad3 --- /dev/null +++ b/scripts/view_scene_3d.py @@ -0,0 +1,207 @@ +"""Render a scene manifest as one 3D world view: camera locations + trajectory. + +A single static 3D figure showing where every camera sits in the world (drawn as +a small view-cone / frustum pointing along its optical axis), a ground plane, and +each entity's ground-truth 3D trajectory over the frames. This is the "see the +space" view -- unlike the per-camera tiles of ``record_multiview.py``, it draws +the whole scene once so camera coverage and overlap are directly visible. + +Geometry follows ``multicam_sim.cameras.Camera``: ``R`` is the world->camera +rotation with rows ``[right, down, forward]`` (OpenCV, +z forward) and ``t`` is +the world->camera translation, so the camera centre is ``C = -R^T @ t`` and the +frustum edges are the back-projected image corners ``R^T @ (K^-1 @ [u, v, 1])``. +World up is +z; the ground plane is drawn at z = 0. + +Works on any manifest with the standard schema (``cameras[*].{K,R,t,width, +height}`` and ``entities[*].frames[*].points[*].xyz_gt``); defaults to the +bundled MTMC golden fixture. + +``matplotlib`` is imported lazily inside :func:`main` (it is not a package +dependency), mirroring the lazy-import pattern in ``scripts/record_multiview.py``. +Run:: + + uv run --with matplotlib python scripts/view_scene_3d.py + uv run --with matplotlib python scripts/view_scene_3d.py --manifest PATH --out PATH +""" + +from __future__ import annotations + +import argparse +import json +from pathlib import Path +from typing import TYPE_CHECKING, Any + +import numpy as np + +if TYPE_CHECKING: + from numpy.typing import NDArray + +_ROOT = Path(__file__).resolve().parent.parent +_DEFAULT_MANIFEST = _ROOT / "tests" / "fixtures" / "manifest_golden" / "mtmc.json" +_DEFAULT_OUT = _ROOT / "docs" / "assets" / "scene_3d.png" + +# How far in front of each camera to draw the frustum apex (world units). +_FRUSTUM_DEPTH = 1.2 + + +def _camera_centre( + rotation: NDArray[np.float64], translation: NDArray[np.float64] +) -> NDArray[np.float64]: + """World-space camera centre ``C = -R^T @ t``.""" + return -rotation.T @ translation + + +def _frustum_corners( + intrinsics: NDArray[np.float64], + rotation: NDArray[np.float64], + centre: NDArray[np.float64], + width: float, + height: float, + depth: float, +) -> NDArray[np.float64]: + """The four image-corner rays back-projected to ``depth`` in world space. + + A pixel ``[u, v, 1]`` back-projects to the world ray direction + ``R^T @ (K^-1 @ [u, v, 1])``; scaling so the forward (+z camera) component + equals ``depth`` puts the corner a fixed distance in front of the camera. + """ + inv_k = np.linalg.inv(intrinsics) + corners_px = np.array( + [[0.0, 0.0], [width, 0.0], [width, height], [0.0, height]], + dtype=np.float64, + ) + out = np.empty((4, 3), dtype=np.float64) + for i, (u, v) in enumerate(corners_px): + cam_ray = inv_k @ np.array([u, v, 1.0], dtype=np.float64) + cam_ray = cam_ray / cam_ray[2] * depth # forward (+z) component == depth + out[i] = centre + rotation.T @ cam_ray + return out + + +def _load_manifest(path: Path) -> dict[str, Any]: + with path.open("r", encoding="utf-8") as fh: + data: dict[str, Any] = json.load(fh) + return data + + +def _trajectories(manifest: dict[str, Any]) -> list[tuple[str, NDArray[np.float64]]]: + """Per-(entity, point) ground-truth 3D polylines over the frames.""" + out: list[tuple[str, NDArray[np.float64]]] = [] + for entity in manifest.get("entities", []): + by_point: dict[str, list[list[float]]] = {} + for frame in entity.get("frames", []): + for name, point in frame.get("points", {}).items(): + xyz = point.get("xyz_gt") + if xyz is not None: + by_point.setdefault(name, []).append(list(xyz)) + for name, coords in by_point.items(): + label = entity.get("id", "object") + label = label if name == "center" else f"{label}:{name}" + out.append((str(label), np.asarray(coords, dtype=np.float64))) + return out + + +def render(manifest: dict[str, Any], out_path: Path) -> Path: + """Render the 3D scene view to ``out_path`` (PNG) and return the path.""" + import matplotlib + + matplotlib.use("Agg") # headless-safe: no display needed + import matplotlib.pyplot as plt + + fig = plt.figure(figsize=(9, 7)) + ax = fig.add_subplot(111, projection="3d") + + all_points: list[NDArray[np.float64]] = [] + + # Cameras: centre marker + a wireframe frustum to the four image corners. + for cam in manifest.get("cameras", []): + intrinsics = np.asarray(cam["K"], dtype=np.float64) + rotation = np.asarray(cam["R"], dtype=np.float64) + translation = np.asarray(cam["t"], dtype=np.float64) + centre = _camera_centre(rotation, translation) + corners = _frustum_corners( + intrinsics, + rotation, + centre, + float(cam["width"]), + float(cam["height"]), + _FRUSTUM_DEPTH, + ) + ax.scatter(*centre, color="crimson", s=40, depthshade=False) + ax.text(*centre, f" cam {cam['id']}", color="crimson", fontsize=8) + for corner in corners: + edge = np.vstack([centre, corner]) + ax.plot(edge[:, 0], edge[:, 1], edge[:, 2], color="crimson", linewidth=0.8) + loop = np.vstack([corners, corners[0]]) + ax.plot(loop[:, 0], loop[:, 1], loop[:, 2], color="crimson", linewidth=0.8) + all_points.append(centre[None, :]) + all_points.append(corners) + + # Trajectories: one polyline per entity point. + for label, coords in _trajectories(manifest): + ax.plot( + coords[:, 0], + coords[:, 1], + coords[:, 2], + marker="o", + markersize=3, + linewidth=1.5, + label=f"trajectory: {label}", + ) + all_points.append(coords) + + if not all_points: + raise ValueError("manifest has no cameras or trajectories to draw") + pts = np.vstack(all_points) + + # Ground plane at z = 0 spanning the scene's xy extent. + pad = 1.0 + x_min, y_min = pts[:, 0].min() - pad, pts[:, 1].min() - pad + x_max, y_max = pts[:, 0].max() + pad, pts[:, 1].max() + pad + gx, gy = np.meshgrid( + np.linspace(x_min, x_max, 2), + np.linspace(y_min, y_max, 2), + ) + ax.plot_surface(gx, gy, np.zeros_like(gx), alpha=0.12, color="steelblue") + + ax.set_xlabel("x") + ax.set_ylabel("y") + ax.set_zlabel("z (up)") + ax.set_title("Scene: camera locations and object trajectory") + ax.legend(loc="upper left", fontsize=8) + + # Equal aspect over the combined bounds so directions are not skewed. + span = pts.max(axis=0) - pts.min(axis=0) + span = np.where(span > 0, span, 1.0) + ax.set_box_aspect(tuple(span)) + + out_path.parent.mkdir(parents=True, exist_ok=True) + fig.savefig(out_path, dpi=130, bbox_inches="tight") + plt.close(fig) + return out_path + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--manifest", + type=Path, + default=_DEFAULT_MANIFEST, + help="scene manifest JSON (default: bundled MTMC golden fixture)", + ) + parser.add_argument( + "--out", + type=Path, + default=_DEFAULT_OUT, + help="output PNG path (default: docs/assets/scene_3d.png)", + ) + args = parser.parse_args() + + manifest = _load_manifest(args.manifest) + out_path = render(manifest, args.out) + size = out_path.stat().st_size + print(f"wrote {out_path} ({size} bytes)") + + +if __name__ == "__main__": + main() From 4a72ab6bda5c4ff7d7fa03f45e5c2e3ff254caa5 Mon Sep 17 00:00:00 2001 From: Bamdad Dashtban Date: Mon, 3 Aug 2026 12:24:39 +0100 Subject: [PATCH 5/5] Add rendered multiview assets for the handoff scene Contact-sheet gif/mp4 of the four-camera left-to-right handoff, showing the parcel entering and leaving each camera's view across the rig. --- docs/assets/handoff_ltr_multiview.gif | Bin 0 -> 208433 bytes docs/assets/handoff_ltr_multiview.mp4 | Bin 0 -> 21723 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/handoff_ltr_multiview.gif create mode 100644 docs/assets/handoff_ltr_multiview.mp4 diff --git a/docs/assets/handoff_ltr_multiview.gif b/docs/assets/handoff_ltr_multiview.gif new file mode 100644 index 0000000000000000000000000000000000000000..8584ae411a34ae992ddfd212f378d46cb0883574 GIT binary patch literal 208433 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 SmnJ^7PYmof>Qjdy>;D7T);16T literal 0 HcmV?d00001 diff --git a/docs/assets/handoff_ltr_multiview.mp4 b/docs/assets/handoff_ltr_multiview.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..e41664b53dc5e98c30c0be089dacfc6b503f402d GIT binary patch literal 21723 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 literal 0 HcmV?d00001