Newton 深度分析报告
一句话总结
NVIDIA + Google DeepMind + Disney Research 三方联合、捐赠给 Linux Foundation 的 GPU 加速统一物理仿真引擎——8 个求解器(XPBD/MuJoCo/VBD/MPM 等)共享一个 Python API,GPU 操作比 MJX 快 475 倍,OpenUSD 工业互操作是一等公民。
值得关注的理由
- 三大 AI/仿真巨头联合 + Linux Foundation 中立治理:NVIDIA(XPBD/Warp)、Google DeepMind(MuJoCo Warp)、Disney Research(VBD/Style3D 布料)三方核心技术在中立平台汇合——这在物理仿真领域史无前例。XPBD 论文原作者 Miles Macklin 担任技术指导,RSS 2021 Best Student Paper 得主 Eric Heiden 主导开发
- 业界首个将 8 种求解器统一到一个 Python API 的开源引擎:刚体/布料/绳索/颗粒/MPM/运动学闭链——一行代码切换后端(
solver = newton.solvers.SolverMuJoCo(model)),直接解决了「每换一种物理就换一套工具链」的碎片化痛点 - 性能碾压 + 工业落地:GPU 操作比 MJX 快 475x,运动任务快 252x,灵巧操作训练比 Isaac Sim 快 65%。Skild AI(GPU 机架组装)、Samsung+Lightwheel(冰箱产线电缆操作)已在使用。OpenUSD 深度集成打通了产线工具链
项目画像
| 维度 | 数据 |
|---|---|
| GitHub | https://github.com/newton-physics/newton |
| Star / Fork | 3,796 / 394 |
| 代码行数 | 218,085 行 Python(求解器模块 136K 行占 62%) |
| 项目年龄 | 12.4 个月(首次提交 2025-03,公开 2025-04-22) |
| 开发阶段 | v1.0.0 已发布,v1.1.0.dev0 开发中(月均 135 次 commit) |
| 贡献模式 | 企业团队驱动(~25 位贡献者,95% 工作日提交,100% PR 驱动) |
| 热度定位 | 中等热度(大会驱动增长——CoRL 2025 +741,GTC 2026 +1,191) |
| 质量评级 | 架构⭐⭐⭐⭐⭐ 工程实践⭐⭐⭐⭐⭐ 测试⭐⭐⭐⭐ |
作者视角:为什么存在这个项目
创始人/作者背景
Eric Heiden(核心开发者,494 commits),NVIDIA Research Scientist,USC 博士,RSS 2021 Best Student Paper(可微分仿真方向)。技术指导 Miles Macklin,NVIDIA 仿真技术总监,XPBD 论文原作者。团队几乎全部来自 NVIDIA 仿真部门,从 warp.sim(已标记 deprecated)演化而来。Google DeepMind 贡献了 MuJoCo Warp GPU 后端,Disney Research 贡献了 VBD 和 Style3D 布料求解器。
问题判断
物理仿真长期存在三大痛点:碎片化(刚体用 MuJoCo,布料用专用求解器,颗粒用 MPM——每换一种物理就换工具链)、性能瓶颈(传统引擎 CPU 为主,难以支撑 RL 所需的数千环境并行)、Sim-to-Real 断层(仿真不可微无法做端到端优化,USD 支持薄弱无法对接产线)。Eric 和 Miles 在各自研究中遇到同一个问题:做机器人策略训练时需要同时处理刚体关节、可变形电缆、布料遮挡等混合场景,但没有引擎能在 GPU 上同时高效处理。
解法哲学
三条贯穿整个代码库的设计原则:
- 统一抽象,异构求解器:不追求「一个求解器解决所有物理」,而是为每种物理选最优算法——XPBD 做通用、MuJoCo 做关节、VBD 做布料绳索、MPM 做颗粒——统一到
Model → State → Solver.step()接口 - GPU 原生,不是 CPU 移植:所有内核用
@wp.kernel定义直接 GPU 运行,支持 CUDA Graph capture 消除 CPU-GPU 同步 - 工业互操作优先:OpenUSD 是一等公民,
SchemaResolver声明式映射 USD 属性到 Newton 数据
战略意图
捐赠给 Linux Foundation 是深思熟虑的选择:让三方技术在中立平台汇合避免厂商锁定,Apache-2.0 降低工业界采用门槛,通过 newton-usd-schemas 推动物理仿真 USD 扩展的标准化。Newton 的生态位是 NVIDIA Warp(底层 GPU 编程)和上层应用(Isaac Lab 机器人训练、工业仿真)之间的「仿真操作系统」。
核心价值提炼
创新之处
-
多求解器统一架构(新颖度 4/5 | 实用性 5/5 | 可迁移性 4/5) 8 个物理求解器共享
SolverBase接口和Model→State→Control→Contacts→Solver.step()流水线。用户一行代码切换后端。业界首次将 MuJoCo Warp、XPBD、VBD、MPM、投影动力学统一到一个 Python API。Custom Attributes 机制让每个求解器声明自己的额外数据而不修改核心结构。 -
SDF 纹理碰撞 + 水弹性接触(新颖度 4/5 | 实用性 4/5 | 可迁移性 3/5) 用 3D 纹理替代 NanoVDB 做 Mesh-Mesh SDF 碰撞,结合水弹性模型(借鉴 Drake)通过 SDF 等值面八叉树细化生成分布式接触力。解决工业场景中复杂几何体碰撞的精度和性能平衡。
-
Custom + Extended Attributes 二层扩展(新颖度 3/5 | 实用性 5/5 | 可迁移性 5/5) Custom Attributes 允许求解器声明自定义数据(14 种频率维度),Extended Attributes 提供按需分配的衍生量。使新增求解器或传感器无需修改核心数据结构——声明式属性注册模式可直接迁移到任何可扩展框架。
-
SchemaResolver USD 映射(新颖度 4/5 | 实用性 4/5 | 可迁移性 4/5) 声明式的 USD 属性到 Newton 数据的映射系统,支持 7 种 Prim 类型和第三方扩展。在开源物理引擎中 USD 集成最深。
-
Multi-World GPU 批量仿真(新颖度 3/5 | 实用性 5/5 | 可迁移性 4/5) 一个 Model 内包含数千独立 world,通过 world index 分组,GPU 内核一次处理所有 world。
builder.replicate(sub_builder, world_count=1024)一行代码创建 1024 个并行环境。
可复用的模式与技巧
- 双缓冲 State 交换:
state_0, state_1 = state_1, state_0避免每步分配内存,支持 CUDA Graph capture——任何迭代更新状态的 GPU 计算都适用 - Builder-Finalize 两阶段构建:Python list 做增量构建,
finalize()一次性转 GPU 数组——解决「方便构建」vs「高效运行」的矛盾 - 位掩码通知机制:
SolverNotifyFlags位掩码通知求解器只刷新受影响的缓冲区——避免全量重建 - 声明式属性注册:求解器通过
register_custom_attributes()自我描述需要的数据——插件式扩展不污染核心 - CUDA Graph Capture:
wp.ScopedCapture()录制仿真循环,后续wp.capture_launch(graph)消除 CPU 调度开销
关键设计决策
- 8 个求解器共享接口而非单一通用求解器:为每种物理选最优算法——代价是求解器模块 136K 行(62%),但换来了每种物理的最优性能
- ModelBuilder 10.5K 行的「God Class」:承载所有实体创建和格式导入——方便用户但可维护性受限(作者已知的技术债)
- NVIDIA Warp 作为唯一 GPU 后端:获得原生 NVIDIA 优化——代价是对 AMD/Intel GPU 的支持受限
- MuJoCo 作为求解器之一而非竞品:6,275 行桥接层集成 MuJoCo Warp GPU 后端——让 MuJoCo 用户零迁移成本获得 GPU 加速
竞品格局与定位
竞品对比矩阵
| 维度 | Newton | MuJoCo/MJX | Drake | Brax | Isaac Sim |
|---|---|---|---|---|---|
| 多物理 | 8 种求解器统一 | 单求解器 | 刚体+水弹性 | 仅刚体 | 多物理但闭源 |
| GPU | ✅ NVIDIA Warp | MJX 用 JAX | CPU 为主 | ✅ JAX | ✅ PhysX |
| 开源 | Apache-2.0 | Apache-2.0 | BSD-3 | Apache-2.0 | 专有 |
| USD | 原生深度集成 | ❌ | 有限 | ❌ | Omniverse 原生 |
| 可微 | 部分求解器 | MJX 全可微 | 有限 | 全可微 | ❌ |
| 治理 | Linux Foundation | Google DeepMind | MIT TRI | NVIDIA | |
| 布料/绳索 | VBD+Style3D+XPBD | 有限 | ❌ | ❌ | PhysX |
| 性能 | GPU 475x over MJX | MJX 较快 | CPU 慢 | JAX 快 | PhysX 快 |
| 工业案例 | Skild/Samsung | 学术广泛 | Toyota | 学术 | NVIDIA 生态 |
差异化护城河
唯一的开源多求解器统一引擎——没有其他项目能在一个 Python API 下提供 8 种求解器。MuJoCo Warp 桥接使 MuJoCo 用户零成本获得 GPU 加速。OpenUSD 工业互操作在开源物理引擎中最深。Linux Foundation 中立治理让 NVIDIA/Google/Disney 三方技术持续汇合。
竞争风险
- MJX 和 Brax 的全可微优势明显,Newton 的可微支持仍不完整
- MuJoCo 十余年积累和海量论文验证的成熟度优势
- macOS 仅 CPU 支持对 Apple Silicon 用户不友好
生态定位
物理仿真的「Linux 时刻」——三大巨头技术在中立平台汇合,从碎片化走向统一。在 NVIDIA Warp 和上层应用(Isaac Lab/工业仿真)之间的「仿真操作系统」层。
套利机会分析
- 信息差: 有显著信息差——3.8K Stars 对于 NVIDIA+DeepMind+Disney 联合、Linux Foundation 治理、v1.0 已发布的项目严重偏低。「物理仿真的 Linux 时刻」「XPBD 原作者做的引擎」「比 MJX 快 475 倍」都是极强的叙事钩子
- 技术借鉴: 多求解器统一接口(策略模式 + Custom Attributes)、双缓冲 State 交换、Builder-Finalize 两阶段构建、位掩码通知、SchemaResolver 声明式映射——五个高可迁移性模式
- 生态位: 填补了「开源多物理 GPU 统一仿真引擎」的空白。v1.0 发布标志着从研究原型走向工业可用
- 趋势判断: 大会驱动增长(CoRL/GTC),v1.1 开发中,Kamino 求解器 beta 阶段。随着具身 AI 热度持续上升,Newton 的增长动力将持续
风险与不足
- 可微分支持不完整:仅 Featherstone/SemiImplicit 有基础支持,MJX/Brax 的全可微优势明显
- ModelBuilder God Class:10.5K 行承载所有实体创建和格式导入,需要拆分
- NVIDIA GPU 绑定:Warp 后端限制了对 AMD/Intel GPU 的支持
- 生态成熟度:MuJoCo 十余年积累 vs Newton 一年多,论文验证和社区经验差距大
- macOS 仅 CPU:Apple Silicon 用户无法使用 GPU 加速
- Kamino 求解器 Beta:运动学闭链求解器尚未稳定
行动建议
- 如果你要用它: 适合需要混合物理仿真(刚体+布料+绳索)的机器人 RL 研究者和工业仿真工程师。
pip install newton-physics[sim]安装,需要 NVIDIA GPU + CUDA。对比 MuJoCo(更成熟但单求解器)和 Isaac Sim(更完整但闭源),Newton 的核心优势在多物理统一 + 开源中立 - 如果你要学它: 重点关注
newton/_src/solvers/solver.py(SolverBase 统一接口)、newton/_src/solvers/mujoco/(6,275 行的 MuJoCo 桥接,展示了如何集成外部求解器)、newton/_src/geometry/collision_pipeline.py(工业级碰撞检测流水线)、newton/_src/sim/builder.py(Builder-Finalize 模式) - 如果你要 fork 它: 改进方向——扩展可微分支持到更多求解器、拆分 ModelBuilder 的导入逻辑为独立 Importer 模块、增加 AMD ROCm 后端支持
知识入口
| 资源 | 链接 |
|---|---|
| DeepWiki | deepwiki.com/newton-physics/newton |
| Zread.ai | 未收录 |
| 官方文档 | newton-physics.github.io/newton |
| 关联论文 | Eric Heiden RSS 2021 Best Student Paper(可微分仿真) |
| 在线 Demo | 无(需 NVIDIA GPU) |
| GTC 2026 演讲 | Newton v1.0 发布公告 |
| PyPI | pypi.org/project/newton-physics |