Goal
Give users direct control over where the video appears on screen, how big it is, and whether measurement overlays are visible — without breaking alignment between the video and overlay tools (coordinate system, calibration, measuring tape, angle tool).
Desired behavior
- Reposition the video panel (and all attached overlays) by dragging
- Scale the video display (e.g. 50%–200%) with a resize control, anchored so overlays stay geometrically aligned with the video
- Toggle overlay visibility (show/hide measurement tools) with a single control
- Overlay drag/keyboard interaction should account for the current offset and scale
Context
An exploratory local branch (videoScaling, Feb 2026) prototyped this with:
- A
VideoControlFrameNode — semi-transparent header with drag handle, eye toggle, and scale label
- Model properties:
videoOffsetProperty, videoDisplayScaleProperty, videoOverlaysVisibleProperty
- Updated overlay nodes to convert between video-local and screen coordinates using offset + scale
That branch was never merged. The sim has since been reorganized (screen-name/ → track-lab/), and current main has related panel/header/scaling work (panelSizeScaleProperty, panelHeaderBar, etc.). This issue captures the user-facing intent so it can be implemented cleanly against the current codebase rather than reviving the old branch.
Acceptance criteria (draft)
Goal
Give users direct control over where the video appears on screen, how big it is, and whether measurement overlays are visible — without breaking alignment between the video and overlay tools (coordinate system, calibration, measuring tape, angle tool).
Desired behavior
Context
An exploratory local branch (
videoScaling, Feb 2026) prototyped this with:VideoControlFrameNode— semi-transparent header with drag handle, eye toggle, and scale labelvideoOffsetProperty,videoDisplayScaleProperty,videoOverlaysVisiblePropertyThat branch was never merged. The sim has since been reorganized (
screen-name/→track-lab/), and currentmainhas related panel/header/scaling work (panelSizeScaleProperty,panelHeaderBar, etc.). This issue captures the user-facing intent so it can be implemented cleanly against the current codebase rather than reviving the old branch.Acceptance criteria (draft)
npm run lint && npm run check && npm run buildpass