How a Powers of Zen video gets made

Continuous-zoom shorts that loop through many scales, produced and posted by a pipeline that runs on one desktop GPU. This page covers the daily loop, how one video is built frame by frame, and the technology behind it.

77videos live
130journeys in the catalog
13visual styles
10music lanes
13hidden mascots
×10scale per card
1RTX 3080 · local renders
1 · the big picture

The daily loop

Journeys are written at midnight, rendered overnight, and posted on a fixed cadence. I touch it twice: approving a video and choosing its music.

Refill00:00 · agents compose journeysRender queueoutbox/journeys.jsonNight batch01:30 · dive rendererVideo Reviewthe human: pick cut, mark the startMusicthe human: audition 5, choose 1Production queueready to postPosterYouTube + InstagramStats + analysisviews, likes, saves, qscoreauditedjourneysqueue order,time budgetvideo, captions,5 music tracksapprovechosentrackevery 19 h,never 01–07liveURLswhat works feedsthe next briefstwo human steps · otherwise automated
Amber boxes are the two human steps. Everything else is a scheduled job. Results flow back into the next night's briefs, so the catalog learns what works.
start + preflight auditscameo realm check planet position auditbackpressure at 20 ready frame-0 figure gateplate caption gates per-render timeoutsChrome self-heal caption verified on the live pageInstagram size fallback
2 · the content

One video is a circular chain of worlds

Each card's target is something contained in its scene, and that target's surface becomes the next scene. The last card contains the first, closing the chain into a loop.

1012 flared star106.9 storm world104 mountain country102.4 mine yard101.6 cavern hall10−0.6 sphere ranks10−8.4 water cages10−12.8 untouched matter10−15.4 quivering trio100.9 arrival ring1016.5 echo shellsone journey11 world cards, each ×10 deeper,the last one contains the first
  • Play startwhere the video opens: the composer's choice, the top of the scale.
  • Render startwhere the chain begins rendering: an abstract realm that is easy to establish cold, and that keeps the planet card mid-chain.
  • The seamthe one exotic wrap, subatomic back to cosmic. It is a morph on the beat, not a zoom, and it gets more frames rather than more force.
  • Every other stepa true optical zoom into a contained object, ten times deeper per card.
The example is cherenkov_cistern. Render order and play order are independent because the finished video is a seamless loop.
3 · the rhythm

Inside one card: zoom and denoise are musical

Every card is one bar. The camera arrives, looks, then plunges, and the world flips exactly on the downbeat. These curves come from the engine's rendering formulas.

ARRIVE · the morphTRAVEL · look aroundPLUNGE · dive into the targetbar line = downbeatbar line = downbeatbeat 1beat 2beat 3beat 4zoom per frame peaks ×1.135×1.039denoise 0.58 on the beat0.40 while travelling: structures persist2-frame pickup into the beatone card = one bar of music = 28 frames at 103 bpm · the whole card multiplies scale by exactly 10
The smooth curve is how hard the camera zooms each frame. The step line is how much of each frame is re-imagined. Low denoise while travelling is what makes it a zoom rather than a morph; the short peak on the beat is what lets the palette flip between worlds.
4 · the engine

The frame loop

The only memory is the previous frame. It is cropped toward a tracked target, given depth motion, and handed to the diffusion model, which paints the next frame. Everything else steers that one step.

previous framethe only memorycrop-zoomtoward the aimparallax residualnear grows faster than fardetail boostsharpen · palette matchnew framesaved, then fed backdiffusion img2imgDreamShaper XL · ComfyUIcomposite layercameo sprite · planet platefeeds the next frametracker v3 → aimschedule → zoom zDepthAnything → depthresolve scaffold → depthpalette anchor per phaseprompt crossfade old → new worlddepth ControlNet: feedback or scaffoldIP-Adapter: loop home · void holddenoise schedule + noise maskevery frame is freshly generated · nothing is pasted and kept
Grey boxes are the signals that steer each stage. The composite layer is the one place pixels are supplied directly, which is why mascots and planets persist while everything around them churns.
5 · the newest piece

The planet descent

The model could never grow a planet out of inherited texture, and the tracker never once locked one. So the globe is supplied as pixels at an exactly scheduled size, while the space around it stays alive.

arrival
arrivalthe previous world re-imagines itself into the star scene, live
the globe enters
the globe entersfrom beyond a frame edge, already a good size
orbit view
orbit viewreaches full width exactly on the bar line
limb leaves the frame
limb leaves the framestill growing through the next card's arrival
on the surface
on the surfacethe next card's own approach takes over
planet card begins
plate active
bar line
plate active
tracker takes over
Real frames from cherenkov_cistern. The globe's texture is generated once from the next card's scene, wrapped on a sphere, revolved slowly and composited each frame. Space is held by an IP-Adapter reference masked to outside the disc; the globe's own denoise is capped so it cannot dissolve into rings.
6 · the loop

Closing the loop without a visible seam

The first frame of any render is the only one not born from the chain, so it is thrown away. An extra lap re-renders that world mid-dive, and the tail homes onto the frames that lead into the opening.

card 0card 1card 2…card Nlap: card 0 againcold firstframe: cutdelivered video: exactly N bars, every world oncetail homes onto the frames that lead into the opening · IP-Adapter carries the world, depth aligns the landingthen the finished loop is rotated so it opens where the composer chose (play order ≠ render order)10¹² starplanet descent10⁴10²…10⁻¹⁵seam10¹⁶scale falls monotonically, wraps once through the seam, loops back into the opening
7 · the sound

Music that lands on the morphs

Ten takes are generated overnight at the video's tempo. Each is measured, stretched by a percent or two, and slid until its deep accents sit on the bar lines, then looped seamlessly.

video morphsevery bar, exacttrack as generatedits own bar is ~2% off, phase arbitraryafter stretch + slidedeep accents land on every morph
beatis there a deep pulse you can feel? Carries the ranking.
syncdo this track's accents sit on the morphs? Chooses where the loop starts.
fitdoes the track phrase in the video's bar, judged against its own measured tempo?

Everything we built

Each piece, what it is for, and where it lives.

Format & authoring

Three-layer format

FORMAT fixed signature · STYLE deck · JOURNEY cards. Bounded variation stays on brand.

PLAN.md

World-card journeys

A circular nesting chain: each card's target is contained in its scene and becomes the next scene.

journeys/*.json

Grammar compiler

Turns cards into prompts plus per-frame zoom, denoise, exponent and approach schedules.

engine/grammar.py

Style deck

13 curated looks; the composer names one, never writes the look.

styles/deck.json

REALMS + VARIATIONS

What exists at each scale and how journeys differ; feeds the composer.

journeys/REALMS.md

Tempo as a knob

frames per beat sets bpm (5→144, 7→103, 9→80); all musical geometry scales with it.

engine/dive.py

The zoom engine

Feedback zoom

Crop the last frame, re-imagine it. Build-in only; build-out was rejected.

engine/dive.py

Arrive · look · plunge

One breathing zoom curve per card, ×10 per card, uniform bars.

engine/grammar.py

On-beat morph

Denoise peaks on the downbeat with a 2-frame pickup; seams get more frames, never more force.

engine/dive.py

Tracker v3

Point emergence, then Florence-2 object lock; exact propagation through the crop; frozen thirds anchor.

engine/track.py

Depth ControlNet

Holds the target's structure while every pixel regenerates (strength 0.45).

engine/dive.py

10ⁿ counter

Odometer pinned to the real cumulative zoom, honest across seams.

engine/dive.py

Depth & population

Parallax residual

Near content expands faster than far; the missing depth cue of a crop-zoom.

engine/warp.py

Resolve-on-approach

Animated depth scaffolds (sea, lattice, surface, web): a realm resolves out of the old texture as countless instances.

engine/scaffold.py

Looming scaffolds

Per-instance distance, painter's occlusion: size, brightness and motion agree.

engine/scaffold.py

Camera vocabulary

Roll, orbit, dolly, tilt compiled per card; parked below the noise floor, kept inert.

engine/camera.py

Planet descent

Planet plate

A globe rendered from the next card's scene, composited at an exact scheduled size every frame.

engine/plate.py

Live arrival

Space held by masked IP-Adapter, not a pixel blend; globe denoise capped absolutely.

engine/plate.py

Enter / grow

The globe slides in from a frame edge or swells from a point of light; never just appears.

engine/plate.py

Spans the bar line

Orbit view on the beat, keeps growing, hands off when the frame is inside the disc.

engine/plate.py

Plate gates

Caption checks re-roll a void that came out as jewellery or a surface with a horizon.

engine/plate.py

Position audit

Moves the render start so the planet card sits mid-chain; records the play start.

scripts/plate_position_audit.py

Loops, seams, openings

Loop lap

Render card 0 again mid-chain and cut the cold first card: the loop home is born from the chain.

engine/grammar.py

Trajectory homing

The tail aims at the frames leading into the opening: IP-Adapter for the world, depth for the landing.

engine/dive.py

Play order

Assembly rotates the finished loop to the composer's opening; render order is free.

engine/dive.py

Frame-0 establish

A wide, target-free first prompt with scale-aware wording and anti-close-up negatives.

engine/grammar.py

Figure gate

Captions frame 0; re-rolls a lone figure before an hour is wasted.

engine/figure.py

Repair family

Replace an opening or a tail, or re-render from any card, without redoing the video.

scripts/replace_*.py

Cast & captions

Mascot cameos

13 hidden characters, scale-matched to the card, pasted world-attached; the find-the-character hook.

output/mascots/canon

Caption writer

Local LLM writes five caption options, YouTube description and world chain.

scripts/caption.py

Music

Music deck

10 lanes × rhythm feels with a deep-downbeat doctrine.

styles/music_deck.json

ACE-Step generation

Ten takes at the video's tempo, overnight, so approval costs seconds.

scripts/music_gen.py

Aligner

Measure the track's own bar, stretch, kick-weighted phase search, seamless loop.

scripts/align.py

Beat · sync · fit

Deep-pulse presence, accents on morphs, phrase length equals the bar.

scripts/align.py

Re-rank

Re-judges every take on disk without a GPU.

scripts/music_gen.py

Pipeline & posting

Midnight refill

A coordinator briefs parallel composers; the script audits and queues only passers.

scripts/journey_refill.py

Night batch

Queue order within a time budget; render, ingest, caption, music; backpressure at 20 ready.

scripts/night_batch.py

Single source of truth

pipeline.json for videos, journeys.json for decisions; writers merge into a fresh read.

scripts/pipeline.py

Cadence gate

Posts every 19 hours, remaps the 01–07 dead zone, advances only on verified success.

scripts/post_gate.py

Poster

Drives a real Chrome over CDP; trusted clicks, caption verified on the live page, self-heals.

scripts/poster.py

Audience analytics

Instagram and YouTube stats; qscore = engagement against what reach predicts.

scripts/ig_analyze.py