Skip to content

Add blog post: The Dolly Zoom, From the Inside (interactive 3-D demo)#55

Merged
itamarwe merged 7 commits into
masterfrom
claude/dolly-zoom-post
Jun 14, 2026
Merged

Add blog post: The Dolly Zoom, From the Inside (interactive 3-D demo)#55
itamarwe merged 7 commits into
masterfrom
claude/dolly-zoom-post

Conversation

@itamarwe

Copy link
Copy Markdown
Owner

A new post explaining the dolly zoom (Hitchcock's Vertigo shot), written in the physics-first, demo-driven style of the mic-array acoustic-detection post.

The existing dolly-zoom branch/PR (#13) predates the Jekyll→Next.js migration and would revert the whole site, so this is a fresh branch off master that ports just the demo and adds the writeup.

What's in it

  • Post: content/posts/2026-06-12-the-dolly-zoom.md → served at /blog/the-dolly-zoom/. Derives d·tan(θ/2) = const and the key insight that the background-compression ratio d/(d+Δ) is independent of focal length — it's the dolly, not the zoom, that compresses depth.
  • Interactive demo: the Three.js scene ported into public/dolly-zoom/ (served at /dolly-zoom/), embedded as an iframe. Added a 35 mm-equivalent focal-length readout. Drag the slider 1×→20× and the subject stays fixed while the lens climbs from ~20 mm to deep telephoto.
  • Hero video: dolly-zoom.mp4, captured from the live demo with Playwright (subject locked, background looming).
  • Diagram + social card: geometry schematic and OG image (SVG → PNG).

Verification

  • next build passes; /blog/the-dolly-zoom is generated as a static page.
  • Demo renders correctly (frames sampled from the capture confirm the subject holds size while the background magnifies and compresses).

🤖 Generated with Claude Code

Writes up the Vertigo/dolly-zoom effect in the physics-first, demo-driven
style of the mic-array acoustic-detection post:

- Ports the Three.js dolly-zoom scene into public/dolly-zoom/ (served at
  /dolly-zoom/), adding a 35mm-equivalent focal-length readout.
- Hero loop captured from the live demo via Playwright (subject fixed,
  background compressing 20mm -> 200mm).
- Geometry diagram + social card (SVG -> PNG) explaining why the background
  lunges while the subject holds still.
- Post derives d*tan(theta/2) = const and shows the compression ratio
  d/(d+delta) is independent of focal length.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
itamarwe-github-io Ready Ready Preview, Comment Jun 14, 2026 6:56am

…itary scene

- Rebuild the interactive demo as two synced panels: a perspective "what the
  camera sees" view and a 3b1b-style top-down schematic (FOV wedge, camera
  glyph, distance labels, auto-fitting orthographic view) showing why the
  background changes while the subject holds size.
- Replace the civilian scene with a dusk South-Lebanon valley: gradient sky,
  ridgelines, Mediterranean forest, a road, and two nicer soldier models
  (helmet, plate carrier, slung rifle) plus a watchtower and jeep.
- Add an Auto sweep button; vendor the CSS2DRenderer addon for labels.
- Regenerate the hero video from the new split-view demo and update the post
  copy to match (soldiers, valley, two-panel explanation).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… 30x

Addresses review feedback on the interactive demo:
- Top-down view is now a STATIC, landscape-oriented map (road runs left→right).
  The subjects are fixed; only the camera glyph and its view-cone move across the
  frame, which is sized once to fit the full dolly runway out to MAX_ZOOM. This
  makes it obvious the subjects stay put while the camera dollies back.
- Brighten the dusk scene (stronger sun/fill/ambient, lighter terrain & foliage).
- Cut the fog right back so the foreground and background read as one continuous
  space instead of being separated by haze.
- Raise the zoom ceiling from 16× to 30× (lens to ~700 mm, dolly to 180 m, FOV
  down to ~2°) for a much stronger effect; enlarge the schematic markers/glyph.
- Regenerate the hero video and update the post copy to match.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Raise the zoom ceiling to 40× (lens to ~920 mm, dolly to 240 m, FOV to ~1°)
  for a much stronger compression; enlarge schematic markers/glyph to suit the
  wider static map.
- Brighten the dusk scene again (stronger sun/fill/ambient, lighter sky) and add
  a mild brightness/saturation lift when encoding the hero video.
- Add a "Where you've seen it" section with the famous film examples (Vertigo,
  Jaws, Goodfellas, LOTR, Ratatouille) and an embedded Jaws clip + supercut link.
- Add a "The intuition: it's all about relative distance" section (100/200 vs
  1000/1100) explaining depth compression in plain terms.
- Remove the "How it's built" section; keep the closing note.
- Regenerate the hero video from the updated 40× demo.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
itamarw-hub and others added 2 commits June 14, 2026 09:17
- Convert all equations to LaTeX ($...$ / $$...$$), rendered via the KaTeX
  pipeline merged from master. Verified responsive: KatexAutofit shrinks the
  display equations to fit and there is no horizontal overflow on mobile.
- Replace the YouTube embed with our own clip: downloaded the Jaws (1975) scene,
  cropped to just Chief Brody's dolly-zoom reaction shot (~19.8–22.3 s), and made
  it a seamless forward+reverse boomerang loop. Hosted at
  /img/dolly-zoom/jaws-dolly-zoom.mp4 with an on-page credit + link to the source.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Make the relative-distance argument concrete: fix the gap at Δ = 100 m and move
only the camera, with a small table showing the far soldier's apparent height at
100 m (50%, half size), 500 m (83%), and 1 km (91%, only ~10% smaller).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@itamarwe itamarwe merged commit 38ff218 into master Jun 14, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants