
DGX SparkでIsaac Lab を入れて物理シミュレータ Newton で四足歩行ロボットを動かしてみた
こんにちは。atsuです。
NVIDIA の Isaac Lab v3.0.0-beta に同胞されている Newton を、aarch64 の DGX Spark で動かしてみました。Unitree の四足歩行ロボット Go2 が staning → walking まで動きましたので、手順を残します。
この記事は Isaac Lab v3.0.0-beta (2026年5月時点) で確認した内容です。Newton backend も beta 段階で、正式版では挙動や手順が変わる可能性があります。
背景
Newton は Isaac Lab 3.0-beta から新しく入った物理エンジン(物理計算を担当する中身のライブラリ)で、Warp(NVIDIA の GPU 用 Python フレームワーク)と MuJoCo-Warp をベースに、たくさんの環境を GPU 上で同時に動かせるよう設計されています。自分の構成では PhysX が GPU で走らず CPU 側に落ちてしまって 1 ステップ進める速度が伸び悩んでいたので、GPU でそのまま回る Newton を試しに使ってみよう、というのが今回の動機です。
| 物理エンジン | 中身 | 特徴 |
|---|---|---|
| PhysX (従来) | NVIDIA PhysX 5(C++ / CUDA で書かれた物理ライブラリ) | Isaac Sim の標準。GPU で走らせる経路もあるが構成次第。剛体・多関節・接触の扱いが成熟 |
| Newton (3.0 から追加) | Warp で書かれた、複数の解法を切り替えられる物理基盤。中で MuJoCo-Warp などを呼ぶ | GPU 上で大量の環境を同時に走らせるのが得意。MuJoCo 系の接触モデルも使える |
環境
| 項目 | 内容 |
|---|---|
| ハードウェア | NVIDIA DGX Spark (GB10, aarch64, 93 GB RAM) |
| OS | Ubuntu 24.04, kernel 6.17 |
| GPU ドライバ | NVIDIA driver 580.126.09 (CUDA 13) |
| Python | 3.12 (system) + uv を venv 管理に使用 |
$ uname -m
aarch64
$ nvidia-smi --query-gpu=name,driver_version --format=csv,noheader
NVIDIA GB10, 580.126.09
インストール手順
Isaac Sim 6.0
NVIDIA NGC catalog から isaac-sim 6.0.0-rc.13 を取得して ~/isaac/_isaac_sim/ に置きました。PhysX baseline (IsaacLab v2.3.0) と Newton 用 (IsaacLab-newton、v3.0.0-beta) の両方で同じ _isaac_sim を symlink して共有しています。
uv-venv で IsaacLab-newton
自分の環境では system Python をそのままにしておきたかったので、uv venv でツリーを切り分ける構成を選びました。
git clone -b v3.0.0-beta https://github.com/isaac-sim/IsaacLab.git ~/isaac/IsaacLab-newton
cd ~/isaac/IsaacLab-newton
uv venv ~/isaac/env_isaaclab --python 3.12
. ~/isaac/env_isaaclab/bin/activate
./isaaclab.sh -i newton # newton 系 wheel をまとめて解決
mujoco-warp 3.8.1、warp-lang 1.13.0、isaaclab_newton 0.5.9 あたりが入っていれば動きました。
Newton 起動
isaaclab.sh 経由で play_go2_newton_teleop.py を --visualizer newton 付きで呼ぶのが手早かったです。
cd ~/isaac/IsaacLab-newton
echo Yes | ./isaaclab.sh -p ~/go2-digital-twin/isaac/isaaclab/play_go2_newton_teleop.py \
--num_envs 1 \
presets=newton_mjwarp \
--visualizer newton
presets=newton_mjwarp で MJ-Warp ソルバー + Warp accelerator が選ばれます。立ち上がるとこのあたりが出てきます:
[newton_teleop] env ready — listening on /cmd_vel
[newton_teleop] actor MLP layout: [45, 512, 256, 128, 12]
policy は unitree_rl_lab の model_47100.pt (PPO, 45-d obs) を読ませています。
可視化は Newton 内蔵 viewer か Rerun が手元では使いやすかったので、--visualizer newton か --visualizer rerun を選んでいます。Rerun を使うときは:
echo Yes | ./isaaclab.sh -p ~/go2-digital-twin/isaac/isaaclab/play_go2_newton_teleop.py \
--num_envs 1 \
presets=newton_mjwarp \
--visualizer newton,rerun
で並行起動できて、ブラウザで開くと web viewer になります。

NewtonViewer での操作
--visualizer newton で開く Newton 内蔵 OpenGL viewer (ViewerGL 系) の操作です。Warp の examples と同じ感覚で動かせます。
マウス
| 操作 | 結果 |
|---|---|
| 左ドラッグ | 視点 orbit |
| 右ドラッグ (もしくは Shift + 左) | パン |
| ホイール | ズーム |
| 中ドラッグ | 距離 |
キー (viewer ウィンドウにフォーカス)
| キー | 動作 |
|---|---|
Space |
物理ポーズ |
S |
ポーズ中に1フレームだけ進める |
R |
環境リセット |
H |
UI 更新の表示切替 |
G |
グリッドの表示切替 |
W / A / S / D |
カメラ前後左右 (FPS 風) |
Q / E |
カメラ上下 |
F |
ロボットにカメラをフォーカス |
1 – 9 |
プリセット視点 (top-down, front, side, iso, …) |
[ / ] |
影 トグル |
Esc |
終了 |
まとめ
- Isaac Sim 6.0 + Isaac Lab 3.0-beta + Newton 1.2.0 の構成で、aarch64 (DGX Spark) でも Go2 を walking まで動かせました。
- env_step は手元の計測で PhysX (CPU) ~18 → Newton(GPU) ~343 ぐらいになり、体感でもだいぶ軽くなりました。
- 可視化は Newton 内蔵 viewer と Rerun を使い分けると、ローカル確認とブラウザ共有のどちらにも対応できて便利でした。
参考文献
NVIDIA Isaac Lab v3.0-beta release notes — Newton backend が同梱された経緯
- MuJoCo Warp — Newton の MJ-Warp ソルバー
- NVIDIA Warp — Newton の数値カーネル基盤
- Isaac Sim 6.0 release notes
- unitree_rl_lab — Go2 PPO 学習レポジトリ (model_47100 の出所)
- unitree_mujoco — Go2 MJCF + STL
- Rerun.io — Web / Native の 3D 可視化、Newton viewer の Rerun backend








