Code‑as‑World:把真实视频转成可运行的 MuJoCo 物理程序,AI 开始看懂世界运行机制

世界模型2个月前发布 小马良
92 0

MirroS 团队发布了 Code-as-World,这是一种革命性的计算机视觉与物理理解范式。其核心论点直击当前视频模型的痛点:像素只是物理场景的证据,而非其本体论。 传统的视频模型可以预测下一帧看起来合理的画面,但往往无法真正理解质量、接触力或重力等物理机制。

  • 项目主页:https://mirros-lab.github.io/code-as-world/
  • GitHub:https://github.com/MirroS-Lab/Code-as-World
  • 官方介绍:https://mirros.ai/blog/representing-physical-world
  • 模型:https://huggingface.co/MirroS-Lab

Code-as-World 摒弃了单纯的像素、潜空间或文本字幕表示,转而将场景表示为可执行代码—— specifically,一个可以在 MuJoCo 物理引擎中运行的 scene.json 文件。这使得场景不仅可见,而且可模拟、可验证、可编辑。

Code‑as‑World:把真实视频转成可运行的 MuJoCo 物理程序,AI 开始看懂世界运行机制

核心理念:可执行世界表示 (EWR)

Code-as-World 将物理世界建模为一个三元组 p = (C, E, A):

  1. 组成 (Composition):物体的几何形状、公制尺寸、质量、摩擦系数、重力等。地板和墙壁被视为具有碰撞属性的静态实体。
  2. 演化 (Evolution):初始状态、受力情况、接触与碰撞逻辑、终止条件及持续时间。执行这些规则即可生成完整的状态轨迹。
  3. 外观 (Appearance):摄像机参数、光照、材质、背景及渲染配置。改变外观不会影响底层的物理逻辑。

在实现上,这三者被编译为 MuJoCo 可执行的 JSON 格式,支持运动学(动画)和动力学(物理)两种引擎。

代理循环:溯因搜索而非单次预测

从视频中恢复物理参数是一个复杂的逆问题。Code-as-World 采用了一个最多进行 5 轮的代理循环来进行“溯因搜索”:

  1. 提出 (Propose):基于视频输入,利用 SAM 3(实例掩码/轨迹)、VGGT-Omega(深度/相机几何)和 SAM 3D(物体网格)生成候选场景描述。
  2. 实例化 (Instantiate):将描述转换为 scene.json。
  3. 执行 (Execute):在 MuJoCo 中运行模拟。
  4. 渲染 (Render):将模拟结果重新渲染为视频帧。
  5. 验证 (Verify):将渲染帧与原始视频的关键帧在 RGB、深度、掩码和轨迹上进行对比。

如果差异超过阈值,系统会生成结构化反馈 $\Delta$ 指导下一轮修订。这种“提出-验证”循环在相同计算预算下,显著击败了传统的 Best-of-5 独立采样方法。

性能表现:超越闭源巨头

经过验证的物理世界提供了真实视频所不具备的精确标签(如速度、加速度、受力),Code-as-World 利用这些数据对模型进行了两阶段训练:

  • 阶段 1:在图像空间 QA 数据上进行监督微调。
  • 阶段 2:使用 GRPO 算法,在可执行世界生成的 VQA 数据上进行强化学习,奖励基于数值准确度。

在 QuantiPhy-validation 基准测试中:

  • Code-as-World-VL-9B 得分 55.4 MRA。
  • 超越了 Gemini-3.1 Flash (54.8) 和 ChatGPT-5.1 (48.4)。
  • 比最强的开放权重基线 Qwen3-VL-32B-Instruct (40.2) 高出约 15 分。

此外,引入世界空间推理后,模型在纯视觉任务(如 RefCOCO 定位)上的表现也显著提升。

部署与开源

MirroS 已在 Apache 2.0 许可证下开源了以下内容:

  • GitHub 仓库:包含完整的代理循环实现。
  • 模型检查点:
    • Code-as-World-VL-4B (基于 Qwen3.5-4B 微调)
    • Code-as-World-VL-9B (基于 Qwen3.5-9B 微调)
  • 格式:BF16 safetensors。
  • 服务方式:可通过 vLLM 在 OpenAI 兼容的 /v1 端点后提供服务。
  • 硬件要求:研究级原型,建议多卡 H100 环境进行训练或高并发推理。

局限性

  • 刚体限制:目前主要支持刚体物理,暂不支持软体或流体复杂模拟。
  • 非端到端学习:模型本身并未通过梯度下降学会“发现循环”,而是依赖于外部的符号执行引擎(MuJoCo)进行验证。
© 版权声明

相关文章