Skip to content

feat(influence): 科普视频动效建模与复用——frozen 运动层 + 《执行层》全片重制验证 - #1120

Merged
ThreeFish-AI merged 9 commits into
feature/1.x.xfrom
ThreeFish-AI/episode-vfx-reusable-models
Sep 3, 2026
Merged

feat(influence): 科普视频动效建模与复用——frozen 运动层 + 《执行层》全片重制验证#1120
ThreeFish-AI merged 9 commits into
feature/1.x.xfrom
ThreeFish-AI/episode-vfx-reusable-models

Conversation

@ThreeFish-AI

Copy link
Copy Markdown
Owner

背景与命题

用户的命题:视频动效视觉效果先建模,再通过复用这些模型的不同参数组合出不同视频效果;效果与效率都要有质的提升,不得使视觉效果变差;以重制 claude-code-explained-video(《执行层:一个循环,就是全部》)实践验证。

现状证据(为什么做)

  • 全仓 8 集 41,753 行 video/src,动效全为手写帧数学:613 处 interpolate、约 356 处 frame - i*N 错峰(步长任意)、~50 处布尔硬门瞬现(零过渡,可感知质量缺陷);没有任何一集有具名运动原语
  • 组件复用失灵实锤:frozen cards.tsxFadeUp 分镜 3 处明写、场景调用数为 0——失败发生在「分镜散文 → 代码」转译环节。
  • skills/06 早已声明五集统一动效语法(flow/pushIn/glow/meter/settle)与 HarnessStack 五层栈,并自陈「规格先行,未落地」——本 PR 是兑现既有技术债,不是另立新规。

方案总纲:共享的是「运动」,不是「形状」

Motion(怎么动)= 机制 = frozen 跨集共享Form(画什么)= 策略 = 各集 bespoke(theme/motifs/39 镜构图零改动)。这从构造上回应「过度模板化」与「重构回归」两个风险。

运动层(video/src/motion/,frozen 七文件 + 单测)

  • 令牌:时长六档(Carbon DTCG @30fps,弃 M3 十六档——量化下 6 对相邻档同帧数为伪选择)、M3 三缓动、弹簧预设锚定本仓实测手感(settle=200 即既有 9/10 调用点)、SAFE_TOP_Y 字幕安全带 SSOT。
  • 窗口/编排:MDC win() 窗口机制(TTS 实测时长变化 ⇒ 窗口自动重定时,写死帧数缺陷类构造性消灭)+ Manim lag_ratio 错峰三模式(不外溢窗口 > 最小步长 > 子项时长)。
  • 12 个运动模型 hooks(返回数值/CSS 片段而非 DOM——FadeUp 包装组件零调用的实测教训):enter/stagger/draw/impulse/breathe/travel/accelTravel/count/reveal/pushIn/dim/flowDash/shake/fadeOut。
  • 铁律 + 逃生舱:hooks 顶层调用、弹簧只吃局部帧(O(frame) 规避)、effects 永不弹跳;每集保留 ≥1 个豁免签名镜头,裸 interpolate 合法。
  • MotionGallery 独立入口评审面 + node --test 纯函数单测(ζ→过冲反例护栏等 12 例)。

配套管线(Python SSOT)

  • qa_frames --beat-heads N:每 beat 头部连抽——ISSUE-170「亚秒入场瞬态结构性失明」的机械补盲。
  • qa_frames --compare A B:同帧号 A/B 对拍(meanΔ/占比/bbox)——重制回归的归因证据工具。
  • check_script --check-motion:分镜动效列 @动词 标注 ↔ 场景代码互比(词表自 hooks.ts 派生)。
  • TTS 音频版本库:合成成果按 digest 入机器级持久库——改稿跨工作区只重配变更句(用户裁决项),回收幂等已 e2e 验证(manifest 逐字节一致)。

《执行层》全片重制(验证载体)

七幕 39 镜全部收敛运动模型 + HarnessStack 系列装置落地(P0 开场落板 + 顶边常驻条 + P6 收尾下期层呼吸预告,层数据从 series.json 派生);分镜 39/39 镜 @动词 标注。

验证(「不得变差」的证据链)

判据 结果
漂移门 verify_skeleton --strict 未登记漂移 0(含已上线 3 集惰性副本,零渲染差异)
tsc / node --test / 管线全测 全绿(294 例)
总帧数 A/B 两版同 manifest 恒等 25164 帧;实测 13.98 min 落预算窗 [13.0, 14.6](TTS 复跑漂移 -478 帧实录)
七幕中点 + beat 头部(39×4)+ 末 6 句 全分辨率与草渲 FAIL 0 · WARN 0
A/B 对拍 167 帧 仅 2 帧 >5%(p0-01/p6-08 = HarnessStack 新装置,预期变更);其余 ≤1.5% 且全部归因(顶边常驻条 / SceneTag 移位 / 令牌化缓动 / 硬门改淡入)——零未归因差异
对抗式评审 抓出 2 blocker(角标五处碰撞 / P0 缩退跳变)+ 2 should-fix,已全部修复并复审
效率实证 场景内裸帧数学 83 → 7(-92%),154 处运动模型调用;克隆(P2/P4 加速绕行累加器)精确收敛
tts-store 删集内缓存后全量回收,manifest/mp3 逐字节一致

其他

  • build(pnpm):pnpm 12 弃读 package.json 的 pnpm 字段致安装中断——构建许可迁 pnpm-workspace.yaml allowBuilds(模板+8 集同步)。
  • EP2–5 的 HarnessStack 同步与 retrofit 推广为后续独立批次(skills/06 落地状态块显式登记五集不一致)。
  • 交付件:final.mp4 13:58.80 / 43.6MB、captions.srt/vtt、cover.png(本地产物 gitignored)。

🤖 Generated with Claude Code, CodeX, Gemini

集内 audio/ 属 gitignored 本地产物,换 worktree/清盘即丢整集克隆合成成果(Claude Code
系列 mp3 已实测全量遗失)。版本库按「集 slug + 句 id + digest 前 12 位」落机器级持久
目录(默认 ~/Library/Application Support/negentropy-influence/tts-store,NE_TTS_STORE
可覆盖,--no-store 禁用):合成成功入库、集内缓存 miss 先按 digest 回收、--plan 报
「版本库可回收 N 句」并按净合成量估时;不同 digest 并存保留历史版本,整体换风格重配
除外。仅接 indextts(edge 秒级重合成无资产可丢)。纯函数契约由 test_tts_store.py
六用例钉死(回收等价缓存命中/digest 失配 miss/版本并存/同 digest 刷新/禁用直通/环境覆盖)。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
pnpm 12 不再读取 package.json 的 pnpm.onlyBuiltDependencies 字段:esbuild 构建脚本被静默
忽略,安装以 ERR_PNPM_IGNORED_BUILDS 中断、node_modules 半残(tsc 在而 esbuild 缺)。许可
迁至 pnpm-workspace.yaml 的 allowBuilds 键(与 `pnpm approve-builds esbuild --yes` 实际写入
形态逐字一致),并删除 package.json 中已死的 pnpm 字段。模板与 8 集同步(frozen/structured
档执法面),根 lockfile 零改动。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
--beat-heads N:每 beat 首句起点连抽 N 帧——ISSUE-170「句中点采样结构性错过亚秒
入场瞬态」的机械补盲(可组合 --scene 过滤幕;该模式冻帧判定关闭,静止 beat 头帧
指纹相同是合法态)。--compare A B:同帧号抽两版逐帧差异(meanΔ/差异像素占比/bbox,
numpy+pillow 零新依赖,advisory 退出码恒 0)——重制/重构「不外溢的意图变更之外
一切差异须归因」的证据工具,JND=12 抗 jpeg 噪声。check_script --check-motion:
分镜动效列 @动词 标注 ↔ 场景代码运动模型调用互比(WARN-only,词表从本集
motion/hooks.ts 派生不复制)——「FadeUp 写在分镜却零调用」实测缺陷类的机械化。
pipeline.py qa 子命令同步转发两 flag;纯函数与互比逻辑均有单测钉死。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
全部动效收敛 motion 模型:30 处进度变量/10 处弹簧/11 处错峰/6 处呼吸正弦换令牌化调用,
约 20 处布尔硬门瞬现改 useProgress 淡入(可感知质量提升),P2/P4 两段加速绕行累加器
克隆精确收敛 useAccelTravel,rise 入场与 P6 径向滑入内建 SAFE_TOP_Y 钳制(ISSUE-170
缺陷类构造性消灭),P6 渐黑改 useFadeOut(红线四模型化)。落地 skills/06 已声明未实现
的系列装置:HarnessStackP0 开场落板+缩退常驻、P1–P5 HarnessBadge 角标(SceneTag 让位
右上)、P6 收尾放大+下期层呼吸预告;层数据由 build_narration 从 series.json 派生
series-layers.json(硬编码即漂移)。分镜 39/39 镜补 @动词 标注,check-motion 全绿。
形状/构图/色彩/分镜/逐字稿零改动——总帧数复算恒等。EP2–5 的同步登记为后续批次。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
skills/06 新增运动层一节(令牌/窗口/编排/模型清单 + 五条铁律 + 反模板化逃生舱 + gallery
评审面),场景动画规则改「优先 motion 模型、裸 interpolate 是逃生舱」;HarnessStack 落地
状态块更新为「EP1 已落地、EP2–5 待同步」(五集不一致显式化);动效语法表对齐 hooks 实现
(弹簧锚定本仓实测手感,注明不抄规格散文数值)。skills/08 补 --beat-heads/--compare 操作
契约与对拍基线纪律。pipeline README 复用边界补运动层条目;路由壳、知识索引同步;issue.md
登记 ISSUE-176(FadeUp 零调用 + 布尔硬门瞬现的根因与防法)。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
对抗式评审抓出两类渲染前必修:① HarnessBadge 纵向角标(300×194)与既有左上内容五处
碰撞(P2 CornerRing 同坐标×8 拍、P3 三判定小抄、P5 官方标尺、P1 1-E 环弧、P6 循环标签)
——全片唯一零碰撞常驻区是顶边 y<50 横条(各幕左上内容最早 y=56 起),常驻形式改横向
五 chip(形式适配已落档 harness-stack 文件头);② P0 缩退终态与常驻条几何失配 +
rec>0.98 档位切换单帧跳变——改为向左上收小 + 末 8 帧与常驻条交叉淡出。另恢复两处
被误删的 in-flow 布局门(P5 骨架小标顶起卡 1 底对齐 ~46px、P4 时机表顶高 ~80px)——
门内保留淡入,布局归布局、透明度归透明度;清理 SourceAndFade 死变量。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
字幕缺失判据限定句中点采样(beat 头帧落在句首淡入与句间空隙,无字幕是合法态)。
final.mp4 13:58.80(25164 帧)+ captions.srt/vtt + cover.png(标题卡帧 1031)。
series.json statusNote 与分集 README 交付表更新:167 句勘误(原记 170)、TTS 复跑
漂移 -478 帧实录、A/B 对拍 167 帧归因表(2 帧 >5% 均为 HarnessStack 新装置,其余
≤1.5% 归因常驻条/SceneTag 移位/令牌化缓动/硬门改淡入)、音频版本库 e2e 验证记录。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
@ThreeFish-AI
ThreeFish-AI merged commit f73b1ec into feature/1.x.x Sep 3, 2026
1 check passed
ThreeFish-AI added a commit that referenced this pull request Sep 4, 2026
* docs(research): 新增量化与投资科学分组暨凯利公式投资数学调研文献;

- 新增 docs/research/quant-finance/150-kelly-criterion-and-investment-math.md:
  以凯利公式 f*=(bp−q)/b 为起点,梳理七块严格成立的投资数学定理
  (凯利仓位/统计功效/期望值与破产风险/波动拖累/复利年金/Markowitz
  分散化/Sharpe 主动管理算术),配合经多智能体交叉核验的实证数据
  (SPIVA/巴菲特十年赌局/Barber & Odean/上交所全账户研究),推导
  中国市场 2026 时点可执行操作路径与避坑清单;全文严格区分 A 类
  恒等式与 B 类实证统计,18 条 IEEE 引用;
- 新增分组 _category_.json(position 7「量化与投资科学」);
- 同步 docs/research/readme.md 新增第七分组阅读入口;
- 同步 docs/.agents/knowledge-map.md 研究文献索引,并顺带清理
  协同协议小节三条历史死链(PR #1120 前协议文档已上移用户级配置);
- 已验证 build_docs_pack 正确拾取新文档与分组标签。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* docs(quant-finance): 修正凯利公式调研文献的数值、口径与引用缺陷;

代码审查发现 5 处问题,逐条修正:

- §5 马丁格尔算例数字少一位:100 元起注连输 10 次后下一注为
  100 × 2¹⁰ = 102,400 元(此前累计已投入 102,300 元),原值 10,240
  把「有限资金撑不住翻倍序列」的论证削弱了一个数量级,方向与结论相反;
- §3 Step 1 个人养老金节税额与同句口径不一致:前半句以「税前抵扣 −
  领取时 3% 单独计税」定义净收益,但 2,400 元为未扣领取端税负的毛额;
  改为展开净额推导 2,400 − 360 = 年净节税 2,040 元;
- §0 立论与 §1.7 自述边界冲突:Sharpe 恒等式约束的是全体主动资金的
  资金加权平均,并不排除个别人跑赢(§1.7 原文即如此),故「存在预测
  公式」本身不违反该恒等式;条件收紧为「人人靠某公式跑赢市场」;
- §1.4「精确 7.82%」依赖未声明的口径切换:补充 σ 为简单收益率标准差、
  s 为对数收益率标准差及 s² = ln(1+σ²/(1+A)²) 换算关系,精确值按 σ
  口径重算为 8.23%;同时将 e^{−s²/2} 改写为 exp(−s²/2),消除正文裸
  花括号在 react-markdown + rehype-katex 下原样显示的问题;
- §5 杠杆 ETF 行以文字形式引用「FINRA 09-31」,致参考文献 [18] 成为
  全篇唯一无正文锚点的条目,按 IEEE 格式补上编号引用。

验证:全部 18 条引用编号双向闭合(无孤儿、无未定义);表格列数一致;
正文无裸花括号;G = 8.23% 与 102,400 元经 Python 独立复算确认。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* docs(links): 收口 Agent 指令源上移遗留的 42 处仓库内死链;

协作协议文档上移用户级配置后(AGENTS.md / CLAUDE.md /
browser-validation.md / reference-specifications.md 四份已从仓库移除),
docs/ 下仍有 42 处相对链接指向这些不存在的文件,发布到 wiki 后全部为死链。
前一次仅清理了 docs/.agents/knowledge-map.md 的 3 处,本次全量收口:

- 本仓自有文档(concepts / research / i18n / reference/wiki,共 25 处):
  改指用户级规范路径 `~/.claude/CLAUDE.md`、
  `~/.agents/docs/browser-validation.md`、
  `~/.agents/docs/reference-specifications.md`,保留原句语义与锚点作用;
- 历史 Issue 记录(docs/.agents/issue.md,13 处):仅去链接、原文表述
  与当时的仓内路径一并保留,不改写历史事实;
- perceives 镜像目录(4 处):该目录描述的是另一仓库的结构,同样仅去
  链接、不改指向,避免把本仓路径错误地断言给上游。

同步修正去链接后残留的两处中文排版空格。

验证:四份文档的仓库内死链归零(改前 42 处);diff 未新增任何链接;
19 个受改文件表格列数无回归;build_docs_pack 重跑,wiki 导航正常构建。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
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