18 Commits

Author SHA1 Message Date
twotalesanimation b5dfdc9897 Add /set/plate: background plate comp with poly mask
Deploy / deploy (push) Successful in 40s
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>
2026-11-03 07:40:12 +02:00
twotalesanimation 7150c3f3d2 Add /drops/: login-protected, view-only shot previews
Deploy / deploy (push) Successful in 39s
- nginx basic auth on /drops/ (page and clips); login file and clips live
  on the server only (docker/auth, docker/drops), never in git or the image
- Fails closed: missing login file returns 500; no-store, noindex
- Page reads manifest.json from the server, shows "taken down" when empty
- Player hides download/cast/PiP, blocks right-click, confidential overlay
- DEPLOY.md step 8: how to share a drop and take it down

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 14:10:02 +02:00
twotalesanimation 22bc903041 /previz: password protect, add PDF export of the crowd previz
Deploy / deploy (push) Successful in 1m5s
- nginx basic auth on /previz/ (login file lives on the server, mounted
  from docker/auth/, see DEPLOY.md step 8); private, no-store so
  Cloudflare never caches it
- Print styles for previz pages: dark, A4 landscape, one section a page;
  videos print as poster frames with a link
- scripts/previz-pdf.mjs (npm run previz:pdf) prints the page to
  public/previz/crowd/crowd-previz.pdf via Edge/Chrome DevTools
- "PDF" download link on the page

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 06:21:25 +02:00
twotalesanimation 35b263ba31 Add /previz/crowd: drone crowd shot explainer for production
Deploy / deploy (push) Successful in 43s
Hidden (noindex, unlinked) page walking production through the crowd
extension: hero drone move, four locked-off crowd plates, comp on cards.
Includes hero and comp previz videos, a tickable shot list (saved per
device), crowd direction, DOP/drone notes and an on-set checklist.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 06:09:08 +02:00
twotalesanimation 4ac1817425 Add /set/report: on-set VFX take logger and shareable report
Deploy / deploy (push) Successful in 41s
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>
2026-10-16 21:33:26 +02:00
twotalesanimation 60a10d999e /set/spill: landscape side column, 2.39:1 framing crop
Deploy / deploy (push) Successful in 33s
- 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>
2026-10-07 12:02:20 +02:00
twotalesanimation 52d492506b Add /set/spill: on-set green screen spill checker
Deploy / deploy (push) Successful in 35s
- 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>
2026-10-07 11:55:24 +02:00
twotalesanimation 250bf5ac19 /set: touch lock in viewer, plain grey at top
Deploy / deploy (push) Successful in 31s
- 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>
2026-10-06 11:11:31 +02:00
twotalesanimation e6658eae3d Fix /set offline cache: save markers and page assets on first visit
Deploy / deploy (push) Successful in 29s
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>
2026-10-06 09:14:33 +02:00
twotalesanimation ca122ad723 Add /set: on-set screen tracking markers for crews
Deploy / deploy (push) Successful in 30s
- 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>
2026-10-06 09:11:36 +02:00
twotalesanimation 829d415324 Switch domain to twotalesvfx.com
Site URL (sitemap, robots, Open Graph), footer and deploy guide now target
twotalesvfx.com behind Cloudflare.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 19:59:16 +02:00
twotalesanimation ef0c2ef78e Mobile polish: fix 320px overflow, 44px tap targets, readable badges
- Project cards stack credits under title on small screens
- Fluid headings on /work and project pages; next-project banner wraps
- Footer, back, award and nav links padded to ~44px touch targets
- theRender.Fish marked as in-house project

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 19:27:53 +02:00
twotalesanimation aba0bcde86 Add SAFTA nomination: award band, project badge, filmography tag
Summertide nominated for Best Achievement in Visual Effects - TV at the
19th South African Film and Television Awards (2026).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 19:15:22 +02:00
twotalesanimation 96ad9c42b3 Add Summertide VFX reel: hero loop, Play reel lightbox, project page
- 15s muted hero loop (1280w, 2.3 MB) cut from finished shots
- Full reel re-encoded for web (letterbox cropped, CRF 28, faststart, 45 MB)
- PlayReel lightbox component; Summertide project with breakdown stills

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 19:08:20 +02:00
twotalesanimation 951dba7905 Add Beter as Gister (kykNET, 2026) to filmography
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 18:54:46 +02:00
twotalesanimation c14034c0a3 Add Blood Sisters S2, Baby Farm, Die Affêre and Baba Segi to filmography
Posters from TMDB (Baby Farm, Die Affêre, Baba Segi) and a 2:3 crop of
Blood Sisters S2 press art. Baba Segi flagged as upcoming (cinemas 4 Dec 2026).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 18:52:48 +02:00
twotalesanimation 6c464d6dfb Add real studio content: Festo F1 film, filmography, service stills
From the Dec 2024 company profile: Pretoria location, founding year, service
list with stills, and 14 film/series credits with posters. Festo F1 spot
transcoded for web (cropped letterbox, 14 MB, faststart).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 18:40:45 +02:00
twotalesanimation 1f3af8f7f5 Initial ttvfx.com site: Next.js static export
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 18:17:41 +02:00