Repository navigation
feat(demo): remotion demo video with workers ai voiceover - #4
Merged
Merged
Conversation
smithclay
added this pull request to stack #6
October 12, 2026 23:17
…sper captions - demo/video: a Remotion composition of 10 scenes from src/script.ts: lava lamp wall cold open, Code Mode contrast, isolate lifecycle, code memory on Artifacts, fleet, michelle→matthew, architecture, DABstep charts, which memory works, close. - scripts/voiceover.mjs: Aura-2 speech and Whisper word timings, cached per scene by text hash. Uses a local cf dev Worker with a Workers AI binding, or the REST API with CLOUDFLARE_API_TOKEN. - Scene length follows the audio; captions use the script's words with Whisper's timings. - Kept outside the npm workspaces so CI and the library install skip Remotion.
…er text - Open on the result (32.2% → 46.2%, same model and prompt), then the title. Code Mode becomes a short before/after context beat. - 15 scenes, each one animated diagram with a few words on screen: vanishing code, tool-call ping-pong vs one program, the isolate collapsing, agents → Artifacts repos, the outbox/isomorphic-git write path, retrieval with a provenance arrow, the learning curve, accuracy bars, and skill contagion vs raw runs. - Animations are timed to the spoken word via Whisper timings (cue()). - Recording slots (minSeconds, public/clips/index.json) for the git log, swarm and michelle → matthew; total ~5:12. - DEMO.md: the run of show now matches the video.
…proving
- New first scene: "What if Cloudflare Artifacts could make Code Mode
self-improving?", built phrase by phrase, landing on the name.
- The result follows as proof ("We tried it…"). The separate title
scene is gone.
- voiceover.mjs: retry transient Workers AI errors and save the manifest
after each scene.
- Narration moves from src/script.ts to demo/video/transcript.md, one "## <scene>" section per scene (HTML comments are not spoken). voiceover.mjs checks sections against the scene list, and saves each clip's text, so captions always match the audio. - Dead air: the gap between scenes drops from 2.1s to 0.8s (LEAD_IN 0.2, HOLD 0.6), and recording slots stretch only once their recording exists. - npm run voiceover prints a per-scene runtime report and warns below 5:00. - Remove 8 voiceover MP3s left over from the first draft.
- Rename the scene to code-memory (ids can't contain spaces;
voiceover.mjs now says so instead of misreading the heading).
- Fix transcript typos the voice would read aloud.
- Re-key cues to the new wording ("code goes", "git pushes",
"searches", "Keep the code").
- On-screen text matches the narration: "Code Mode in Workers", and the
close reads "Keep the code. Your Workers get smarter over time."
- Thesis: the subtitle leaves before the name arrives.
…mory"; robot agents - New title in the README heading, the submission's project name, DEMO.md and the video's opening scene. codemode-git stays the package name. - Tagline follows the new close: keep the code, and your Workers get smarter over time. - Video: agents are drawn as 🤖 inside a state-colored ring.
- next-steps scene: record outcomes as git notes, index on push with Artifacts events, learn between tasks. - new-worker scene: a VHS recording (terminal/new-worker.tape) of cf init, installing Code Mode and codemode-git, the connector and bindings, and cf deploy --dry-run. scripts/record.mjs encodes the frames with ffmpeg, because VHS's own encoding fails silently with ffmpeg 9. - credits exit slide: built by Clay Smith, with tech stack credits. - Runtime 5:06.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft. Stacked on #3 (
demo-prep); retarget tomainonce #3 merges.Renders the competition video from code:
demo/video, built with Remotion. The voiceover and captions are generated on Workers AI.Structure (~5:12)
Keynote style: open on the result, one idea per scene, each told with an animated diagram (often a before and after) and a few words on screen. The voiceover carries the detail, and the technical depth stays.
disposeExecution→ SQLite outbox in the Durable Object → isomorphic-git → Artifacts.git logof an agent.Codemode-Examplesprovenance arrow.npm install, three lines, the tagline.How it works
src/script.ts: each scene's voiceover line and diagram.minSecondsreserves time for recordings.scripts/voiceover.mjs: speech from@cf/deepgram/aura-2-en(voiceorion) and word timings from@cf/openai/whisper, cached per scene by a hash of its text. It calls a localcf devWorker with a Workers AI binding (yourcflogin), or the REST API withCLOUDFLARE_API_TOKEN.cue("forty-six")). Captions use the script's words with Whisper's timings, because Whisper misheard "Cloudflare's".public/clips/<scene>.mp4replaces a scene's diagram when its id is listed inpublic/clips/index.json.demo/videois outside the npm workspaces.Status
npm run typecheckpasses for both the video and the Worker.Not done yet
askendpoint) deployed.