Add timelapse skill + rendered build-progression video#3
Open
radiantnode wants to merge 4 commits into
Open
Conversation
Introduce a self-contained pipeline that walks the entire commit history oldest->newest and plays a real round on each commit, then stitches the frames into an MP4. - Timelapse/bin/make_timelapse.sh: orchestrator — per-worker shared clones, parallel capture across ports, then video stitch (arc | board modes) - Timelapse/bin/launch.py: boots any commit's app with telemetry neutralized so it runs standalone (no Postgres/Grafana) - Timelapse/bin/play.py: drives two browser contexts (host=winner, guest=loser) to capture an 8-frame arc per commit — loading, lobby, first roll, dice locking, WIN, and the opponent's LOSS — via stable selectors and button text that survive markup/protocol drift across history - Timelapse/bin/shoot.py: lightweight board-only capture (board mode) - Timelapse/bin/build_video.py: frames -> MP4, holding win/loss beats longer - Timelapse/tensies-gameplay-timelapse.mp4: the rendered result (80 commits) - .claude/skills/timelapse/skill.md: user-invocable skill to (re)build it https://claude.ai/code/session_01HfybSYfuaU6E5jAsEpbfVF
Retake every commit's gameplay arc in a real mobile browser context emulating an iPhone 17 Pro Max (440x956 @ DPR 3 -> native 1320x2868, is_mobile/has_touch, iOS Safari UA), so the page renders its true phone layout instead of a scaled desktop window. - play.py: DEVICE profile drives both contexts as iPhone 17 Pro Max - build_video.py: keep frames' native resolution (no downscale) and encode for phones — H.264 Main + yuv420p, CRF 26 / veryslow / -tune stillimage, silent AAC track, +faststart - tensies-gameplay-timelapse.mp4: re-rendered at 1320x2868 - README/skill: document the device profile, the encode, and the 3x-DPR parallelism/OOM caveat (use ~4 workers) https://claude.ai/code/session_01HfybSYfuaU6E5jAsEpbfVF
Driving the game by clicks leaves a full-viewport .screen element focused; under the mobile/iOS-UA context that paints an amber WebKit focus ring around the whole frame. Inject a global `outline:none` (and clear the tap-highlight) into each browser context, and blur the active element before each screenshot. (The committed video is re-rendered in a follow-up once frames regenerate.) https://claude.ai/code/session_01HfybSYfuaU6E5jAsEpbfVF
All 80 commits re-captured with the outline fix from e96f6aa; same native 1320x2868 resolution and mobile encode (H.264 Main, CRF 26, veryslow, -tune stillimage, silent AAC, faststart). https://claude.ai/code/session_01HfybSYfuaU6E5jAsEpbfVF
e8b6109 to
2356d27
Compare
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.
Introduce a self-contained pipeline that walks the entire commit history
oldest->newest and plays a real round on each commit, then stitches the
frames into an MP4.
parallel capture across ports, then video stitch (arc | board modes)
so it runs standalone (no Postgres/Grafana)
guest=loser) to capture an 8-frame arc per commit — loading, lobby, first
roll, dice locking, WIN, and the opponent's LOSS — via stable selectors and
button text that survive markup/protocol drift across history
https://claude.ai/code/session_01HfybSYfuaU6E5jAsEpbfVF