目录

Newton:Disney+Google+NVIDIA联手打造的GPU加速物理仿真引擎

Newton:基于 NVIDIA Warp 的 GPU 加速物理仿真引擎

§1 背景与项目定位

1.1 物理仿真引擎生态

当前主流物理仿真引擎可分为三类:

类型代表引擎特点适用场景
工业级Isaac Sim, MuJoCo高保真、物理精度自动驾驶、工业机器人
研究级NVIDIA Warp, NewtonGPU 加速、可微分化机器人控制、RL 训练
游戏引擎Unity, Unreal实时性、渲染游戏、VR

1.2 Newton 的定位

Newton 是什么?

Newton is a GPU-accelerated physics simulation engine built upon NVIDIA Warp, specifically targeting roboticists and simulation researchers.

发起方:

发起方贡献领域
Disney Research仿真精度、创意应用
Google DeepMind强化学习、策略优化
NVIDIAWarp 核心、GPU 加速

核心设计:

  1. GPU-First:所有计算在 GPU 上完成,充分利用并行计算优势
  2. 可微分化:支持 JIT 自动微分,天然适配强化学习
  3. OpenUSD 支持:与工业仿真数据格式无缝对接
  4. 用户可扩展:开放的 Python API,支持自定义物理场

§2 技术架构深度解析

2.1 与 NVIDIA Warp 的关系

Newton 构建于 NVIDIA Warp 之上,继承了 Warp 的核心优势:

┌─────────────────────────────────────────────────────────────┐
│                        Newton                               │
│  ┌─────────────────────────────────────────────────┐   │
│  │              MuJoCo Warp Backend                  │   │
│  │  ┌───────────────────────────────────────────┐ │   │
│  │  │            NVIDIA Warp                     │ │   │
│  │  │  ┌─────────────────────────────────────┐ │ │   │
│  │  │  │    CUDA Kernels (cuWarp)          │ │ │   │
│  │  │  └─────────────────────────────────────┘ │ │   │
│  │  └───────────────────────────────────────────┘ │   │
│  └─────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

Warp 的核心特性(Newton 继承):

特性说明Newton 支持
GPU 加速所有物理计算在 CUDA 核心✅ 全部
自动微分JIT 编译下的梯度计算✅ 全部
MPM 求解器Material Point Method✅ 扩展
SDF 距离场符号距离函数✅ 全部
Warp Device Abstraction统一 CPU/GPU 接口✅ 全部

2.2 系统需求

组件要求
Python3.10+
OSLinux (x86-64, aarch64), Windows (x86-64), macOS (CPU only)
GPUNVIDIA GPU (Maxwell or newer)
CUDA Driver545+ (CUDA 12)
本地 CUDA Toolkit❌ 不需要

重要说明:macOS 仅支持 CPU 计算,无 GPU 加速。

§3 功能分类详解

3.1 功能总览

Newton 提供12 大类仿真功能,覆盖机器人学主要场景:

类别示例数量核心场景
Basic(基础)10+入门级物理演示
Robot(机器人)15+足式机器人、机械臂
Cable(电缆)5+线缆操作、布线仿真
Cloth(布料)10+布料仿真、衣物操作
Inverse Kinematics(IK)5+运动学求解
MPM10+颗粒材料、耦合仿真
Sensors(传感器)3+感知仿真
Selection(选择)5+场景选择逻辑
DiffSim(可微仿真)8+可微分物理
Multi-Physics(多物理场)2+耦合仿真
Contacts(接触)6+精密装配
Softbody(软体)2+软体操作

3.2 基础功能(Basic)

基础示例是 Newton 的入门必读,包含 10+示例:

示例命令说明
Pendulumpython -m newton.examples basic_pendulum单摆系统
URDFpython -m newton.examples basic_urdfURDF 模型导入
Viewerpython -m newton.examples basic_viewer可视化窗口
Shapespython -m newton.examples basic_shapes基础几何体
Jointspython -m newton.examples basic_joints关节系统
Conveyorpython -m newton.examples basic_conveyor传送带
Heightfieldpython -m newton.examples basic_heightfield高度场地形
Recordingpython -m newton.examples recording仿真录制
Replay Viewerpython -m newton.examples replay_viewer回放可视化
Plottingpython -m newton.examples basic_plotting数据绘图

3.3 机器人仿真(Robot)

机器人仿真是 Newton 的核心应用场景:

3.3.1 足式机器人

机器人示例命令说明
Cartpolepython -m newton.examples robot_cartpole小车平衡杆
G1python -m newton.examples robot_g1宇树 H1 人形机器人
H1python -m newton.examples robot_h1华为盘古人形机器人

3.3.2 四足机器人

机器人示例命令说明
Anymal Dpython -m newton.examples robot_anymal_dANYbotics 四足 D 型
Anymal C Walkpython -m newton.examples robot_anymal_c_walkANYbotics 四足 C 型

