Skip to content

3D viewer: add an animated / orbiting mode (rotate + play trajectory) #88

Description

@bamdadd

The new 3D scene viewer (scripts/view_scene_3d.py, added on main) renders a static PNG: ground plane + camera frustums + object trajectory. Add motion so coverage can be inspected from any angle.

Scope

  • An --animate (or --orbit) mode that either (a) exports a rotating GIF/MP4 (azimuth sweep around the scene), and/or (b) plays the object moving frame-by-frame along its trajectory (a growing/­marker-highlighted polyline).
  • Keep the existing static-PNG default untouched; animation is opt-in.
  • Follow the repo's lazy-import + headless pattern (matplotlib imported inside main; Agg for headless, see scripts/record_multiview.py for the imageio GIF pattern).

Acceptance

  • python scripts/view_scene_3d.py --animate --out scene.gif writes a non-empty GIF on macOS/Linux headless.
  • Static PNG path unchanged. A tiny smoke test (headless export is non-empty). ruff + mypy clean per repo config.

Pointers

  • scripts/view_scene_3d.py, scripts/record_multiview.py (GIF/imageio lazy-import), src/multicam_sim/handoff_ltr.py / assembly_line.py (scenes to view).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions