feat: argo × hyperframes integration — 16 shaders, argo add, block pre-render, showcase - #30
Open
shreyaskarnik wants to merge 36 commits into
Open
feat: argo × hyperframes integration — 16 shaders, argo add, block pre-render, showcase#30shreyaskarnik wants to merge 36 commits into
shreyaskarnik wants to merge 36 commits into
Conversation
Shader transition port, argo add + registry compat, block pre-render adapter, and the 'better together' showcase demo. Approved 2026-07-06.
… swirl-vortex shaders from hyperframes
… chromatic-split, flash-through-white shaders
…reaking git diff)
…paths Adds resolveHfBlockCues (maps hf-block overlay cues onto scene placement windows, allowing durationMs to extend past the scene into the following gap) and renderHfBlocks (per-cue cache-hit-cheap PNG sequence rendering sharing a single lazily-launched chromium instance) to src/hf/block-render.ts. Wires all four export call sites that must stay in sync per the repo's four-path invariant: pipeline.ts primary + variants, cli.ts export command, and preview.ts export (threading blocksDir through PreviewExportConfig from both cli.ts preview/dashboard call sites, mirroring how shaderTransition config already reaches that code).
Dogfoods all three integration tracks: domain-warp shader (accent-tinted) at every boundary, vignette + grain-overlay applied live during recording, rebranded logo-outro block composited as the end card. Story page + live-catalog hybrid recording per the Track 4 spec.
13 scenes covering every major feature of both systems: multi-voice TTS, all overlay templates + x-post block, camera suite, post-export zoom, data-chart hf-block cutaway, live vignette/grain/shimmer components, confetti + freeze-frame hold, 16-shader grid, rebranded logo-outro. Recording hardening learned the hard way: pages with autoplaying <video> saturate the jpeg-stitch frame writer (10-min stalls) — the catalog scene rides the static catalog page + one bounded preview at q88 instead.
…under jpeg-stitch) Wall-clock marks can outrun the assembled video when frames drop during capture; an out-of-range boundary made ffmpeg extract nothing -> ENOENT. Clamp to the probed duration with a warning. Plus: choreography-thesis VO rewrite, grain removed, outro tail buffer, grain-overlay opacity var.
…cache salt GSAP's seek() default suppresses callbacks, freezing composition label text written in onUpdate/.call() (data-chart percentages stuck at 0.0%). RENDERER_VERSION now salts the block cache hash so behavior changes invalidate stale frames automatically. Demo: whip-pan transitions (VO, grid highlight, and config now agree), 15-min test budget + retries for slow-machine screencast runs.
shreyaskarnik
marked this pull request as ready for review
July 9, 2026 01:17
shreyaskarnik
force-pushed
the
feat/hyperframes-integration-pr
branch
from
July 27, 2026 04:04
29cf749 to
893194e
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.
What
Full integration with HyperFrames (Apache-2.0), in four tracks:
1 · Shader transitions (5 → 16)
src/transitions/shaders/(attribution headers; uniform names mapped to argo's harness at port time)export.transition.accent: '#hex'tints accent-aware shaders (domain-warp,ridged-burn,thermal-distortion,sdf-iris,ripple-waves); accent participates in the shader cache key2 ·
argo add+ registry compatibilityargo add <name> | --list | --json | --registry <url>installs blocks/components from the hyperframes registry intoblocksDir(defaultblocks/, git-tracked) — items stored as native HTML, verbatim, adapted at use timepath.join(){ type: 'hf-component' }overlay cue +applyComponent()/removeComponent()script API — full-frame injection, CSS-custom-property params validated against injectionARGO_BLOCKS_DIRenv bridge at all threerecord()call sites;argo validatechecks installs + accent hex3 · Block pre-render adapter
{ type: 'hf-block' }overlay cue: recording-time pacing no-op → export-time headless-chromium pre-render (driveswindow.__timelinesviaseek(t, false)— GSAP's default suppresses theonUpdate/.call()callbacks compositions use for label text) → alpha PNG sequence → ffmpegoverlay+enable=between()cutaway (never shifts placements/chapters/subtitles)RENDERER_VERSION; wired at all four export paths (pipeline ×2, CLI export, preview)export.speedRamp4 · Showcase demo
demos/hyperframes-showcase.*— a 13-scene, 3:24 full-tour recorded by argo itself: multi-voice TTS, every overlay template, camera suite, adata-chartblock cutaway, live vignette/shimmer grade, confetti + freeze-frame hold, whip-pan shader cuts, rebrandedlogo-outroend card.Verification
argo add vignetteend-to-end;logo-outropre-rendered 60 alpha frames from the real catalogdocs/superpowers/; per-task + whole-branch reviews ran on each trackhttps://claude.ai/code/session_017pvzMoFKE6PbEmbaLT4q4K