Skip to content

3D scene viewer + overlapping-camera scenes (handoff + assembly line) - #93

Closed
bamdadd wants to merge 2 commits into
mainfrom
feat/scenes-and-3d-viewer
Closed

3D scene viewer + overlapping-camera scenes (handoff + assembly line)#93
bamdadd wants to merge 2 commits into
mainfrom
feat/scenes-and-3d-viewer

Conversation

@bamdadd

@bamdadd bamdadd commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Adds a 3D scene viewer and two domain-neutral overlapping-camera scenes, all deterministic and tested.

3D scene viewer (scripts/view_scene_3d.py)

A static 3D world view of any scene manifest: ground plane, each camera drawn as a view-cone at its calibrated world position, and every entity's ground-truth 3D trajectory. Makes camera coverage/overlap directly visible instead of inferring it from per-camera tiles. matplotlib lazy-imported + headless (Agg), so not a package dependency. Featured in the README.

Scenes

  • assembly_line — an operator walks five workstations under five cameras with graduated (adjacent-pair) overlap; topology + per-station dwell + golden manifest (Assembly-line scene builder: workstations + moving operator + overlapping camera rig #84).
  • handoff_ltr — one object crosses left-to-right under four cameras: a left camera that sees it then loses it, two right cameras that pick it up with overlap bands (no near-camera blind gap), and a wide camera off the far-right end looking down the line that sees the object every frame.

Both read coverage off the manifest's own per-camera in_view flags. Tests cover determinism, coverage story, topology; full suite 299 passed / 4 skipped, ruff + mypy clean.

Follow-ups tracked in #88-#92 (animated viewer, coverage colouring/metrics, parametrization, skeleton operator).

bamdadd added 2 commits July 30, 2026 14:16
…pace

A static 3D world view of a scene manifest: each camera drawn as a view-cone at
its calibrated world position, a ground plane, and every entity's ground-truth
3D trajectory. Makes camera coverage and overlap directly visible instead of
inferring it from per-camera tiles. Schema-driven, works on any manifest;
defaults to the bundled MTMC golden fixture. matplotlib is lazy-imported and
headless-safe (Agg), so it is not a package dependency.

  uv run --with matplotlib python scripts/view_scene_3d.py

Featured in the README next to the existing hero renders.
…t handoff

Two domain-neutral multi-camera scenes with overlapping coverage, both
deterministic and covered by tests:

- assembly_line: an operator walks five workstations under five cameras with
  graduated overlap (issue #84); topology + per-station dwell + golden manifest.
- handoff_ltr: one object crosses the space left-to-right under four cameras —
  a left camera that sees it then loses it, two right cameras that pick it up
  with overlap bands (no near-camera blind gap), and a wide camera off the
  far-right end looking down the line that sees the object every frame.

Both read coverage off the manifest's own per-camera in_view flags. The 3D
scene viewer (scripts/view_scene_3d.py) draws either.
@bamdadd

bamdadd commented Jul 30, 2026

Copy link
Copy Markdown
Owner Author

Closing: opened by a runaway automated process, not authorized work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant