Ember
Ember
"Keep the fire lit": one phone carries a workout streak (42 days, then 43) through five rooms that each stage a part of the day, always lit by amber.
Five dark rooms strung together: a glowing backlit wall over a mirror floor, a desert eclipse where a sphere slides off a ring of light, a raw concrete plinth under one hard key with a long shadow, a vertigo tunnel of rings, and a hexagonal lantern of pale faces. Five 6 s beats over 30 s at 120 bpm, each a new room, with a dolly-zoom in the fourth and a 60 degree swing round to land.
- Length
- 30 s
- Scenes
- 5
- Device
- iphone
- Style
- abstract
- Camera
- push in, dolly zoom, ultra closeup, orbit
//
LIB-EMBER — 30 s, 16:9, 1920×1080 @ 30. LIBRARY-ONLY abstract promo. Sample app: EMBER, a fitness /
energy tracker on iPhone (activity rings, heart rate, streaks). No VO. Treatment: treatment.md.
THE IDEA. Keep the fire lit. One phone carries a streak through five rooms of the abstract library,
each room a stage of a workout day: the spark (a wall of amber light, the phone a silhouette, 42-day
streak) → the rings close (an eclipse: a crescent of amber in the sky wraps round into a full ring
while the Activity screen GROWS and its three rings fill) → the plan (brutalist concrete under one hard
key: the workout's name types itself) → the effort (a vertigo dolly-zoom, the world falling away while
the heart rate holds, then an ULTRA close-up along "152 bpm") → the glow kept within (a lantern of six
cream faces, the streak now 43, "Ember" in amber beside it).
THE WORLD — only the library's structures, re-parameterized for this film:
e1 s12-backlight one 900 × 1400 amber panel behind the phone facing the lens, a cool sliver front
left, the mirror floor; the phone a silhouette with lit rails
e2 s09-eclipse regolith dunes, a crest, 14 stars; an emissive amber torus (R 580) behind a dark
sphere (R 620): the sphere SLIDES OFF, so the occluded ring is revealed as a
crescent that wraps round into a closed ring — the sky's ring closes with the app's
e3 s02-brutalist concrete masses, fins, a plinth and three steps; one hard directional: the shadow
e4 s20-vertigo ten rings receding 4 m (emissive amber / thin-film), two clearcoat colonnades, the
lit pad; dolly 2.6 m → 760 mm with the fov solved (H = 440) so the phone holds
e5 s24-lantern six cream area-light faces on a hexagon (apothem 180) round the phone, turned so a
gap faces the lens; the mirror floor; dark outside, lit within
The phone never translates (a device position channel blanks its screen): it turns, the camera moves,
and the world (the eclipse's sphere) moves around it.
PALETTE — the library's amber-noir: stage #0a0806 → #010101, amber #ffb347 (emissive), warm #ffa25e,
cream #fff3e2 / #e9e6df, the cool accent #7ad7ff kept to one ring, one fill and one haze. Materials:
clearcoat, shell (the phone), thin-film, satin, the brutalist concrete set. The app UI uses the same
swatches (ground #0b0b0d, surface #151412, amber brand), see lib-ember.screens.html.
BEATS (music 120 BPM, bar = 2 s; every cut on a bar line: 6 / 12 / 18 / 24)
e1-spark 0–6 HOOK amber wall, silhouette phone, "42 DAY STREAK"; text3d "Feel every beat."
e2-rings 6–12 FEATURE crescent → closed ring in the sky; Activity card GROWS (expand-input,
top-pinned scale + position) 1.2–2.0, rings fill 2.0–3.8, badge 4.1
e3-plan 12–18 FEATURE concrete + hard shadow; "Hill sprints · 5 × 200 m" TYPEWRITER 2.9–4.5,
Start dips 5.0
e4-effort 18–24 PROOF vertigo dolly-zoom 0–3.2 on the live screen; ULTRA close-up on the
heart-rate block ("HEART RATE 152 bpm") 4.1–6.0, yaw −55…−58, DOF 45/12
e5-glow 24–30 END CARD lantern; the streak reads 43; "Ember" + "Keep the fire lit."
TEMPLATE SWAP POINTS — re-skinning this for another app:
1. NAME / COPY: text3d#e5-name (app name), text3d#e5-tag (tagline), text3d#e1-hook (hook line).
The typed line is text#wo-type in e3 (typewriter 2.9–4.5; ~0.065 s per extra character).
2. SCREENS: edit lib-ember.screens.html (sections em-streak, em-rings, em-new, em-live), re-run
`npx tsx scripts/html-screens.mts …screens.html …sections.json …screens.json` and paste each block
into its scene's ui3d; keep the ids that carry tracks: rings-c