newton
基于 NVIDIA Warp + MuJoCo 的 GPU 加速机器人物理仿真引擎,支持可微分仿真与
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于 NVIDIA Warp + MuJoCo 的 GPU 加速机器人物理仿真引擎,支持可微分仿真与
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
如果你是一名机器人研究员,常规的仿真工具就像一辆没有倒车的汽车——你只能顺着时间往前走,一旦仿真结果偏离预期(比如机械臂关节角度误差超标),就只能推翻重来,重新设计参数、重新运行。这种「只能前向运行」的仿真器,严重拖慢了机器人控制算法的迭代速度。
Newton 的出现,就是为了解决这个问题。它是一个基于 GPU 加速的物理仿真引擎,专门面向机器人和仿真研究人员设计,由迪士尼研究院(Disney Research)、Google DeepMind 和 NVIDIA 三大机构联合发起,现在是 Linux 基金会旗下的开源项目。

图1:Newton 仿真 Pendulum(单摆)示例
Newton 的核心思路可以这样理解:如果把 MuJoCo(机器人仿真领域最权威的开源引擎)看作一辆精密的赛车引擎,那么 NVIDIA Warp 就是一台能让这台引擎在 GPU 上以万倍速度运转的涡轮增压器。Newton 正是把这两者焊接在一起的转接环——它继承了 MuJoCo 的物理准确性和行业验证标准,同时借助 Warp 的 GPU 并行计算能力,把原本需要数小时的仿真任务压缩到几分钟甚至几秒钟内完成。
传统的机器人仿真普遍依赖 CPU 计算,一个包含数十个关节的机械臂模型,在 CPU 上的仿真速度往往「慢于」真实时间的数倍——也就是说,仿真器跑 1 秒钟的物理过程,需要等待 2-3 秒。这种速度瓶颈在学术研究阶段或许可以接受,但一旦进入强化学习训练场景,动辄需要数百万步的交互,CPU 仿真的时间成本就变得完全不可接受。
近年来,以 NVIDIA Warp、Isaac Gym 为代表的 GPU 原生物理仿真框架开始改变这一局面。Warp 本身是一个类似于 JAX/JIT 的 Python 框架,但它编译出的 CUDA 代码可以直接在 GPU 上执行向量化物理计算。Newton 在此基础上,吸收了已停止维护的 warp.sim 模块的设计理念,并与 Google DeepMind 的 MuJoCo Warp 实现深度整合,形成了一套既保留 MuJoCo 物理精度、又具备 Warp GPU 加速能力的新一代仿真框架。

图2:Newton 支持多种几何体碰撞仿真
Newton 内部集成了多个仿真后端:
Newton 在仿真层面提供了丰富的「机器感知」建模能力:
这些传感器不是简单占位符——它们输出的数据结构可以直接被 RL 训练框架(Stable-Baselines3、Tianshou 等)消费,真正实现了「仿真到训练的零缝对接」。

图3:关节(joints)仿真示例——模拟机械臂多自由度关节运动
Newton 原生支持导出 OpenUSD(Universal Scene Description)格式的场景描述。OpenUSD 是皮克斯主导开发的工业级场景描述语言,已成为 NVIDIA Omniverse 和大量工业软件的事实标准。Newton 产出的 USD 文件可以直接导入 Omniverse、Blender 等工具,用于构建数字孪生(Digital Twin)场景,实现「仿真→可视化→决策」的完整链路。
Newton 最重要的技术特性之一是对可微分仿真的支持。在传统仿真器中,物理引擎只能给出「输入参数 → 仿真结果」的单向映射;而在可微分仿真中,仿真引擎可以反向传播梯度(gradient),告诉你「如果我想让机械臂末端的最终位置移动 1cm,各关节的驱动力应该分别调整多少」。
这个特性使得梯度下降可以直接作用于物理参数优化,而不需要通过有限差分等数值近似方法来估算梯度。对于需要联合优化机器人控制策略和物理参数的强化学习算法(如 RLoop、Dexterity 等前沿工作)来说,可微分仿真是核心使能技术。Newton 的可微分仿真基于 MuJoCo Warp 实现,在 GPU 上以极高的效率运行。
Newton 内置了模块化的 Viewer 系统,提供多种渲染后端:
这套 Viewer 系统解决了仿真项目中一个常见的痛点——仿真代码和可视化代码往往各自独立开发,调试时需要在两者之间来回切换。Newton 将 Viewer 做成可注入的组件,仿真代码几乎不需要改动就能切换不同的可视化后端。

图4:Newton 交互式 Viewer 渲染效果
Newton 的安装非常简洁,一行 pip 命令即可:
pip install "newton[examples]"
python -m newton.examples # 列出所有示例
python -m newton.examples basic_pendulum # 运行摆锤示例
如果需要从源码安装(推荐开发者贡献者使用),Newton 推荐使用 uv 工具链,配合源码仓库中的 uv.lock 文件可以精确复现依赖环境。
硬件要求:
值得注意的是,Newton 不需要在本地安装 CUDA Toolkit——所有 CUDA 代码在安装时由 Warp 动态编译,安装过程全自动完成,降低了入门门槛。
Newton 的设计目标用户是以下几类研究/工程人员:
截至目前,Newton 仍处于积极开发中(版本 1.3.0.dev0),版本号尚未达到 2.0 正式版。主要局限包括:
Newton 的出现代表了机器人仿真领域的一个趋势转变:GPU-native + Open-source + 行业联盟。过去,顶级物理仿真能力长期被商业软件(MuJoCo 虽是开源但非 GPU-native,Isaac Gym 需要 NVIDIA 账号认证)垄断;Newton 通过聚合 Disney、Google、NVIDIA 三家的技术积累,第一次让开源社区拥有了可以直接对标商业平台性能的 GPU 仿真工具。
如果这一趋势持续,机器人强化学习的训练成本将显著下降,更多中小型研究团队也能负担得起大规模物理仿真的算力需求,仿真-真实迁移(Sim-to-Real)的技术路线也将因此加速成熟。