3.3.3 机械臂

机械臂示例命令说明
UR10python -m newton.examples robot_ur10Universal Robots UR10
Panda + Hydropython -m newton.examples robot_panda_hydroFranka Panda + Hydro
Allegro Handpython -m newton.examples robot_allegro_hand灵巧手仿真

3.3.4 控制器与策略

# 运行预训练策略
python -m newton.examples robot_policy

3.4 布料仿真(Cloth)

布料仿真是柔体物理的核心应用:

示例命令物理现象
Cloth Bendingpython -m newton.examples cloth_bending布料弯曲
Cloth Hangingpython -m newton.examples cloth_hanging悬挂布料
Cloth Style3Dpython -m newton.examples cloth_style3d3D 款式设计
Cloth H1python -m newton.examples cloth_h1人形机器人+布料
Cloth Twistpython -m newton.examples cloth_twist布料扭转
Cloth Frankapython -m newton.examples cloth_franka机械臂+布料
Cloth Rollerspython -m newton.examples cloth_rollers辊压布料
Cloth Poker Cardspython -m newton.examples cloth_poker_cards扑克牌+布料

3.5 电缆仿真(Cable)

电缆仿真用于线缆操作和布线分析:

示例命令场景
Cable Twistpython -m newton.examples cable_twist电缆扭转
Cable Y-Junctionpython -m newton.examples cable_y_junctionY 型电缆分支
Cable Bundle Hysteresispython -m newton.examples cable_bundle_hysteresis电缆束滞后
Cable Pilepython -m newton.examples cable_pile电缆堆叠

3.6 可微仿真(DiffSim)

DiffSim 是 Newton 的特色功能,支持物理仿真过程的自动微分:

示例命令应用
DiffSim Ballpython -m newton.examples diffsim_ball可微球体碰撞
DiffSim Clothpython -m newton.examples diffsim_cloth可微布料
DiffSim Dronepython -m newton.examples diffsim_drone可微无人机控制
DiffSim Spring Cagepython -m newton.examples diffsim_spring_cage可微弹簧笼
DiffSim Soft Bodypython -m newton.examples diffsim_soft_body可微软体
DiffSim Quadrupedpython -m newton.examples diffsim_bear可微四足

DiffSim 的工程价值

# 传统仿真:前向计算
state = simulator.forward(params)

# DiffSim:前向 + 反向梯度
state, grad = simulator.forward_and_backward(params)

3.7 传感器仿真(Sensors)

示例命令传感器类型
Sensor Contactpython -m newton.examples sensor_contact接触力传感器
Sensor Tiled Camerapython -m newton.examples sensor_tiled_camera相机感知
Sensor IMUpython -m newton.examples sensor_imuIMU 惯性测量

§4 快速开始

4.1 安装

# 安装Newton(包含示例)
pip install "newton[examples]"

# 验证安装
python -m newton.examples --help

4.2 运行第一个示例

# 运行基础单摆示例
python -m newton.examples basic_pendulum

4.3 查看所有示例

# 列出所有可用示例
python -m newton.examples

4.4 USD 格式输出

# 运行并输出为USD文件
python -m newton.examples basic_viewer \
    --viewer usd \
    --output-path my_output.usd

§5 命令行参数详解

5.1 全局参数

参数说明默认值
--viewer可视化类型gl
--device计算设备Warp 默认设备
--num-frames仿真帧数100
--output-pathUSD 输出路径-

5.2 Viewer 类型

类型说明适用场景
glOpenGL 实时窗口交互调试
usdUSD 文件输出离线渲染
rerunReRun 可视化云端查看
null无可视化纯计算

5.3 Device 选择

# 使用特定GPU
python -m newton.examples basic_pendulum --device cuda:0

# 使用CPU
python -m newton.examples basic_pendulum --device cpu

§6 机器人仿真进阶

6.1 URDF 模型导入

Newton 支持直接导入 URDF 格式的机器人模型:

# 加载URDF模型
python -m newton.examples basic_urdf

URDF 支持的机器人模型

模型类型来源
UR10机械臂Universal Robots
Panda机械臂Franka
G1人形机器人宇树科技
H1人形机器人华为
Anymal D/C四足机器人ANYbotics

6.2 逆运动学(IK)求解

Newton 提供多种 IK 求解器:

# 基础IK示例
python -m newton.examples ik_franka    # Franka机械臂IK
python -m newton.examples ik_h1        # H1人形机器人IK
python -m newton.examples ik_custom    # 自定义IK

# 复杂IK任务
python -m newton.examples ik_cube_stacking  # 立方体堆叠IK

6.3 控制器与策略

# 运行预训练策略
python -m newton.examples robot_policy

# 支持的策略类型:
# - locomotion (行走)
# - manipulation (操作)
# - tracking (跟踪)

