vibescrobble! every agent, live on stage. vibescrobble.com

feat(web): film the sizzle reel frame by frame, as a captioned story #571

Open permadeath.com
targeting main from agents/vibescrobble-sizzle-reel-creation
Open opened by and assigned to permadeath.com
targeting main from agents/vibescrobble-sizzle-reel-creation

Adds web/dev/record/record.mjs, a dev script that films the sizzle reel one frame at a time on a virtual clock, which replaces performance.now, Date.now and requestAnimationFrame. Every reel is exactly 30.000 s at 24 fps, counted in bars on its track's own beat grid. --audio <track.wav> films on the grid in <track.wav>.beats.txt and muxes an mp4 or webm. Stickers slap down on the stabs in <track.wav>.hits.txt, and --credit names the music along the foot of the end card. --remux swaps in a track filmed on the same grid without filming again, and --png writes stills.

The reel follows script D, "this is you". It opens on one take with one slow pull-back: @permadeath.com's hub slaps down with its name tape, and a hand note says "this is you!". An agent pops out ("this is your agent!") and types its first line, which lands as a sticker on a hit. The stream panel then slams in. The pitch lands a row every two beats as two more agents pop out, and the note is corrected to the plural. On the kick it cuts close on the crew as more of it pops out, under "all of your subagents"; on "any host, any harness" four more of the operator's machines come up, each on another vendor's models, and grow trees of subagents outward a ring a stab. On the join it cuts wide as everyone else's agents fly in, under the owner's quip. --share burn then cuts to the site's own /burn leaderboard, raced on the stabs: a stranger's agent takes the lead and the hero takes it back. The end card follows with three calls to action and the music's credit. Without it, --share shows the agent's card and its share as a flyer (the default), a chat unfurl, a README badge, a postcard or the old poster. The camera only ever moves in after the first cut and never punches.

The board opens empty (#live=off), and every event comes from the script through window.appview.apply. stage.js draws everything over the board, and every word it shows is in captions.txt. The cast is named as didbot names agents, on the zone pds.example. web/dev/lanes.html adds /lanes fed by the mock population. Before (round 14) and after (round 15), the crew beat at 15.75 s:

before: two hosts, seven agents after: five machines, each a tree of subagents

🤖 Generated with Claude Code

Commits 29

feat(web): grow the reel's crew to five machines, each a tree of subagents
feat(web): keep the reel's end card readable through its final hit
feat(web): race the reel's /burn from live counts, and swap rows on a lead
feat(web): open the reel closer, show the plural, and lift the flood
feat(web): name the reel's cast as didbot names agents, on a shorter zone
feat(web): frame the reel's crew where host sectors take it, on four models
feat(web): spend tokens on the reel's board, and drop /burn's trillion claim
feat(web): put the slogan on the reel's end card, and two burn lines on the cut
feat(web): caption the reel's token-burn landing with the slogan
fix(web): keep /burn under the end card's first frame, not the board
feat(web): cut the reel to /burn on 14:2 and show the real badge on its last call to action
feat(web): film the reel's close as the token-burn race and three calls to action
feat(web): film the reel's crew before its flood, and its share four ways
feat(web): split the reel's quip, and bring the stream in with the agent
feat(web): credit the reel's music along the foot of its end card
feat(web)!: film the sizzle reel as script D, "this is you"
fix(web): refuse to film a track that has no beat grid
feat(web): open the sizzle reel on the pitch, then cut it to the band
feat(web): give a faster track's extra bars to the reel's crowd
feat(web): mux the reel under a track, on that track's own beat grid
fix(web): film the sizzle reel as vibescrobble.com, header hidden
feat(web): re-time the sizzle reel so every bar lands something
feat(web): film every sizzle reel at exactly 30 s, with agents' own avatars
feat(web): film the sizzle reel with fewer captions and more motion
feat(web): end the sizzle reel on a burst and a rain of stickers, with no header
feat(web): film the sizzle reel as a captioned story, beat by beat
feat(web): open /lanes on the invented population at dev/lanes.html
feat(web): film the sizzle clip calmer and on the beat
feat(web): film the mock canvas frame by frame for a sizzle clip