cinema-zolly

The moment a character realises. Chief Brody on the beach. Henry at the diner. The frame holds them dead-still while the world behind starts to fall away.

cinema-zolly family sample frame rendered from the depth demo
Frame from the bundled demo.cinerune — five depth layers driven by depth-parallax/fog (the same per-plane distribution family cinema-zolly uses for its zolly + zoom + fog stack).

What it’s for

Hitchcock invented it for Vertigo because no other shot could put on screen what it feels like when the floor tilts inside your head. Spielberg used it on Brody and the beach went sideways. Scorsese sat Henry Hill at a diner and let the booth around him collapse outwards. The technique is the same every time: keep the subject perfectly anchored, and let everything behind them shear in a direction it shouldn’t be able to go.

That’s what cinema-zolly bakes in. A global zoom pushes; per-plane compensation pulls back exactly on the focus depth; foreground and background drift opposite ways. The character on screen does nothing — and that stillness is the whole point. The world has just stopped making sense around them, and the camera is the one carrying the feeling.

Reach for this on: the realisation beat, the “wait, this isn’t right” pause before a reveal, the dream-logic moment in a music video, the protagonist hearing news they can’t un-hear. It’s a one-shot emotional move — use it sparingly, hold it longer than feels comfortable, and let the audience catch up to the unease.

Stack composition

This is a preset — a layered recipe, not a single effect:

  1. depth-zolly at intensity 0.9 — the per-plane compensation, targets all layers.
  2. camera-zoom at intensity 0.25 — global push, depth-modulated near.
  3. depth-fog at intensity 0.35 — sinks the background, sells the depth gap.

Requires depth

The render layer needs a depth pass. Run Person extraction from the Inspector to split a clip into person/background, or import a pre-baked depth layer — without it the per-plane compensation has nothing to push against.

Key parameters (depth-zolly)

KeyRangeDefaultEffect
focusDepth0–10.3Plane that stays anchored (0 = fg, 1 = bg)
focusWidth0.02–0.60.2Tolerance band around the focus plane
zoomAmount0–20.9Global zoom magnitude
parallaxBias0–20.8Cross-drift per depth plane
subjectLock0–10.8How hard to anchor the focus plane
reverseBias-1–10Sign of per-plane compensation
breathingFreq0–2 Hz0Autonomous pulse frequency (0 = off)
breathingAmp0–0.50Autonomous pulse amplitude

Variations in the same collection

Demo project

The downloadable demo.cinerune is the bundled Portrait / depth demo: a script-painted silhouette split across five depth-tagged render layers, each with its own depth-parallax/fog pair. Same per-plane architecture cinema-zolly is built on — open it in the editor, swap the parallax/fog stack for depth-zolly + camera-zoom + depth-fog to bake the actual preset on top of the same scaffold.