Load a plate (fit to width, drag/pinch/scroll to place), comp the live
camera over it through a polygon mask drawn around the foreground.
Plate, placement and mask are remembered between visits.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Supervisors log scene/shot/take, per-camera settings, VFX tags,
references and photos on iPhone/iPad; works offline, stored on device
(localStorage + IndexedDB for photos). Exports CSV + photos and a
.json backup/restore.
/set/report/view renders a printable A4 report. "Send report link"
carries the day's log compressed in the URL fragment, so post gets
a formatted page with Save PDF and nothing is uploaded.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Phones held sideways get the picture full height with a narrow control
column on the right (new `land` Tailwind variant), settings as a side panel
- Framing crop (Full / 16:9 / 1.85:1 / 2.39:1, default 2.39:1) applied to the
picture, taps and stats, so the verdict only counts what's in frame
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Phone camera or photo -> WebGL shader that classifies every pixel against
the sampled screen colour; colour-blind friendly (stripes, motion, words)
- Views: Spill, Screen (flat colour), rough live Key, Evenness
- Spill = worse of lean toward the screen hue and the green/blue despill
limit, tuned on a real Alexa car-interior plate (teal screen, green bounce)
- Plain-English verdict incl. widespread colour cast; tap for readouts
- Pick screen / pick white (neutral reference), freeze, exposure/WB lock
- Service worker caches each /set page under its own path (spill page no
longer overwrites the markers page offline); link from /set
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Viewer ignores taps, swipes, pinch/double-tap zoom, long-press menus,
keys and Back; hold the top-left corner 3 s to show controls, which
re-lock after 6 s or via the Lock button
- Back is trapped with a guard history entry; Close unwinds it
- Plain grey moved above 'This screen'
- Tips for OS-level lock (iOS Guided Access, Android app pinning)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The worker isn't controlling the page on the first visit, so warm-up fetches
bypassed it and no images were cached. The page now writes markers, its own
JS/CSS/fonts and /set/ straight into the cache and only then shows
'Works offline'.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Unlinked, noindex page listing marker PNGs from public/set/markers
(discovered at build time; filenames encode device/resolution/orientation)
- Detects the current screen and offers the closest match first
- One-tap full-screen viewer: wake lock, hidden controls, full grid/edges
toggle, fill vs fit by aspect, back button closes, deep links via hash
- Offline service worker + home-screen manifest for iPhone full screen
- Marketing chrome moved into an (site) route group so /set has none
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>