智猩猩AI整理

论文作者投稿

让代码智能体看一段真实视频,再编写程序重建其中的物理过程,意味着它需要把看到的运动转化为可执行的场景:物体如何摆放、如何受力、如何碰撞,都要落实到具体实现中。

但画面相似并不代表物理机制正确,预设轨迹或错误的支撑结构也可能复现视频中的运动。因此,评测需要检查这些运动是否由合理的物理交互产生,以及场景在条件改变后能否作出正确响应。

为此,上海交通大学联合中山大学、卡内基梅隆大学等机构提出 PhysCodeGym,一个面向代码智能体、支持物理核验的 4D 重建基准。

基准包含 156 项真实视频任务,覆盖刚体、液体、可变形体和风致运动,要求智能体从空场景开始,根据视频编写可执行的 Blender 程序。评测在比较渲染视频的同时,读取程序和原生场景,测量物体的运动、接触与支撑关系;对于部分任务,还通过改变受力、接触关系或初始条件后重新仿真,检查原轨迹未能暴露的物理错误。

打开网易新闻 查看精彩图片

视频 1|GPT-6-Astra 重建结果总览

01

从真实视频到可执行的物理场景

在 PhysCodeGym 中,智能体会拿到一段 8 秒的参考视频,并从空场景开始,用程序重建其中的物体和运动。除了几何、材质、相机和灯光,它还需要设置物体的物理属性、初始状态、约束与受力,让场景运行后能够复现视频中的过程。

程序最终要生成原生场景文件和对应的渲染序列。这里的“4D”,就是随时间变化的三维场景:有了程序和场景文件,研究者便可以重新运行模拟,检查物体如何运动,也可以修改条件,观察结果如何变化。

重建的关键,是让物体通过合理的物理交互运动起来。例如,球应在重力作用下下落,碰撞能够推动其他物体,悬挂结构则通过约束影响摆动。夹具释放等外部驱动可以写入程序,但被作用的物体仍需要通过物理交互作出响应。

由于同一段视频可能对应多种合理的建模方式,PhysCodeGym 允许不同实现,只要它们能够还原可见的过程,并满足任务对运动机制、接触和支撑关系的要求。

打开网易新闻 查看精彩图片

图 1|PhysCodeGym 的重建与验证流程。点击图片可查看大图。

重建通常需要多轮尝试。智能体在终端中查看视频帧、编写代码,再调用 Blender 运行场景、检查物体状态或渲染预览,对照参考视频逐步调整。每个任务默认有 3 小时执行时间和 20 次 Blender 启动机会;运行程序、检查场景和渲染预览都会占用启动次数。因此,智能体需要合理安排尝试和修改,为最终版本留出完整运行与验证的机会。

02

用156段真实视频,

覆盖四类物理过程

PhysCodeGym 的 156 项任务包括95项刚体、40项液体、12项可变形体和9项风致运动。研究团队从 Pexels、Physics-IQ、BAAI-DataCube Physics-aware Videos 和 IRIS 收集候选视频,经过自动检查、视觉智能体审阅和人工筛选,选出物理过程清晰可见、能够在 Blender 中重建的片段。

所有片段均保持原始播放速度,统一为 8 秒、30 FPS,共 240 帧。这些任务既有骨牌碰撞引发的连锁运动,也有液体在容器中的积累、布料接触物体后的形变,以及风对旗帜的持续作用。下面的四组视频展示了这些过程,左侧是参考视频,右侧是 GPT-6-Astra 的重建结果。

  • 刚体 · 多米诺连锁

视频 2|多米诺连锁运动的参考视频与重建对比:旋转杆触碰骨牌,骨牌依次倒下。

  • 液体 · 牛奶注入玻璃杯

视频 3|牛奶注入玻璃杯的参考视频与重建对比:液柱持续注入,杯内液面逐渐升高。

  • 可变形体 · 丝布覆盖茶壶

视频 4|丝布覆盖茶壶的参考视频与重建对比:布料下落、接触壶体并形成褶皱。

  • 风致运动 · 四面旗帜

视频 5|四面旗帜随风摆动的参考视频与重建对比:旗面在风中持续展开与折叠。

每段视频还配有三类标注,说明场景里有哪些物体、发生了什么,以及重建需要满足哪些物理要求。

物体清单记录物体的类别、数量、外观和初始布局;事件标注描述哪些物体参与了什么动作、动作按什么顺序发生,以及最后应达到什么状态,并标出对应的视频时间,全数据集共有578条事件标注;人工标注的物理判据则说明哪些初始设置、驱动方式和等效建模方法可以接受,以及需要检查哪些运动机制、接触和支撑关系。

这些标注都以视频中的可见证据为依据,为后续评测提供具体的检查内容。

03

从视觉评价到程序

与场景核验

基于上述任务和标注,PhysCodeGym 使用六项指标评价画面接近程度、动态过程和物理实现。其中,结构相似度、感知相似度和物体准确率汇总为视觉分,事件分、运动分和物理有效性汇总为物理分,两类分数再等权得到总体分数。

这样的组织方式既提供统一的比较结果,也保留不同能力维度的检查入口,便于判断差距来自场景外观、事件还原、运动匹配还是底层物理机制。

打开网易新闻 查看精彩图片

其中,物理有效性由验证智能体依据人工判据检查。验证智能体读取提交程序和原生场景,定位判据涉及的物体,追踪运动的生成机制,再编写适配该实现的 Blender/Python 测量程序。例如,接触检查需要测量实际几何是否相互侵入,支撑检查需要分析物体与承载结构之间的关系,动力学检查则需要读取物体状态随时间的变化。

验证智能体执行测量、分析输出,必要时补充检查,最后逐条给出判断及对应证据,使物理评价能够落实到具体的场景行为。

原始视频中的运动并不一定覆盖所有相关条件,因此,PhysCodeGym 还在部分任务中引入反事实核验(counterfactual verification)。

如果球始终在桌子中央滚动,原轨迹就无法检验桌边的支撑是否正确;将释放方向改为朝向桌边,才能观察它失去支撑后是否下落。同样,移除一条接触关系,可以进一步检查某个物体的运动是否依赖那次碰撞。验证智能体在场景副本中施加这些受控干预,结合原场景和对照场景测量响应变化,从而检查原始观测未能触及的物理机制。

04

两个案例:重建中的物理

问题如何被发现

牛顿摆:摆动和碰撞都发生了,能量却增加了
在牛顿摆任务中,GPT-6-Astra 搭出了视频中的钢球和支架,也复现了摆动与碰撞,物体检查和事件检查都拿到了满分。进一步测量场景中的能量,问题才显现出来:夹具松开后,钢球在固定支架下被动摆动,总能量本应随着碰撞和摩擦逐渐耗散。根据释放后的自由摆动拟合,初始总能量估计约为 4.97 mJ;到了第 236 帧,仅重力势能就达到 9.44 mJ,约为初始总能量估计的 1.9 倍。
重建虽然复现了目标事件,运动中的能量变化却违反了守恒约束。

视频 6|GPT-6-Astra 牛顿摆的能量检查。右侧势能曲线的后期峰值超过初始总能量估计(虚线)。视频展示第 85–236 帧的原速过程,末尾定格在第 236 帧。

(2)台球:越过桌边后,球仍悬在空中

台球案例的问题更隐蔽。GPT-6-Astra 重建的球在原条件下一直沿桌面滚动,物理检查也拿到了满分。验证时,将母球的释放方向改为朝向桌边,才发现异常:整个球已经越过桌面边界,却仍停留在原来的高度,没有向下掉落。

检查程序后发现,场景中提供支撑的范围比实际桌面更大,球离开可见桌面后,仍被桌外的支撑托住。将支撑范围限制在真实桌面后重新运行,球便在离开桌面、失去支撑时开始下落。原来的运动轨迹没有经过桌边,因此掩盖了支撑范围的错误;改变释放方向后,这个问题才暴露出来。

打开网易新闻 查看精彩图片

图 2|台球越过桌边后的同帧对比:候选仍悬在空中,有限桌面对照已开始下落。

牛顿摆和台球展示了两种检查方式:测量场景中的状态,可以判断已经发生的运动是否符合物理规律;改变条件再运行,则能检查原轨迹没有触及的物理关系。即使物体和事件检查通过,这两类检查仍可能发现重建中的问题。论文附录还展示了物体侵入桌面、夹具穿过物体、遗漏障碍物碰撞等案例,进一步说明了检查程序和场景的必要性。

05

性能评估:模型表现、

推理投入与执行策略

(1)主实验:总体表现与物理有效性

主实验比较九组模型与 harness 配置,使用的 harness 包括 Codex、Claude Code 和 Kimi Code,默认采用 high 推理设置,每题使用相同的 3 小时执行时间和 20 次 Blender 启动预算。

未交付渲染产物的任务记零,因此评分同时反映产物质量与任务完成情况。在这一设置下,GPT-6-Astra 的总体分数为 0.663,视觉分和物理分分别为 0.693 与 0.633,在当前主实验中均领先;GPT-5.6-Sol 以 0.570 的总体分数排名第二。

打开网易新闻 查看精彩图片

表 2|PhysCodeGym 主实验的完整视觉与物理重建得分,截取自论文正文。所有指标均为越高越好,各列最佳值加粗,次佳值以下划线标记。

分项结果揭示了更普遍的能力差异:九组配置的物体得分均高于事件得分,而运动匹配仍然较弱。例如,GPT-5.6-Sol 的物体准确率为 0.835,事件分为 0.687;即使是表现领先的 GPT-6-Astra,运动分也只有 0.324。模型之间的排序还会随评价维度变化:GPT-6-Luna 的视觉分略高于 GPT-5.6-Luna,但事件分和运动分更低。这说明,还原场景中的对象、复现动态事件以及对齐运动过程,是需要分别衡量的能力,视觉得分的改善不一定伴随动态表现的改善。

程序与场景检查进一步揭示了物理机制上的缺口。论文选出的六个重建案例中,物体准确率和事件分均为满分,却仍存在能量异常、物体穿透和支撑关系错误,反事实检查还暴露了原轨迹中没有出现的接触与支撑缺陷。这些证据共同表明,正确还原对象与事件,并不足以推断物理机制同样可靠,也体现了将程序与场景核验纳入重建评测的必要性。

(2)同一模型在不同推理设置下的表现差异

研究在 Claude Code 中对 DeepSeek-V4.1-Flash 分别采用 low、high 和 max 三种推理设置,每次都使用相同的 3 小时和 20 次 Blender 启动预算。将未生成结果的任务按零分计入后,low 的总体分数为 0.476,高于 max 的 0.460;但只看已经生成的结果,max 得到 0.547,反而超过 low 的 0.527。

分数顺序的变化主要来自任务完成情况:max 的平均运行时间更长、记录到的输出 token 更多,也有更多任务因超时、最终程序执行失败或提交文件不完整而没能交付结果。max 在已生成结果上的平均得分更高,但更多未完成的任务拉低了总体表现。 因而,比较不同推理设置时,既要看重建结果的质量,也要看模型在预算内能完成多少任务。

(3)同一模型在不同 harness 下的表现差异

研究将 DeepSeek-V4.1-Flash 的推理设置固定为 high,在相同任务和执行预算下,分别使用 Codex 和 Claude Code 进行评测。两种 harness 下的总体分数分别为 0.479 和 0.450,事件分分别为 0.550 和 0.446。

为理解这些表现差异,研究进一步对比了智能体在两种 harness 下的执行记录。两种 harness 的任务提示都要求验证;在本次实验记录中,Codex 的原生提示词还明确要求 “proactively run tests, lint”,鼓励主动测试和检查,任务开头也提醒智能体 为最终验证预留最后一次 Blender 启动。

在木件滚动任务中,Codex 发现物体停滞后,调整了接触几何和斜坡设置,用第 20 次 Blender 启动运行完整程序,随后检查输出帧和诊断结果。在倒酒任务中,它发现杯中液面升高过快,两次调整注入口,每次修改后都重新运行,最后还对照检查了第 240 帧的场景预览与最终输出画面。

Claude Code 也做过前期测试,但在重写木件程序、修订倒酒程序后,已无法在剩余启动次数内完成成功的运行验证。这两个案例提示,修改后重新运行并检查输出,是确认问题是否解决的关键一步,也需要提前留出预算。

06

从还原画面,到构建能

接受检验的物理场景

PhysCodeGym 将视频重建的交付物扩展为可执行程序与原生场景,使评价能够追踪画面背后的对象、接触、支撑和驱动,并通过改变条件检验这些机制是否仍然成立。实验中的物理缺陷说明,观测与事件还原需要进一步接受机制层面的核验;推理投入和 harness 的对照则说明,最终表现还与预算下的执行、修订和验证过程有关。

由此,基准考察的是从视频观测到物理程序的完整能力:搭建场景、还原运动、实现交互,并通过运行与测量验证结果。

下一步,PhysCodeGym 将扩展到更多仿真引擎和更丰富的物理交互,让这套评价覆盖更多可执行的物理场景。目前,项目已开放代码和全部156项任务的标准化参考视频,代码仓库包含任务定义、相关判据、Harbor 任务构建工具和评价实现,数据集可从 Hugging Face 获取,为后续研究与评测提供基础。

关注+星标,获取AI前沿进展与开源一线动态