feat(vapor): promo video pipeline for the Pocket Vapor announcement#151
Draft
doodlewind wants to merge 3 commits into
Draft
feat(vapor): promo video pipeline for the Pocket Vapor announcement#151doodlewind wants to merge 3 commits into
doodlewind wants to merge 3 commits into
Conversation
…ynthesized chiptune, brand-styled composite - mgba_runner: K (set held keys) and M (movie frame dump) commands for frame-exact footage capture - capture.ts: one 31-press choreography replayed on GBA/GB/NES in a shared 24-frames-per-press schedule, every frame dumped as PPM - music.ts: original 125 BPM A-minor chiptune/electro bed synthesized from scratch (square arps, triangle bass, noise hats, sine kick), structured to the storyboard - promo.ts: 1080p60 timeline renderer (title, live-typed component, TS-to-C split, cartridge sizes, lockstep three-console gameplay with button read-out, receipts, close) streamed raw into ffmpeg; finished with the pocketjs-video-outro brand card in X-compatible mode Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ps, logo badge, new tagline - drop the cartridge-sizes interstitial; ROM sizes now sit under each console in the gameplay segment, demo starts at 19.2 s (was 23 s) - gameplay entry stays locked to the soundtrack: lead melody moved to bar 10 = 19.2 s, breakdown/resolve retimed, bed now exactly 46.9 s - PocketJS logo badge on every frame; no appended end card - title tagline: Reactive JavaScript in 2 KB of RAM - fix rawvideo truncation: await FileSink.write/flush per frame — an unawaited backpressure Promise dropped bytes mid-frame (EPIPE) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…oolchain jargon line - the badge previously drew assets/images/logo.png (the launcher's play icon), not the brand mark; redraw the site's 32x32 lens/viewfinder SVG (rounded-rect edge, lens dot, two bars, silver gradients) in canvas vectors so it stays crisp at any size - remove the 'no JS engine on device · arm-none-eabi-gcc · sdcc · cc65' footer from the TS-vs-C split page Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
What
A fully reproducible pipeline that renders the Pocket Vapor promo video for X, end to end, from the repo itself:
How
K <mask>(set held keys) andM <n> <prefix>(run n frames, dump each as PPM). Frame-exact, deterministic.Gotcha fixed along the way: Bun
FileSink.write()returns a Promise under backpressure; not awaiting it truncates the rawvideo stream mid-frame (ffmpeg:packet size < expected frame_size, then EPIPE). Every frame write/flush is now awaited.Every number shown in the video is cross-checked against the blog post and
vapor/README.md.bun test vapor/tests: 41 pass, 7,264 expect() calls.🤖 Generated with Claude Code