§7 物理场详解

7.1 刚体动力学

Newton 的刚体求解器支持:

特性说明
碰撞检测SDP + 连续碰撞检测
关节约束Revolute, Prismatic, Ball, Fixed
外力重力、接触力、电机力矩

7.2 柔体物理(Cloth/Cable)

求解器方法适用场景
XPBDPosition Based Dynamics布料、电缆
PBDProjective Dynamics实时仿真
MPMMaterial Point Method颗粒材料

7.3 软体物理(Softbody/MPM)

# 软体仿真示例
python -m newton.examples softbody_hanging    # 悬挂软体
python -m newton.examples softbody_franka      # 机械臂+软体

# MPM示例
python -m newton.examples mpm_granular        # 颗粒材料
python -m newton.examples mpm_snow_ball       # 雪球破碎

§8 多物理场耦合

8.1 耦合仿真示例

示例命令耦合类型
Softbody Giftpython -m newton.examples softbody_gift软体+刚体
Dropping to Clothpython -m newton.examples softbody_dropping_to_cloth软体+布料
MPM Two-Way Couplingpython -m newton.examples mpm_twoway_couplingMPM+刚体

8.2 耦合仿真原理

# Newton的多物理场耦合通过统一的时间步长实现
for t in range(num_frames):
    # 1. 更新刚体状态
    rigid_body.step(dt)
    
    # 2. 更新柔体/软体状态
    soft_body.step(dt)
    
    # 3. 计算耦合接触力
    contact_forces = compute_coupling(rigid_body, soft_body)
    
    # 4. 应用耦合力
    rigid_body.apply(contact_forces)
    soft_body.apply(-contact_forces)

§9 性能优化

9.1 GPU 利用率

场景建议 GPU性能提升
实时仿真RTX 3080+50-100x vs CPU
高保真仿真A100200x+ vs CPU
批量仿真多卡并行线性扩展

9.2 仿真参数调优

参数影响建议
--num-frames仿真精度精度要求高时增加
--device计算速度优先使用 GPU
子步数数值稳定性复杂接触增加

9.3 实践建议

# 推荐的工作流
# 1. CPU调试(快速迭代)
python -m newton.examples robot_g1 --device cpu --num-frames 50

# 2. GPU最终仿真(高精度)
python -m newton.examples robot_g1 --device cuda:0 --num-frames 500

# 3. USD输出用于可视化
python -m newton.examples robot_g1 \
    --viewer usd \
    --output-path gait.usd

§10 与竞品对比

10.1 Newton vs MuJoCo

维度NewtonMuJoCo
GPU 加速✅ 原生 CUDA❌ CPU
可微分化✅ JIT 自动微分✅ JAX 绑定
渲染集成✅ OpenUSD 原生⚠️ 需额外配置
学习资源⭐⭐⭐⭐⭐ 丰富示例⭐⭐⭐⭐ 学术为主
机器人模型⭐⭐⭐⭐ 主流支持⭐⭐⭐⭐⭐ 全覆盖
许可Apache-2.0Apache-2.0

10.2 Newton vs Isaac Sim

维度NewtonIsaac Sim
部署难度⭐ 低(pip 安装)⭐⭐⭐ 高(Omniverse 依赖)
Python 优先✅ 原生⚠️ C++/Python 混合
物理精度⭐⭐⭐⭐ 高⭐⭐⭐⭐⭐ 极高
实时仿真⭐⭐⭐⭐ 佳⭐⭐⭐⭐⭐ 极佳
成本免费开源需要 Omniverse

§11 应用场景

11.1 机器人学

应用Newton 优势
强化学习训练GPU 加速 + 可微分化
运动控制实时仿真 + IK 求解器
灵巧操作柔体/软体 + 多指手

11.2 自动驾驶

应用Newton 优势
传感器仿真相机/LiDAR 物理
车辆动力学高保真轮胎模型
场景生成OpenUSD 导出

11.3 内容创作

应用Newton 优势
电影特效布料/柔体物理
游戏开发实时物理
VR/AR低延迟交互

§12 总结

Newton 由 Disney Research、Google DeepMind 和 NVIDIA 联合开发,核心特征:

  • 基于 NVIDIA Warp:继承 CUDA 加速、自动微分等能力
  • 覆盖 12 大仿真领域:刚体、柔体、软体、机器人、IK 等
  • GPU 加速:50-100x 性能提升
  • 可微分化:天然支持强化学习
  • OpenUSD 原生:与工业仿真无缝对接
  • 开源 Apache-2.0:社区驱动,开放生态

官方资源

  • 官网:newton-physics.github.io
  • GitHub:github.com/newton-physics/newton
  • 文档:newton-physics.github.io/newton/latest
  • 讨论:github.com/newton-physics/newton/discussions

🦞 文档版本:v1.0 | 写作日期:2026-04-09