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 文件。这使得场景不仅可见,而且可模拟、可验证、可编辑。

核心理念:可执行世界表示 (EWR)
Code-as-World 将物理世界建模为一个三元组 p = (C, E, A):
- 组成 (Composition):物体的几何形状、公制尺寸、质量、摩擦系数、重力等。地板和墙壁被视为具有碰撞属性的静态实体。
- 演化 (Evolution):初始状态、受力情况、接触与碰撞逻辑、终止条件及持续时间。执行这些规则即可生成完整的状态轨迹。
- 外观 (Appearance):摄像机参数、光照、材质、背景及渲染配置。改变外观不会影响底层的物理逻辑。
在实现上,这三者被编译为 MuJoCo 可执行的 JSON 格式,支持运动学(动画)和动力学(物理)两种引擎。
代理循环:溯因搜索而非单次预测
从视频中恢复物理参数是一个复杂的逆问题。Code-as-World 采用了一个最多进行 5 轮的代理循环来进行“溯因搜索”:
- 提出 (Propose):基于视频输入,利用 SAM 3(实例掩码/轨迹)、VGGT-Omega(深度/相机几何)和 SAM 3D(物体网格)生成候选场景描述。
- 实例化 (Instantiate):将描述转换为
scene.json。 - 执行 (Execute):在 MuJoCo 中运行模拟。
- 渲染 (Render):将模拟结果重新渲染为视频帧。
- 验证 (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)进行验证。
© 版权声明
文章版权归作者所有,未经允许请勿转载。















