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.
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:
depth-zollyat intensity 0.9 — the per-plane compensation, targets all layers.camera-zoomat intensity 0.25 — global push, depth-modulated near.depth-fogat 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)
| Key | Range | Default | Effect |
|---|---|---|---|
focusDepth | 0–1 | 0.3 | Plane that stays anchored (0 = fg, 1 = bg) |
focusWidth | 0.02–0.6 | 0.2 | Tolerance band around the focus plane |
zoomAmount | 0–2 | 0.9 | Global zoom magnitude |
parallaxBias | 0–2 | 0.8 | Cross-drift per depth plane |
subjectLock | 0–1 | 0.8 | How hard to anchor the focus plane |
reverseBias | -1–1 | 0 | Sign of per-plane compensation |
breathingFreq | 0–2 Hz | 0 | Autonomous pulse frequency (0 = off) |
breathingAmp | 0–0.5 | 0 | Autonomous pulse amplitude |
Variations in the same collection
- cinema-reverse-zolly — sign flipped. Foreground expands instead. Same dread, opposite direction — the world rushing in instead of pulling away. Try it for claustrophobia, panic attacks, the walls closing in.
- cinema-breathing-zolly — non-zero
breathingFreqturns the one-shot into a hypnotic loop. Good for trance sequences, hallucination passages, and anything that needs to feel like a dream the character can’t wake up from. - cinema-matrix-zolly — paired with bullet-time slit-scan. The full The Matrix “he’s the One” moment, ASCII edition.
- cinema-hallucination-zolly — softer focus lock, breathing layered on. The world isn’t falling apart; it’s shimmering. Use when the character is the one questioning reality, not when reality has clearly broken.
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.