HyperFrames 的架构蒸馏:把 heygen-com/hyperframes 从「完整视频生产框架」降级为 Video Agent 底下的一个轻量 HTML Motion Renderer。
User Intent → Motion Graphics Planner → Scene DSL → Pattern → HyperFrames-Lite → HTML/CSS/GSAP → hyperframes render
| 目录 | 内容 |
|---|---|
audit/ |
审计:ARCHITECTURE-AUDIT.md(九项产出综合)、audit.html(同内容页面)、raw/A–E(五路原始审计报告)、raw/0-smoke.md(端到端实测) |
planner/ |
Motion Graphics Planner skill:SKILL.md、references/{scene-dsl,motion-grammar,hard-rules}.md、scene-dsl.schema.json、examples/ |
lite/ |
HyperFrames-Lite skill:SKILL.md、RUNTIME-CONTRACT.md、compiler/src/(validate / grammar / select / emit / compile / hf wrapper)、patterns/*.mjs + patterns/README.md(编写契约) |
regression/ |
briefs/*.dsl.json(以 HyperFrames examples 为语料的回归 brief)、fixtures/(Pattern 单测 DSL)、run.mjs、out/SUMMARY.md |
spikes/ |
最小契约冒烟合成 |
bench/FINDINGS.md |
缺陷与量测登记册(L1–L23):每一条都带复现步骤与数字 |
upstream/不随本包分发。HyperFrames 本身由npx [email protected]在运行时取,源码见 https://github.com/heygen-com/hyperframes。
| Node | ≥ 20 |
| ffmpeg | 抽帧、拼图与 visual QA 需要(brew install ffmpeg) |
| HyperFrames | 不必预装,npx --yes [email protected] 会按需取 |
| 网络 | 首次渲染要拉 HyperFrames 与 GSAP CDN |
regression/fixtures/assets/ 里的媒体是生成的占位素材(ffmpeg 渐变),尺寸与时长与原素材一致,所以涉及媒体的 fixture 照样在测真实几何;但渲出的画面不会与任何归档对照图一致。换成你自己的素材即可,文件名保持不变。
node lite/compiler/src/compile.mjs regression/briefs/smoke.dsl.json out/smoke
cd out/smoke && DO_NOT_TRACK=1 npx --yes [email protected] render . -o out.mp4 --strict --no-best-effort --quiet
node regression/run.mjs # 全量回归:编译 + lint + 渲染 + 抽帧 + 拼图 + 运行时禁区审计不渲染的快速自检(约十几秒):
npm run regress:norender # 编译 + lint 全部 brief
npm run matrix # Layout Resolver 的 40 例单调性矩阵(A1/A2/A4 断言)
npm run audit:runtime # 运行时禁区:21 类站点全部有据lite/ 下的每个 extent / fit / ladder 数值都有记账,判据是一条硬规则:
No sensitivity, no calibration vote. 一次 attack 只有在扰动该参数会改变产物时才算票。
工具是 regression/differential.mjs(差分准入),口径与结果见 lite/WAVE2-PROTOCOL.md §7–§8、lite/WAVE3-SWEEP.md、lite/WAVE3-RESULT.md。走过的弯路与量测全部登记在 bench/FINDINGS.md——包括审计工具自己出的八个 bug,因为它们同属一类(度量把不可见的东西算成缺陷,或把自己的盲区报告成干净)。
依赖:Node ≥ 22、ffmpeg/ffprobe 在 PATH、首次运行会由 npx hyperframes 拉取 pinned Chrome。Lite 自有 0 行上游代码。