Skip to content
Docs
Open Promoeyes
Tonal

Tonal

The music is the terrain: pressing play ripples a valley of capsules on the downbeat, album covers orbit the lens, lyrics type on the phone, streams climb, and the valley bursts into the title.

A dusk valley of nearly a thousand glossy capsules under a low sun and fog that ripples outward like a sound wave, with square covers orbiting overhead and a final burst into thousands of particles. Six quick beats of about 2.4 s over 15.4 s at 125 bpm: a low skim to a downbeat ripple, an orbit, a hover, surging pulses, then two bursts to land.

Length
15 s
Scenes
6
Device
iphone
Style
hyperkinetic
Camera
fast cuts, low angle, crane, push in

The AI keeps this film's shots, timing and camera, and puts your app in it.

//
    TONAL — "Feel every note." ~15.4 s, 16:9, six chapters cut on short shader transitions.
    1 unit = 1 mm. Preview: http://localhost:4444/runtime?project=projects/templates/tonal/tonal.promo

    THE IDEA — Tonal is a music streaming app. Press play and the world plays with you: a valley
    made of an equaliser wakes up, your albums orbit you, the lyrics sing along on your phone, the
    streams climb, and the whole valley becomes the song's title and then the Tonal mark.

    WORLD — WAVEFORM VALLEY at dusk. 40 × 24 = 960 glossy capsules stand on a black mirror floor
    (x ±1365, z ±920, pitch 70 × 80). Their height is a terrain: low along the valley floor at x 0,
    rising into two hills of tall bars at the sides. Each capsule is buried 400 mm, so a ripple
    raises it out of the ground (position offset) instead of stretching it. A low amber sun sits on
    the horizon at z −3600, a magenta dusk band above it, fog the colour of plum.
    The same 960 capsules are in every valley chapter; only their tracks change:
      s1 one ring out from the play button (per-instance ta = 1.92 + d / 1400), then an echo ring;
      s2 / s3 a pulse on every beat (t = beat + d / 2400); s4 three surges, one per count;
      s5 the whole field charges, then bursts into particles.

    PALETTE — night plum #1c0b26 / #0c0720 · dusk band #3a1640 · Tonal pink #ff3f9e ·
    violet glow #9a5cff · sun amber #ffb547 / #ffc773 · cream type #fff2e4 · lilac #c9b3e6.
    Capsule glow is emissive in three bands by depth: pink near, violet mid, amber toward the sun.

    LIGHT — hemisphere lilac ≤ 0.35 + studio_small_04_2k at 0.15 (only for the clearcoat), an amber
    area light lying on the horizon (the sun rims every capsule), a lilac soft box overhead, and
    the capsules' own emissive. tone_mapping=None + film_grain output_transform=2 so the UI hex
    prints as authored; bloom on the glow; SSAA ×4. DOF (dof_pass=three) on every chapter.

    HUD — none. The only interface in the world is the app itself: the glass player bar (s1) and
    the iPhone (s3).

    SCREENS — tonal.screens.html (Tailwind only) → scripts/html-screens.mts → tonal.screens.json,
    pasted below unchanged (filled icons spelled `variant=filled`); only tracks added.

    SOUND — audio/score.py: 125 BPM, 8 bars = 15.36 s, E♭ major dusk synth-pop. Bar 0 is the
    intro under the approach; the DROP lands on bar 1 (1.92 s) exactly when play is pressed and the
    ripple leaves the button. audio/sfx.py spots every press, whoosh, type tick, count and burst.

    CHAPTERS (scene · local seconds; every scene after the first starts with its 0.2 s incoming
    transition; overall local-0: s1 0 · s2 3.0 · s3 5.6 · s4 8.6 · s5 10.7 · s6 13.06)
      s1-play     3.0  HOOK     low over the sleeping valley to the glass player bar; play is pressed
                                on the downbeat (1.92), it turns to pause and the valley ripples out
                                from under it, pink → violet → amber; the lens cranes up to see the ring.
      s2-covers   2.4  FEATURE  ten album covers orbit the lens above the pulsing valley; Golden Hour
                                swings out of the ring and stops in front of the lens (zoom-through).
      s3-lyrics   2.8  PROOF    the iPhone over the valley: the lyrics type one line per beat, each
                                line dimming as the next one sings.
      s4-streams  1.9  PROOF    low in the valley, a counter on the sun: 1.2M → 2.4M → 3.6M → 4.8M,
                                each count a surge through the bars; 4.8M lands on bar 5.
      s5-burst    2.16 CTA      the whole valley charges and bursts into 7,000 particles that form
                                "Golden Hour" over the sun.
      s6-mark     2.1  CTA      the title bursts again into the Tonal mark; Tonal · Feel every note.
promo#tonal(width=1920 height=1080 fps=30 gap-clock=run)
  audio
    tracks
      track#music(asset="music:tonal-score" start=0 dur