Skip to content

feat: argo × hyperframes integration — 16 shaders, argo add, block pre-render, showcase#30

Open
shreyaskarnik wants to merge 1 commit into
mainfrom
feat/hyperframes-integration-pr
Open

feat: argo × hyperframes integration — 16 shaders, argo add, block pre-render, showcase#30
shreyaskarnik wants to merge 1 commit into
mainfrom
feat/hyperframes-integration-pr

Conversation

@shreyaskarnik

Copy link
Copy Markdown
Owner

What

Full integration with HyperFrames (Apache-2.0), in four tracks:

1 · Shader transitions (5 → 16)

  • 11 fragment shaders ported from hyperframes' shader library into src/transitions/shaders/ (attribution headers; uniform names mapped to argo's harness at port time)
  • New export.transition.accent: '#hex' tints accent-aware shaders (domain-warp, ridged-burn, thermal-distortion, sdf-iris, ripple-waves); accent participates in the shader cache key
  • Boundary-frame extraction now clamps marks past the assembled video's end (jpeg-stitch mark drift previously crashed export with ENOENT)

2 · argo add + registry compatibility

  • argo add <name> | --list | --json | --registry <url> installs blocks/components from the hyperframes registry into blocksDir (default blocks/, git-tracked) — items stored as native HTML, verbatim, adapted at use time
  • Path-traversal guards on item names AND remote-declared file paths before any path.join()
  • Component adapter: { type: 'hf-component' } overlay cue + applyComponent()/removeComponent() script API — full-frame injection, CSS-custom-property params validated against injection
  • ARGO_BLOCKS_DIR env bridge at all three record() call sites; argo validate checks installs + accent hex

3 · Block pre-render adapter

  • { type: 'hf-block' } overlay cue: recording-time pacing no-op → export-time headless-chromium pre-render (drives window.__timelines via seek(t, false) — GSAP's default suppresses the onUpdate/.call() callbacks compositions use for label text) → alpha PNG sequence → ffmpeg overlay + enable=between() cutaway (never shifts placements/chapters/subtitles)
  • Content-addressed cache salted with RENDERER_VERSION; wired at all four export paths (pipeline ×2, CLI export, preview)
  • Known v1 limitation (documented): incompatible with export.speedRamp

4 · Showcase demo

demos/hyperframes-showcase.* — a 13-scene, 3:24 full-tour recorded by argo itself: multi-voice TTS, every overlay template, camera suite, a data-chart block cutaway, live vignette/shimmer grade, confetti + freeze-frame hold, whip-pan shader cuts, rebranded logo-outro end card.

🎬 The video artifact is distributed outside git (a 181MB intermediate cut is what keeps videos/ out of this branch — GitHub's 100MB history cap). Will attach the final MP4 to this PR after opening.

Verification

  • 720+ tests green (66 → 74 test files); every track's GLSL/registry/renderer code landed with TDD
  • Live-registry smokes: argo add vignette end-to-end; logo-outro pre-rendered 60 alpha frames from the real catalog
  • Specs and implementation plans in docs/superpowers/; per-task + whole-branch reviews ran on each track
  • Squashed from 35 local commits (full history preserved on the local working branch)

https://claude.ai/code/session_017pvzMoFKE6PbEmbaLT4q4K

…nder, showcase

Four tracks (squashed from 35 local commits; full history on the local
feat/hyperframes-integration branch):

Track 1 — Shader transitions: 11 GLSL shaders ported from hyperframes
(Apache-2.0, attribution headers), 5 -> 16 total. New
export.transition.accent config tints accent-aware shaders; accent is
part of the shader cache key.

Track 2 — argo add + registry: installs blocks/components from the
hyperframes registry (native HTML, verbatim) into blocksDir with
path-traversal guards. Tier-1 component adapter: hf-component overlay
cue + applyComponent()/removeComponent() page injection with validated
CSS-var params. ARGO_BLOCKS_DIR env bridge at all three record() sites;
argo validate checks installs + accent hex.

Track 3 — Block pre-render: hf-block overlay cue -> export-time
chromium pre-render (seeks window.__timelines with suppressEvents=false,
alpha PNG sequences, content-addressed cache salted by RENDERER_VERSION)
composited via ffmpeg overlay/enable — cutaway semantics, wired at all
four export paths. Boundary extraction clamps past-video-end marks.

Track 4 — Showcase demo (demos/hyperframes-showcase.*): 13-scene
full-tour dogfooding everything; "crafted with Playwright, composed via
HyperFrames" narrative. Video artifact distributed outside git (see PR).

720+ tests green (66 -> 74 files). Specs + implementation plans in
docs/superpowers/.
@shreyaskarnik shreyaskarnik marked this pull request as ready for review July 9, 2026 01:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant