# 3D、物理、具身与复刻题的加分亮点（E1 / R1 / P1 / P2 / V2）

范围：第二轮 `r2` 的 E1、R1、P1、P2、V2。只看 `done=true` 且有成片的运行，口径是成片最终效果。数据取自 cpu001 面板（本机连不上公网地址，经 `ssh cpu001` 读 `localhost:8793`，只读），快照时间 2026-10-23。

前文 `frontier-critique-physical.md` 回答“做得最好的成片还差什么”，`defects-E1-C1-R1-P-V2.md` 记录缺陷。本文回答反方向的问题：成片里有哪些超出及格线、能拉开差距的细节。Opus 5.5 的 P1、P2、V2 和 cc-hf-R1 是前文之后才补跑完成的，本文重点看了这几条。

## 结论

1. 最强的亮点集中在 Opus 5.5（cc），而且 bare 和 hf 两档都有，是稳定习惯，不是偶然。本文记录的 18 条亮点里，15 条来自 cc（bare 8 条、hf 7 条），3 条来自 codex，其余模型没有。它们有一个共同机制：cc 会给关键物理现象写一个小型计算模型，不只给形状写缓动曲线。例如 cc-bare-P2 的网格软体（顶点碰撞投影、位移扩散、体积补偿、阻尼弹簧），cc-bare-P1 的线长守恒，cc-bare-V2 用 `signalstats` 测参考片亮度再校准。这推翻了前文“三家都只有关键帧动画”的判断中的一部分：C2（材料只是全局形状参数）和 C3（物体不推水、风不随航向）在 cc 的新成片里已经被部分突破。
2. 前文列为“离真实还差什么”的几项，有四项在新成片里出现了：面团的局部指痕和指间鼓包（cc-bare-P2 6.5 s、cc-hf-P2 5.0 s）、弹性恢复滞后于手指（cc-bare-P2 11.7–12.2 s）、船首浪和顺航向的风（cc-hf-R1 1.0 s、8.0 s）、全景保留真实尺度（cc-hf-P1）。仍然没有任何成片做到的是：负载下的惯性和超调、液面随加速度晃荡、头部相机随手臂反作用力抖动。
3. 最能拉开差距的亮点有三类。第一类是超出题面、但符合任务目的的步骤，例如 cc-bare-P1 穿过针眼后换抓、把线拉过去。第二类是让物理量在画面里守恒或有去向，例如线轴随拉线转动、换物体时面团沉入台面。第三类是复刻时对原片细节的定量贴合，例如 cc-bare-V2 侧面远景的轨迹和画外落地的光。三类都是同题其他模型没有的。
4. GPT-6 Astra（codex）的亮点经复核仍然成立，但已不再独有或已饱和。P2 的“面团塑性、球弹性”两档都做到了（codex-hf-P2 面团高宽比 1.01 → 0.57 并保持），但 cc 两档做到了更细的局部形变。E1 的干净接触和“杯垫留在桌上”，cc-hf-E1 和 dsh-bare-E1 也有。V2 在 6.6 s 切镜，本轮 8 个 V2 成片全部做到，已经饱和。
5. 现有 rubric 草案几乎奖励不到这些亮点。L2 checklist 只问“有没有做到”，整体压扁的面团和带指痕的面团都会通过；R1-Q4 只问“有没有风”，不问风向。建议新增一层“加分项”：按题预先写好的二元问题，只加分不扣分，每条要求给出时间点和画面证据，并尽量配可计算的代理指标（见最后一节）。

## 什么算亮点

本文只收同时满足三个条件的细节：

1. 在成片里直接看得到，或用脚本测得。只在源码里写了、成片里看不出的，不算（例如 cc-hf-R1 张臂的“超调”，见 R1 节）。
2. 超出及格线。题面要求的动作做到了只算及格，例如“抓起杯子”“面团保持形变”。
3. 相对同题其他运行有区分度。多家都做到的细节单独列为“已饱和的正面细节”。

下文“看到”指拼图或原帧中直接可见；“测得”指脚本输出；“推断”和“凭记忆”单独标注。

## 样本

快照 2026-10-23。只统计 `done=true` 且有成片的运行。

| 题 | 有成片的运行 | 本文之前的报告没看过的 | 无成片 |
| --- | --- | --- | --- |
| E1 | cc-bare、cc-hf、codex-bare、codex-hf、dsh-bare、dsh-hf、dshp-bare、sol-bare（8） | 无 | cc5-bare（超时） |
| R1 | cc-bare、cc-hf、cc5-bare、codex-bare、codex-hf、dsh-bare、dsh-hf、dshp-bare、sol-bare（9） | cc-hf、cc5-bare | 无 |
| P1 | cc-bare、cc-hf、codex-bare、codex-hf、dsh-bare、dsh-hf、dshp-bare、sol-bare（8） | cc-bare、cc-hf | cc5-bare（超时） |
| P2 | cc-bare、cc-hf、codex-bare、codex-hf、dsh-bare、dsh-hf、dshp-bare、sol-bare（8） | cc-bare、cc-hf | cc5-bare（超时） |
| V2 | cc-bare、cc-hf、codex-bare、codex-hf、dsh-bare、dsh-hf、dshp-bare、sol-bare（8） | cc-bare、cc-hf | cc5-bare（超时） |

每个格子只跑了一次。“稳定习惯”的判断依据是同一模型的两档、多道题是否反复出现同类亮点，不是重复运行。

## 方法

视频经 `ssh cpu001` 从面板下载到 `/tmp/c2v-hl-phys/vid/`，参考片用 `scp` 从 `inputs/V2/reference.mp4` 取得（面板上没有这个文件）。看图用 2 fps 全片拼图找候选，再在候选段用 4–10 fps 拼图或原分辨率帧确认。

| 工具 | 用途 | 位置 |
| --- | --- | --- |
| `sheet.py`、`grab.py`、`p2shape.py`、`v2compare.py` | 复用前文脚本：拼图、原帧、P2 形状、V2 轨迹和帧相关 | `phys-measure/` |
| `cmpsheet.py` | 多个运行按同一时刻并排（行是运行，列是时刻） | `phys-measure/` |
| `v2regions.py` | V2 侧面段两个区域的亮度曲线：右侧起飞烟团区（x 0.62–1.0，y 0.15–0.80）和左侧落地光区（x 0–0.30，y 0.45–0.95），每 0.25 s 一点，7.0–11.75 s | `phys-measure/` |
| `panelarea.py` | P2 多格里同一颜色的面积随帧变化，找各格“降到一半”的帧，用于检查换物体是否同步 | `phys-measure/` |
| `hlfig.py` | 生成带中文标注的亮点拼图 | `phys-measure/` |
| 源码检索 | 在 cpu001 的 `runs/<id>/ws` 里检索 verlet、spring、damp、wake、hair 等关键字，判断亮点是计算出来的还是手工摆的 | 只读 |

## E1：第一视角抓杯子

E1 没有找到同题独有、能拉开差距的亮点。前文已知的正面细节经复核成立，但多家都有：

| 细节 | 运行与时间 | 复核结果 |
| --- | --- | --- |
| 杯子离桌时杯垫留在桌上，杯影与杯底分离 | codex-bare-E1 10.0–11.0 s；cc-hf-E1 10.5 s；dsh-bare-E1 9.5–11.5 s | 三家都有，已饱和 |
| 接触在大尺度下清楚可见，夹爪与杯子之间无遮挡 | codex-hf-E1 7.0–9.0 s（前文） | 成立，但只是“看得清”，属于及格线以上一点 |
| 头部先扫视、找到目标再锁定 | cc-bare-E1 0.5–3.0 s；cc-hf-E1 0.5–2.5 s（角标 SCANNING → TARGET LOCKED） | 成立，有任务意图；codex 两个运行的头部也会跟随杯子转动，区分度一般 |
| 把杯子举到镜头前展示 | cc-bare-E1 12–14.5 s（能看到杯中咖啡）；dsh-bare-E1 12.5–14.5 s | 两家都有 |

E1 真正能拉开差距的方向（负载响应、液面随加速度倾斜、头部相机的反作用抖动），本轮没有任何成片做到。cc-bare-E1 的源码写了“临界阻尼的头部跟踪”，但它的效果在成片里是平滑跟随，看不出阻尼特征。这道题如果要给加分项，应该按前文 N1 的思路改题，让这些现象成为题目的一部分。

## R1：泰坦尼克船头

本轮新增成片：cc-hf-R1（Opus 5.5 + HyperFrames）和 cc5-bare-R1（Opus 5）。cc5-bare-R1 的两人是并排的剪影、四臂平伸，没有亮点，不再展开。

### 看到的亮点

| 编号 | 运行与时间 | 看到了什么 | 为什么加分（相对同题其他运行） | 草案能否奖励 | 怎么测 |
| --- | --- | --- | --- | --- | --- |
| R1-a | cc-hf-R1 0–2.5 s（1.0 s 原帧） | 侧面全景里船首劈开白色浪花，船壳沿线有一道白色尾迹；源码 `bow.html` 第 936、950 行分别画“向两侧张开的船首浪峰、被带向船尾的泡沫”和“船首喷溅” | 前文 C3：codex 两个 R1 的吃水线特写都没有船首浪，dsh 海面光流为 0；cc-bare-R1 只在 0.5–1.5 s 的近景有浪花。cc-hf-R1 让船“在推水”，浪的位置和船首对得上 | 部分。R1-Q4“有没有风的迹象（头发、衣物、海浪）”任一项成立就通过，不区分“海浪是不是船推出来的” | 二元问题：“船首与水面交界处是否有白色浪花，并沿船身向后拖出尾迹？” |
| R1-b | cc-hf-R1 5.5–11 s（8.0 s 原帧） | 女方红发整束向画面左侧、也就是船尾方向飘动；男方在身后双手扶腰；女方手臂略高于水平、闭眼 | 前文记录 dsh-bare-R1 的头发向侧面飘，与航向垂直；codex-hf-R1 只有几条刚性黑片轻微摆动。这里风向和航向一致，并且张臂姿势不再是严格的水平 T 字 | 部分。R1-Q4 只问“有没有风”，不问方向 | 二元问题：“头发或衣物的飘动方向是否指向船尾（与船前进方向相反）？”；代理：头发区域的主方向与船头—船尾轴夹角 < 45° |
| R1-c | cc-hf-R1 0–15 s（2 fps 拼图） | 一条连续运动镜头：侧面全景 → 摇臂推近到船头两人（3–5.5 s）→ 张臂和台词 → 12–15 s 拉回全景并出片名 | 同题多数运行镜头不动或只有轻微推近（前文 K9）。这条镜头有“建立—靠近—情绪高点—抽离”的结构，节奏服务于情绪 | 部分。R1-Q5“是否从侧后方推近或环绕”能奖励推近，不奖励“推近后再拉开收束” | 相机运动估计（背景全局光流）得到推近—停留—拉远三段；二元问题：“镜头运动是否在情绪高点前后改变方向？” |
| R1-d | cc-bare-R1 1.0–3.0 s 字幕、5.5–9.5 s 字幕、9.0–11.5 s 字幕 | 开场字幕“1912 年 4 月 14 日 · 北大西洋”；台词先是男方“把手给我……闭上眼睛”，再是女方“Jack……我在飞！” | 凭记忆（未逐帧核对电影）：这一幕发生在撞冰山当天的黄昏，台词顺序与电影一致。其他运行要么没有台词，要么只有一句“I'm flying!”（dshp-bare-R1）。这是对原片叙事背景的还原，不只是构图 | 部分。R1-Q6“陌生人能否认出”会受益，但没有“细节是否忠实于原片”的条目 | 二元问题：“画面中的台词、日期或其他文字信息是否与原片一致？”（需要题目作者提供原片事实表） |
| R1-e | codex-bare-R1 0.5–6 s 推近，11–14.5 s 环绕到船头正前方（2 fps 拼图） | 镜头从侧后方推近两人，最后绕到船头正前方，落日在船头背后；男方在身后扶腰（复核前文） | 同题唯一结束在“正面船头 + 落日”构图的运行，空间关系最清楚。cc-hf-R1 的风和浪更好，codex-bare-R1 的三维站位和环绕路径更好 | 部分，同 R1-c | 同 R1-c |

张臂动作：cc-hf-R1 源码第 1109 行写了“先下沉、再上抬并超调、最后稳定”。10 fps 拼图（5.0–7.3 s）里，手臂约在 5.2–5.8 s 打开，人物只占约 100 px 高，看不出下沉和超调。这一条只记为源码意图，成片未确认，不计亮点。

## P1：四视角穿针

### 看到的亮点

| 编号 | 运行与时间 | 看到了什么 | 为什么加分（相对同题其他运行） | 草案能否奖励 | 怎么测 |
| --- | --- | --- | --- | --- | --- |
| P1-a | cc-bare-P1 4.5 s 插入、6.0–7.0 s 松手换抓、8.6–9.0 s 从上方越过针抓线头、9.0–10.9 s 拉线（四格原帧） | 把穿针拆成了真实的双手式操作序列：线头穿过针眼后松手，夹爪绕到针的另一侧夹住线头，再把线拉过去；角标“PULLED 49.1 mm”（11.5 s）。7.0 s 腕部格里能看到自己张开的两指夹在针眼两侧 | 同题其他运行都停在“线头进了针眼”这一刻（codex-bare-P1 10.3 s、codex-hf-P1、dsh-hf-P1 9.0 s）。只有它做出了“穿过以后还要拉过去”这一步，这是理解任务目的，不只是画出关键帧 | 不能。E1 式的 Q3“接近、对准、闭合、抬起”只奖励规定步骤，没有“超出题面但符合任务目的的子步骤” | 二元问题：“线头穿过针眼后，是否有把线从另一侧拉过去的动作？”；“手是否在穿过后松开并重新抓取线头？” |
| P1-b | cc-bare-P1 2.0–11.8 s 正面格线轴（裁切拼图） | 线从桌上的线轴连续引出，拉线时线轴随之转动：凸缘上的橙色标记从 2.0 s 的右下方转到 11.8 s 的水平位置。源码 `scene.js` 第 470 行让线轴转角等于“已用掉的线长 ÷ 线轴半径” | 其他运行的线都是凭空出现的一段，两端自由。线轴把“线从哪来、被拉走多少”画成了可见的守恒量，观众不看角标也能知道线被拉动了 | 不能 | 二元问题：“线的另一端是否连到画面里的某个来源（线轴、线团）？拉线时来源是否有相应运动？”；可计算代理：跟踪线轴标记的转角，和末端位移比较 |
| P1-c | cc-bare-P1 9.0–11.5 s 正面格、侧面格 | 针眼到夹爪的一段线拉直，针眼到线轴的一段保持下垂；源码写明“eye → pinch: straight under tension”，下垂量随拉出长度减小 | 前文记录 codex-hf-P1 的线是“刚性短杆 + 下垂段”拼接，dsh-bare-P1 是直杆。这里“直”和“垂”各有原因（受拉和不受拉），同一根线的两种形态有物理理由 | 不能 | 二元问题：“线被拉住的一段是否比自由悬挂的一段更直？” |
| P1-d | cc-hf-P1 0–12 s 正面格（3.0 s、9.0 s 原帧） | 针相对机械臂的尺度接近真实：正面格里针是一根细线，比夹爪还细。可读性交给腕部格：3.0–9.0 s 针眼在腕部格里由远及近，角标横向误差从 11.42 mm 收敛到 0.00 mm | 前文 C4：其他 P1 成片里针都和小臂差不多长（codex-bare-P1 10.3 s 正面格）。cc-hf-P1 用“全景保尺度、特写保可读”的分工，同时满足两者 | 不能（草案无尺度条目） | 二元问题：“正面或侧面全景中，针的长度是否明显小于机械臂前臂？” |
| P1-e | codex-hf-P1 9.5–11.9 s 侧面格（并排拼图） | 松手后线搭在针眼上，两侧自然下垂成弧线 | 这是 codex 在 P1 上的材料亮点；前文已记录，复核成立。但线在夹爪前仍有一段刚性直杆（前文 C2），同一根线前后两种材料 | 不能 | 二元问题：“松手后线是否在重力下自然下垂？” |

对前文的一处更正：前文待确认第 4 条认为 codex-bare-P1 10.3 s 腕部格里“线在针眼平面内竖直摆放”，和其他三格矛盾。复核后看，腕部相机装在线的上方、沿线的方向往前看时，一根远离镜头的线本来就会投影成一条从画面底部伸向中心的竖线。cc-hf-P1 9.0 s 的腕部格也是这样。所以这一条更可能是正常透视，不是缺陷；要定论仍需导出相机矩阵。

### 只在源码里、没有交付的思路

cc5-bare-P1（Opus 5）在 `scene/thread.js` 写了一根 verlet 绳：6 个子步、每步 16 次距离约束迭代、重力 −420 cm/s²；针眼建成胶囊形碰撞槽，线头穿过后“拓扑锁定”，不会从针板外侧滑出；线头附近 46 个节点的弯曲刚度从 0.30 线性降到 0，等于“线头短而挺、其余柔软”。这正是前文认为成片缺少的东西。但这个运行在 3601 s 超时，没有成片，按口径不计分。它说明思路已经出现，交付能力（软件渲染下的时间预算）是瓶颈。

## P2：捏面团与解压球

### 看到的亮点

| 编号 | 运行与时间 | 看到了什么 | 为什么加分（相对同题其他运行） | 草案能否奖励 | 怎么测 |
| --- | --- | --- | --- | --- | --- |
| P2-a | cc-bare-P2 6.5 s 背面特写格、正面格；13.0 s 正面格左缘（原帧） | 松手后面团留下局部塑性形变：背面特写里四道指槽，指间的面团向外鼓起；正面格有拇指压出的深坑；7 s 换到解压球后，面团仍以这个形状留在画面左侧 | 前文 C2 的结论是“没有一家有指痕，codex 只是整体压扁”。这里是接触点处的局部流动，形状由手指决定 | 部分。K5 的“面团是否保持形变”能通过，但整体压扁也能通过，分不出高下 | 二元问题：“松手后，面团上是否能看到与手指位置对应的凹痕？”；可计算代理：捏前与松开后轮廓做仿射拟合，残差大说明是局部形变而非缩放 |
| P2-b | cc-bare-P2 11.6–12.2 s 正面格（10 fps 拼图） | 解压球在手指离开后仍保留一个局部凹窝（11.7 s 最清楚），约 0.5 s 后填平（12.2 s）。笑脸贴图随表面一起变形 | 前文记录 codex-hf-P2 的球“恢复时间与手指张开完全同步，没有滞后”。这里恢复滞后于手指，是泡棉黏弹性的样子 | 不能（草案只问是否恢复原形） | 二元问题：“手指离开后，球上的凹痕是否仍短暂可见，再逐渐消失？”；代理：手指离开帧到球轮廓恢复帧的时间差 > 0.2 s |
| P2-c | cc-hf-P2 5.0 s 三格（原帧） | 面团留下 4–5 道深指槽，正面、侧面、俯视三格里凹痕的位置相互对应；底部角标并排显示“面团 指痕 12.1 mm、解压球 0.0 mm” | 和 P2-a 同类，并且三个视角里的局部形变一致。角标的对比数字与画面一致（不像 dsh-hf-P2 写“slow recovery”实际 0.3 s 回弹） | 部分，同 P2-a | 同 P2-a；另问“各视角中凹痕的数量和位置是否一致？” |
| P2-d | cc-hf-P2 5.5–6.3 s 三格（原帧，逐帧面积） | 换物体时，面团随台面升降孔下沉（5.73 s 三格里都沉下一半），球再从孔里升起（6.27 s 三格同时露出球顶）。测得：面团面积降到一半的时刻，正面 5.90 s、侧面 5.87 s、俯视 6.00 s；球首次出现，俯视 6.10 s、正面 6.17 s、侧面 6.20 s。俯视相机往孔里看，比另两格多看到几帧，顺序符合几何 | 前文记录 codex-bare-P2 8.75–10.0 s 换物体时俯视格比另两格早约 0.75 s，dshp-bare-P2 面团缩成一点后消失。这里给出物体去向的机制，三格相差不超过 4 帧 | 部分。G6“凭空出现或消失”会给它通过，但不会给加分 | 分格颜色面积曲线：换物体段各格“降到一半”的时刻相差 ≤ 4 帧；二元问题：“换物体时是否交代了旧物体去哪、新物体从哪来，且各视角同时发生？” |
| P2-e | codex-hf-P2、codex-bare-P2（复核前文） | 塑性和弹性分开：codex-hf-P2 侧面格面团高宽比 1.01（1.0 s）→ 0.57（3.0 s）→ 0.57（7.0 s），球 0.99（9.0 s）→ 0.54（10.0 s）→ 0.99（12.0 s）。本次重跑 `p2shape.py`，数字与前文一致 | 相对 dsh、sol、dshp（面团都回弹）是明确的区分。相对 cc 两档，codex 只有整体压扁，没有局部指痕 | 能。K5 和 P2 专题问题可以奖励 | `p2shape.py` 的捏前和松开后高宽比 |

P2 亮点的来源（源码，只读）：cc-bare-P2 的 `main.js` 第 346 行起是一个 `SoftBody` 类。手指碰到的顶点被投影到手指碰撞体外，位移在网格邻接关系上扩散；损失的体积按 0.8 的比例补到其余表面，形成指间鼓包；弹性球用阻尼弹簧（k = 420，c = 14）追随目标形状，手指离开后目标位移每步衰减到 0.7 倍，所以凹窝恢复有滞后。cc-hf-P2 角标里的“压痕深度”由网格顶点位移实时算出（`squeeze.html` 第 790–822 行），不是写死的数字。这说明 cc 的指痕是计算出来的，不是逐帧雕刻的。

## V2：复刻 Roadster 片段

### 测量

切镜时间：8 个成片全部在 6.6 s 切镜，与参考片一致。前文列为 codex-bare-V2 亮点的“6.5 s 切镜”已经饱和，不再计为亮点。

侧面远景（6.6 s 之后）的车辆轨迹和两个区域的亮度曲线。轨迹列来自 `v2compare.py`（dsh 两行沿用前文数字）；亮度列来自 `v2regions.py`，7.0–11.75 s 每 0.25 s 一点，与参考片同时刻比较。

| 运行 | 轨迹与参考的平均距离 | 最高点（时刻，y） | 水平净位移（参考 −0.74） | 左侧落地光区：相关 / 平均绝对误差 / 11.75 s 亮度（参考 87.9） | 右侧烟团区：相关 / 平均绝对误差 |
| --- | --- | --- | --- | --- | --- |
| reference | 0 | 9.2 s，0.38 | −0.74 | 1 / 0 / 87.9 | 1 / 0 |
| cc-hf-V2 | 0.038 | 9.2 s，0.38 | −0.73 | 0.98 / 9.8 / 54.5 | 0.87 / 14.0 |
| cc-bare-V2 | 0.045 | 9.3 s，0.35 | −0.78 | 0.99 / 4.3 / 78.2 | 0.79 / 7.5 |
| dshp-bare-V2 | 0.066 | 9.2 s，0.39 | −0.69 | 0.74 / 23.1 / 76.4 | 0.91 / 6.8 |
| codex-bare-V2 | 0.092 | 9.4 s，0.34 | −0.47 | 0.97 / 15.1 / 31.5 | 0.70 / 10.0 |
| dsh-hf-V2 | 0.217（跟踪到顶灯） | 约 9.7 s | 约 0 | 0.94 / 13.1 / 65.6 | 0.97 / 34.4 |
| codex-hf-V2 | 0.244（受烟团干扰） | 9.3 s，0.26 | 有效段同向 | 0.97 / 11.9 / 31.0 | 0.80 / 9.1 |
| sol-bare-V2 | 0.260 | 9.7 s，0.08 | −0.65 | 0.90 / 20.0 / 15.3 | 0.87 / 18.0 |
| dsh-bare-V2 | 0.329 | 约 10.0 s | 同向 | 0.62 / 19.8 / 4.3 | 0.35 / 13.2 |

读法：轨迹距离越小越好；亮度曲线既看相关（形状），也看误差（量级）。右侧烟团区的区分度低：只收文本的 dshp-bare-V2 误差反而最小，但它的逐秒帧相关只有 0.06–0.61，画面整体并不像。所以烟团区只作辅助，不单独作为亮点证据。

### 看到的亮点

| 编号 | 运行与时间 | 看到了什么 | 为什么加分（相对同题其他运行） | 草案能否奖励 | 怎么测 |
| --- | --- | --- | --- | --- | --- |
| V2-a | cc-bare-V2 8.25–10.25 s（与参考并排拼图） | 车从右侧升起时两股喷流向下（8.5 s），空中横滚（9.25–9.75 s），10.0 s 翻正、喷流向下、准备从左侧出画，位置和姿态都与参考片同一时刻一致 | 轨迹距离 0.045，仅次于 cc-hf-V2 的 0.038，约为 codex-bare 的一半。前文记录 codex-bare-V2 9.25–9.5 s 倒置时喷流朝上是对的，但它的车最后落在画内，水平净位移只有 −0.47 | 部分。§4.2 只有“参考片语法比对”（镜头时长、转场、配色），不比对事件轨迹 | `v2compare.py` 的轨迹距离、最高点时刻和高度、水平净位移 |
| V2-b | cc-bare-V2 10.75–11.75 s | 落地点在画外，左侧依次涌进白光、白烟和斜向光条，和参考片的处理一样 | 左侧落地光区的亮度曲线与参考片相关 0.99、平均绝对误差 4.3：10.75–11.75 s 依次为 37、51、62、72、78，参考片为 37、48、63、79、88。其他复刻误差都在 9.8 以上，codex 两档最终亮度只有参考的约三分之一。前文记录 codex-bare-V2 的落地处是一块静止发光的椭圆 | 不能 | 区域亮度曲线与参考的相关和误差（`v2regions.py`）；二元问题：“落地是否发生在画外，只通过从画面边缘涌入的光和烟表现？” |
| V2-c | cc-hf-V2 8.6–10.3 s | 侧面飞行的最高点时刻和高度与参考片完全相同（9.2 s，y 0.38），水平净位移 −0.73 | 同题轨迹最接近参考 | 部分，同 V2-a | 同 V2-a |
| V2-d | cc-bare-V2、cc-hf-V2 0–6 s（并排拼图） | 正面段的飞车是红色，与参考片一致；codex 两档的车是灰白色 | 小细节，但属于“复刻时读对了原片的颜色角色” | 部分（配色角色） | 主体车辆的色相与参考比较 |

这些亮点的来源（轨迹，只读）：cc-bare-V2 先把参考片按 2–4 fps 拼图逐段看，用 `signalstats` 测参考片各段的平均亮度，再把参考片和草稿逐秒并排比较，前后调整了亮度、烟的颜色和起跳时刻。它把“复刻”当成可测量的拟合问题，所以亮度曲线贴得很紧。注意 cc-bare-V2 侧面段的车画成了楔形，更像 Cybertruck，不像 Roadster 的流线车身，这一点不如参考。

## 归纳：亮点出在哪里

### 按模型和条件

只计直接看到或测得、且同题独有的亮点。“已饱和”的细节不计。

| 模型 | bare 的亮点 | hf 的亮点 | 小计 | 性质 |
| --- | --- | --- | --- | --- |
| Opus 5.5（cc） | P1-a 换抓拉线、P1-b 线轴转动、P1-c 受拉段拉直；P2-a 面团指槽、P2-b 球凹窝滞后；R1-d 日期与台词还原；V2-a 轨迹、V2-b 落地光 | P1-d 真实尺度；P2-c 三格指痕一致、P2-d 换物体同步；R1-a 船首浪、R1-b 风向、R1-c 推拉镜头；V2-c 轨迹最高点 | 15 | 两档都有，四道题（P1、P2、R1、V2）都有，稳定 |
| GPT-6 Astra（codex） | R1-e 绕到船头正前方 | P1-e 线松手后下垂；P2-e 塑性与弹性区分（bare 同样做到） | 3 | 稳定但不再独有：P2-e 被 cc 超过 |
| V4.1-Flash（dsh） | 无同题独有亮点。dsh-bare-P2 4.0 s 有局部压痕，但松手后回弹；dsh-bare-R1 风感强，但风向和航向垂直 | 无 | 0 | 有“方向对、物理错”的半个亮点 |
| GPT-5.6 Sol、V4-Pro | 无 | 不适用 | 0 | dshp-bare-V2 轨迹距离 0.066 偏好，但整体画面不像（帧相关最低 0.06），不算亮点 |
| Opus 5（cc5） | cc5-bare-P1 的 verlet 绳、cc5-bare-P2 的 `softbody.py` 都只在源码里，运行超时没有成片 | 不适用 | 0 | 思路已出现，交付失败 |

条件的影响：cc 的亮点在 bare 和 hf 之间大致各半（bare 8 条，hf 7 条），P2 的指痕两档都有，V2 的轨迹两档都最好。所以 HyperFrames skill 不是亮点的来源。skill 带来的差别更像版式：cc-hf-P2 有并排的“压痕深度”对比角标，cc-hf-R1 的镜头更完整。

### 偶然还是习惯

| 亮点类型 | 证据 | 判断 |
| --- | --- | --- |
| 为关键物理现象写小型计算模型 | cc-bare-P2 `SoftBody`、cc-hf-P2 由顶点位移算压痕深度、cc-bare-P1 线长守恒、cc-hf-R1 船首浪和泡沫、cc5-bare-P1 verlet 绳、cc5-bare-P2 `softbody.py` | Anthropic 两代模型都有这个倾向，是习惯。Opus 5 想到了但交付不了，Opus 5.5 能在时间内交付 |
| 把复刻当成测量与拟合 | cc-bare-V2 用 `signalstats` 测亮度、逐秒并排比较；cc 两档轨迹都最接近参考 | 两档一致，倾向于习惯 |
| 超出题面的任务步骤 | 只有 cc-bare-P1 的换抓拉线 | 只有一例，暂时只能算偶然 |
| 叙事层面的原片知识 | 只有 cc-bare-R1 的日期和台词顺序 | 一例，偶然 |
| codex 的塑性与弹性区分 | codex-bare-P2、codex-hf-P2 都做到 | 习惯，但实现是整体缩放 |

### 哪些亮点最能拉开差距

| 亮点 | 同题有几家做到 | 为什么难 |
| --- | --- | --- |
| 局部塑性形变和弹性恢复滞后（P2-a、P2-b、P2-c） | 只有 cc 两档 | 需要网格级的接触和体积处理，整体缩放做不出来 |
| 超出题面的任务步骤（P1-a） | 只有 cc-bare | 需要理解“穿针”的目的是让线穿过去，而不是让线头碰到针眼 |
| 守恒量和物体去向可见（P1-b、P2-d） | 只有 cc | 需要把场景里的物体当成有状态的整体 |
| 复刻的事件轨迹和画外事件（V2-a、V2-b） | cc 两档明显领先 | 需要逐段读参考片并定量校准 |
| 环境耦合：船推水、风顺航向（R1-a、R1-b） | 只有 cc-hf 同时做到两项 | 需要把“船在动”转成水和头发的方向 |

## 最强亮点与拼图

拼图在 `highlights/` 目录。每张图都标了运行 id、秒数和一句说明，对照帧单独标为“对照”。

| 排名 | 亮点 | 拼图 |
| --- | --- | --- |
| 1 | cc-bare-P1 4.5–11.5 s：线头穿过针眼后松手、从另一侧换抓、把线拉过去 49.1 mm；桌上线轴随拉线转动（2.0 s → 11.8 s） | `highlights/cc-bare-P1_4.5-11.8s.jpg` |
| 2 | cc-bare-P2 6.5 s 面团留下四道指槽和指间鼓包；11.7–12.2 s 解压球的凹窝在手指离开后约 0.5 s 才填平 | `highlights/cc-bare-P2_6.5-12.2s.jpg` |
| 3 | cc-bare-V2 8.5–11.5 s：侧面远景的喷流方向、横滚、翻正时刻与原片一致，画外落地的白光、白烟和斜向光条也还原了（落地光区亮度与参考相关 0.99） | `highlights/cc-bare-V2_8.5-11.5s.jpg` |
| 4 | cc-hf-P2 5.0–6.27 s：三格指痕位置一致；换物体时面团沉入台面、球从同一孔升起，三格相差不超过 4 帧 | `highlights/cc-hf-P2_5.0-6.27s.jpg` |
| 5 | cc-hf-R1 1.0 s 船首劈浪带出尾迹，8.0 s 头发顺风吹向船尾（对照 codex-hf-R1 无船首浪、dsh-bare-R1 风向与航向垂直） | `highlights/cc-hf-R1_1.0-8.0s.jpg` |
| 6 | codex-hf-P2 6.4 s 面团保持压扁、12.0 s 解压球恢复原形（高宽比 1.01 → 0.57 保持；0.99 → 0.54 → 0.99） | `highlights/codex-hf-P2_6.4-12.0s.jpg` |
| 7 | cc-hf-P1 3.0–9.0 s：全景格里针保持真实的细小比例，可读性交给腕部格（对照 codex-bare-P1 10.3 s 针和上臂一样长） | `highlights/cc-hf-P1_3.0-9.0s.jpg` |

## 对 rubric 加分项的建议

### 现有草案为什么奖励不到

| 草案条目 | 能奖励的 | 奖励不到的 |
| --- | --- | --- |
| L2 Q 类（契约） | 题面要求的步骤是否出现 | 超出题面但符合任务目的的步骤（P1-a） |
| K5 / P2 专题 | 面团是否保持形变 | 整体压扁和局部指痕得分相同（P2-a 与 P2-e 无法区分） |
| R1-Q4 | 有没有风或浪 | 浪是不是船推出来的、风向对不对（R1-a、R1-b） |
| G6 | 物体有没有凭空消失 | 物体去向有没有交代（P2-d） |
| §4.2 复刻语法比对 | 镜头时长、转场、配色 | 事件轨迹、画外事件的表现（V2-a、V2-b） |
| L3 成对比较 | 能分出整体高下 | 能分出来，但解释不了为什么赢，judge 也可能看不到 0.5 s 的凹窝 |

### 建议：新增“加分项”层

做法：每道题在看到候选视频之前，预先写 4–6 条加分问题，与 L2 一起冻结。加分项只加分不扣分，不进入“完成题目”的判定。每条要求 judge 给出时间点，并截帧作为证据；源码里有、成片看不出的一律不算。能算的项先用代理指标初筛，再由 VLM 或人确认。

| 加分类别 | 本轮例子 | 给 judge 的二元问题（示例） | 可计算的代理指标 |
| --- | --- | --- | --- |
| B1 任务目的的延伸 | P1-a | “线头穿过针眼后，是否有松手、换抓、把线拉过去的动作？” | 夹爪开合次数；线头穿过后末端是否移到针的另一侧 |
| B2 守恒与物体去向 | P1-b、P2-d | “线的另一端是否连到画面里的线轴并随拉线转动？”“换物体时旧物体去了哪里，各视角是否同时发生？” | 线轴标记转角与末端位移之比；分格颜色面积曲线的时刻差 ≤ 4 帧 |
| B3 局部接触形变与动态 | P2-a、P2-b、P2-c | “松手后面团上是否有与手指位置对应的凹痕？”“手指离开后，球上的凹痕是否短暂残留再消失？” | 捏前与松开后轮廓的仿射拟合残差；手指离开到轮廓恢复的时间差 > 0.2 s |
| B4 环境耦合 | R1-a、R1-b | “船首与水面交界处是否有白色浪花并向后拖出尾迹？”“头发飘动方向是否指向船尾？” | 船首附近白色像素比例；头发区域主方向与船轴夹角 < 45° |
| B5 复刻的定量贴合 | V2-a、V2-b、V2-c | “侧面镜头里车的最高点和出画时刻是否与原片相差 < 0.3 s？”“落地是否在画外，只用边缘涌入的光和烟表现？” | 轨迹点距 < 0.06；关键区域亮度曲线相关 > 0.95 且误差 < 8 |
| B6 尺度诚实 | P1-d | “全景中针是否明显小于机械臂前臂，同时有特写保证可读？” | 有场景 JSON 时比较尺寸；否则交 VLM |
| B7 原片事实还原 | R1-d | “台词、日期等文字信息是否与原片一致？” | 需要题目作者提供原片事实表 |

计分建议：报告每个运行的加分项通过数，和 L2 缺陷数并列，不合成单一分数。L3 成对比较的理由里要求引用加分项编号，这样排名能被具体细节解释。加分项按“同题通过率”定期淘汰：一条加分项被半数以上运行通过，就移入 L2 基线。V2 切镜时间就是本轮已经应该移入基线的例子。

### 模型变强后怎么继续拉开差距

本轮的加分项大多由 Opus 5.5 一家贡献，说明这些问题今天还有区分度。下一步可以把它们改写成题目本身的要求，让“做到”变成及格线，再往上设新的加分项。例如前文 N1（满杯和空杯的速度曲线不同、液面晃荡）、N2（不同材料的恢复系数）、N3（真实尺度加悬链线的线），都正好对应本轮仍然没有任何成片做到的现象。

## 待确认

1. cc-bare-R1 的日期和台词顺序与电影一致，是凭记忆判断，没有逐帧核对原片。
2. cc-hf-R1 源码写了张臂“先下沉、再上抬并超调、最后稳定”，10 fps 拼图里人物约 100 px 高，看不出来，本文未计为亮点。需要更高分辨率的局部逐帧确认。
3. cc-bare-P1 2.1–4.0 s 源码有“逐渐消失的视觉伺服修正”（0.16 cm 量级的衰减振荡），成片里未单独测量，未计为亮点。
4. codex-bare-P1 腕部格的线方向：本文认为是正常透视（见 P1 节），要定论需要导出相机矩阵做重投影。
5. 每个格子只跑了一次。“稳定习惯”的判断来自同一模型两档、多道题的一致，不是重复运行；正式结论需要每格多次运行。
6. 右侧烟团区的亮度代理区分度低（dshp-bare-V2 误差最小但画面不像），只作辅助。
