Skip to content

Assembly-line scene builder: workstations + moving operator + overlapping camera rig #84

Description

@bamdadd

Part of #83.

Build an assembly-line scene: an operator (COCO-17 skeleton) moves along a line of 4-5 fixed workstations while 4-5 cameras give overlapping coverage of the line. Analytic geometry only (no renderer).

Scope

  • New scene builder, e.g. src/multicam_sim/assembly_line.py (build_assembly_line_scene(seed=0, fps=..., ...) -> Scene) mirroring mtmc.build_mtmc_scene and examples/assembly_station.py.
  • Workstations in 3D along the line, domain-neutral ids: station_1 (frame/base), station_2 (subassembly), station_3 (fasten), station_4 (inspect), station_5 (pack) — names illustrative; keep them generic. Use topology.Station + TransitEdge for adjacency/transit time down the line.
  • Camera rig via dsl/rig.CameraRig — overlapping FOVs over the line (start from .ring(...) for guaranteed overlap; a .stations(...)/.custom(...) layout with deliberate overlap between adjacent stations is the stretch goal).
  • Operator motion via the dsl/motion path DSL: walk station_1 -> station_2 -> ... -> station_5 with a dwell (pause = the operation) at each station. Chain with .then(...), pace with .at_speed(...).
  • Emit the standard manifest (calibration + per-cam projection + in_view/visible) plus the topology field.

Acceptance

  • build_assembly_line_scene() is deterministic (byte-stable manifest for a fixed seed), with a golden/round-trip test in the repo style.
  • The operator is in_view on at least two cameras simultaneously during station-to-station transits (proves overlap).
  • Pure typed pydantic, mypy-strict clean, ruff clean. No renderer/GL dependency.

Pointers

  • src/multicam_sim/mtmc.py, examples/assembly_station.py, src/multicam_sim/dsl/rig.py, src/multicam_sim/dsl/motion.py, src/multicam_sim/topology.py, src/multicam_sim/pose.py.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions