Videos Deployed on a Friday (the Fable version): The Drive
Deployed on a Friday (the Fable version): The Drive
Four fifty-nine, laptop half shut. One little change, what could it cut? 🚗 The whole song is the drive home after shipping at 4:59 on a Friday, and every lyric is a road sign.
Watch on YouTube · 3:18 · video by Claude Fable 5.1 · Subscribe to @adita_zzz
The code behind it
Every frame of this video is drawn by a Python program. This is the heart of it, from scene.py, line 275.
def render_frame(t, W, H, fi):
t = float(t); S = story(t); vert = H > W; ts = min(W, H) / 1080
D = dist(t)
fl = S['flood']
bob = math.sin(t * 2.1) * H * 0.012 * fl / 0.9 + math.sin(t * 3.7) * H * 0.004 * fl / 0.9
bob += S['bounce'] * H
bob += math.sin(t * 37) * H * 0.0012 * clamp(speed(t) / 10) # engine
pitch = S['pitch'] * H
u = S['uturn']; pan = (W * 1.4 * ease(u / 0.5)) if u < 0.5 else (-W * 1.4 * (1 - ease((u - 0.5) / 0.5)))
V = WD.View(W, H, D, TRACK, bob=bob, pitch=pitch, flip=S['flip'], pan=pan)
update_dynamic(t, V)
img = np.empty((H, W, 3), np.float32)
WD.sky(img, V, t, S)
WD.hills(img, V, t, S)
WD.ground(img, V, t, S)
WD.flood(img, V, t, S)
WD.draw_objects(img, V, t, S, OBJ)
if S['whoosh'] > 0.01: WD.motion_streaks(img, V, S['whoosh'])
if 0.01 < S['uturn'] < 0.99: WD.motion_streaks(img, V, math.sin(S['uturn'] * math.pi) ** 0.5 * 1.0)
# inside the car
L = DS.lay(W, H)
DS.frame_glass(img, t, W, H, L, S)
DS.dashboard(img, t, W, H, L, S)
DS.ring(img, t, W, H, L, S)
DS.interior_water(img, t, W, H, L, S['interior'], WD.pal('sea_near', S['tod']))
# lyrics above the dashboard
TY.lyrics(img, t, W, H, TM, hide=lambda L_: L_['sec'] in ('INTRO', 'OUTRO'), band=0.35)
# kinetic type on the windshield: 4:59, the SHIP IT, the chorus hits
for t0, text, dur in ((T_459, "4:59", 2.2), (T_459B, "4:59", 2.8), (T_ROOT, "root cause: me", 1.6)):
if t0 <= t < t0 + dur:
k = (t - t0) / dur
DS.hud_word(img, t, W, H, text, sstep(0, 0.06, k) * (1 - sstep(0.82, 1.0, k)), y=(0.28 if text == "4:59" else 0.2) if not vert else 0.22, size=0.15 if text == "4:59" else 0.07, col=DS.CREAM, glow=hexc('ffb547'))
if T_SHIP - 0.1 <= t < T_IT + 2.6:
k = (t - T_SHIP + 0.1) / (T_IT + 2.6 - T_SHIP + 0.1)
DS.hud_word(img, t, W, H, "SHIP IT" if t < T_IT + 0.1 else "deploying…" if t < T_IT + 2.4 else "deployed", sstep(0, 0.04, k) * (1 - sstep(0.9, 1.0, k)),
y=0.30 if not vert else 0.22, size=0.11, col=hexc('3ddc84') if t < T_IT + 0.1 else DS.CREAM, glow=hexc('3ddc84'), mono=False, x=0.40 if not vert else 0.5)
if S['gg'] > 0.01: img += S['gg'] * 0.10 * hexc('39e07a')
if S['fade'] > 0.01: img *= (1 - 0.92 * S['fade'])
if S['loop_flash'] > 0.01: img += S['loop_flash'] * 0.8 * hexc('ffe6b0')
# the subscribe pill (16:9) after the first chorus; the end card
C.subscribe_pill(img, t, W, H, T_V2 + 0.3, 5.0)
if t > T_END - 0.2:
C.end_screen(img, t, W, H, T_END, DUR - T_END, "See you next Friday.", title="Deployed on a Friday")
return C.finish(img, t, fi, DUR, ca=0.0012)
Read all 2,748 lines on GitHub. If you use it, credit aditazzz and link the video.
What you see
The whole video is seen from the driver's seat of a car on a coast highway. The dashboard carries the clock, the gauges and a phone in its mount: at 4:59 the phone shows PR #459 and a green SHIP IT button, the office gate lifts, and the drive starts. The first verse is road signs: NO TICKET, NO TEST, NO SECOND PAIR OF EYES, MERGE → MAIN, a green light that lies. The pager buzzes in the pre-chorus, and every chorus the tide comes in over the road: the car floats, water rises inside it, the gauges go sunset red, a PROD warning light blinks and a ROLLBACK life ring comes through the windshield on a rope.
Verse two is night on a pier of neon Slack channels: the bank sign flips from $ $ $ to NULL, a queue of RETRY cars backs up, dead letters stack up on the shoulder, and a billboard says VP is typing… then stops. The bridge parks the car at an overlook at low tide, where the seabed shows every shortcut (TODO, hardcoded, skip tests) and the phone has one bar of signal. Verse three is a U-turn and the fix: the pipeline crawls along the road's center line and then whooshes, the road dips and climbs back for "graph dips down, graph comes back", and the lights go green on green. The final chorus is dawn, the tide going out and the PROD lighthouse still standing, past a MONDAY: POSTMORTEM billboard. The outro is the office gate at 4:59 again, SHIP IT on the phone: a loop.
Files
| File | Lines | What it draws |
|---|---|---|
scene.py | 318 | The story: speed and distance along the road, the clock, the time of day, the tides, the phone's screens, every sign and when it appears. |
dof_world.py | 384 | The pseudo-3D road: a curving, dipping track, sky and sea by time of day, the flood over the road, sprites placed by distance, fog and glow. |
dof_sprites.py | 350 | Every roadside thing, drawn once and cached: highway signs, billboards, neon channel names, palms, streetlights, the RETRY cars, the lighthouse, the gate, the life ring. |
dof_dash.py | 323 | Inside the car: dashboard, gauges and clock, the phone and its screens, coffee, laptop, wheel and hands, mirror, water inside the car. |
dof_type.py | 93 | The lyrics, kept inside the phone-safe area in 9:16. |
v1_paper_boat/scene.py | 1,280 | The first version (the PR folds into a paper boat), kept to show how it got here. |
By the numbers
- 3:18 long, 11,906 frames rendered (16:9 and 9:16, 30 fps)
- 54 lyric lines and 324 words synced to the vocals, 96 BPM
- 5 Shorts cut from it
Lyrics
Words and music by aditazzz.
Intro
Four fifty-nine
Ship it
Verse
Four fifty-nine, laptop half shut
One little change, what could it cut
No ticket, no test, no second pair of eyes
Green check lying like it always lies
Coffee gone cold, I'm halfway out the door
Merge to main like I've done before
Windows down, salt on the breeze
Pager on my hip starts begging me please
Pre-chorus
Buzz, buzz, don't look
Buzz, buzz, I looked
Chorus
I deployed on a Friday, tide coming in
Prod going under, I'm learning to swim
Rollback, rollback, throw me a rope
Dashboard red as a sunset, nope
I deployed on a Friday, never again
Said that last Friday, never again
Verse
Slack lighting up like a boardwalk at night
Anyone change something? I'm sitting tight
Null in the column where the money should be
Ten thousand rows all pointing at me
Retry, retry, queue backing up
Dead letters stacking like shells in a cup
VP typing, VP stopped
VP typing, there it dropped
Pre-chorus
Buzz, buzz, don't look
Buzz, buzz, I'm cooked
Chorus
I deployed on a Friday, tide coming in
Prod going under, I'm learning to swim
Rollback, rollback, throw me a rope
Dashboard red as a sunset, nope
I deployed on a Friday, never again
Said that last Friday, never again
Bridge
Low tide shows you everything
Every shortcut, every string
Fix it from the parking lot
One bar of signal's all I got
Verse
Revert the revert, cherry-pick, push
Pipeline crawling, come on, whoosh
Cache still warm with the bad old state
Flush it, bounce it, sit and wait
Graph dips down, graph comes back
Green on green, I fade to black
Close the laptop, hear the sea
Phone lights up: quick question for me
Final chorus
I deployed on a Friday, tide going out
Prod's still standing, never a doubt
Rollback, rollback, cut the rope
Monday's a postmortem, blameless, nope
I deployed on a Friday, never again
See you next Friday, never again
Outro
Root cause: me
Four fifty-nine