Skip to content

Commit 9d17b52

Browse files
kellyguo11AntoineRichardjtigue-bdaimmungai-bdaijsmith-bdai
authored
Updates docs for newton beta 2 (#4238)
# Description Updates documentation for newton beta 2: - Installation instructions - Visualizers instructions - Multi-backends - folder restructuring and mechanism to switch between backends - Quaternion convention change - switching to XYZW - Warp dependency changes - data will be returned in Warp and users need to call wp.to_torch to convert to torch ## Type of change - Documentation update ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file - [ ] I have added my name to the `CONTRIBUTORS.md` or my name already exists there <!-- As you go through the checklist above, you can mark something as done by putting an x character in it For example, - [x] I have done this task - [ ] I have not done this task --> --------- Signed-off-by: James Tigue <[email protected]> Signed-off-by: ooctipus <[email protected]> Signed-off-by: Kelly Guo <[email protected]> Signed-off-by: Brian McCann <[email protected]> Signed-off-by: Kelly Guo <[email protected]> Signed-off-by: Fan Dongxuan <[email protected]> Signed-off-by: renezurbruegg <[email protected]> Signed-off-by: Mayank Mittal <[email protected]> Signed-off-by: Pascal Roth <[email protected]> Signed-off-by: matthewtrepte <[email protected]> Co-authored-by: Antoine RICHARD <[email protected]> Co-authored-by: James Tigue <[email protected]> Co-authored-by: Eva M. <[email protected]> Co-authored-by: James Smith <[email protected]> Co-authored-by: ooctipus <[email protected]> Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Co-authored-by: Pascal Roth <[email protected]> Co-authored-by: Toni-SM <[email protected]> Co-authored-by: Yanzi Zhu <[email protected]> Co-authored-by: Greg Attra <[email protected]> Co-authored-by: rwiltz <[email protected]> Co-authored-by: Brian McCann <[email protected]> Co-authored-by: Krishna Lakhi <[email protected]> Co-authored-by: Kyle Morgenstein <[email protected]> Co-authored-by: Mayank Mittal <[email protected]> Co-authored-by: Fan Dongxuan <[email protected]> Co-authored-by: Ashwin Varghese Kuruttukulam <[email protected]> Co-authored-by: renezurbruegg <[email protected]> Co-authored-by: Pascal Roth <[email protected]> Co-authored-by: Mayank Mittal <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: zrene <[email protected]> Co-authored-by: yami007007-weihuaz <[email protected]> Co-authored-by: matthewtrepte <[email protected]>
1 parent 3bbabca commit 9d17b52

File tree

12 files changed

+407
-91
lines changed

12 files changed

+407
-91
lines changed
332 KB
Loading
357 KB
Loading
342 KB
Loading

docs/source/experimental-features/newton-physics-integration/index.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ until the framework has reached an official release. We appreciate your understa
3838
:titlesonly:
3939

4040
installation
41+
isaaclab_3-0
4142
training-environments
42-
newton-visualizer
43+
visualization
4344
limitations-and-known-bugs
4445
solver-transitioning
4546
sim-to-sim

docs/source/experimental-features/newton-physics-integration/installation.rst

Lines changed: 16 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ Installation
33

44
Installing the Newton physics integration branch requires three things:
55

6-
1) Isaac sim 5.0
7-
2) The ``feature/newton`` branch of Isaac Lab
8-
3) Ubuntu 22.04 or 24.04 (Windows will be supported soon)
6+
1) The ``feature/newton`` branch of Isaac Lab
7+
2) Ubuntu 22.04 or 24.04 (Windows will be supported soon)
8+
3) [Optional] Isaac sim 5.1 (Isaac Sim is not required if the Omniverse visualizer is not used)
99

1010
To begin, verify the version of Isaac Sim by checking the title of the window created when launching the simulation app. Alternatively, you can
1111
find more explicit version information under the ``Help -> About`` menu within the app.
12-
If your version is less than 5.0, you must first `update or reinstall Isaac Sim <https://docs.isaacsim.omniverse.nvidia.com/latest/installation/quick-install.html>`_ before
12+
If your version is less than 5.1, you must first `update or reinstall Isaac Sim <https://docs.isaacsim.omniverse.nvidia.com/latest/installation/quick-install.html>`_ before
1313
you can proceed further.
1414

1515
Next, navigate to the root directory of your local copy of the Isaac Lab repository and open a terminal.
@@ -20,14 +20,18 @@ Make sure we are on the ``feature/newton`` branch by running the following comma
2020
2121
git checkout feature/newton
2222
23-
Below, we provide instructions for installing Isaac Sim through pip or binary.
23+
Below, we provide instructions for installing Isaac Sim through pip.
2424

2525

2626
Pip Installation
2727
----------------
2828

2929
We recommend using conda for managing your python environments. Conda can be downloaded and installed from `here <https://docs.conda.io/en/latest/miniconda.html>`_.
3030

31+
If you previously already have a virtual environment for Isaac Lab, please ensure to start from a fresh environment to avoid any dependency conflicts.
32+
If you have installed earlier versions of mujoco, mujoco-warp, or newton packages through pip, we recommend first
33+
cleaning your pip cache with ``pip cache purge`` to remove any cache of earlier versions that may be conflicting with the latest.
34+
3135
Create a new conda environment:
3236

3337
.. code-block:: bash
@@ -46,35 +50,11 @@ Install the correct version of torch and torchvision:
4650
4751
pip install -U torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu128
4852
49-
Install Isaac Sim 5.0:
50-
51-
.. code-block:: bash
52-
53-
pip install "isaacsim[all,extscache]==5.0.0" --extra-index-url https://pypi.nvidia.com
54-
55-
Install Isaac Lab extensions and dependencies:
56-
57-
.. code-block:: bash
58-
59-
./isaaclab.sh -i
60-
61-
62-
Binary Installation
63-
-------------------
64-
65-
Follow the Isaac Sim `documentation <https://docs.isaacsim.omniverse.nvidia.com/latest/installation/install_workstation.html>`_ to install Isaac Sim 5.0 binaries.
66-
67-
Enter the Isaac Lab directory:
68-
69-
.. code-block:: bash
70-
71-
cd IsaacLab
72-
73-
Add a symbolic link to the Isaac Sim installation:
53+
[Optional] Install Isaac Sim 5.1:
7454

7555
.. code-block:: bash
7656
77-
ln -s path_to_isaac_sim _isaac_sim
57+
pip install "isaacsim[all,extscache]==5.1.0" --extra-index-url https://pypi.nvidia.com
7858
7959
Install Isaac Lab extensions and dependencies:
8060

@@ -91,3 +71,8 @@ To verify that the installation was successful, run the following command from t
9171
.. code-block:: bash
9272
9373
./isaaclab.sh -p scripts/environments/zero_agent.py --task Isaac-Cartpole-Direct-v0 --num_envs 128
74+
75+
76+
Note that since Newton requires a more recent version of Warp than Isaac Sim 5.1, there may be some incompatibility issues
77+
that could result in errors such as ``ModuleNotFoundError: No module named 'warp.sim'``. These are ok to ignore and should not
78+
impact usability.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
IsaacLab 3.0
2+
============
3+
4+
IsaacLab 3.0 is the upcoming release of IsaacLab, which will be compatible with Isaac Sim 6.0, and at the same time will support the new Newton physics engine.
5+
This will allow users to train policies on the Newton physics engine, or PhysX. To accommodate this major code refactoring are required. In this section, we
6+
will go over some of the changes, how that will affect IsaacLab 2.X users, and how to migrate to IsaacLab 3.0. The current branch of ``feature/newton`` gives
7+
a glance of what is to come. While the changes to the internal code structure are significant, the changes to the user API are minimal.
8+
9+
10+
Let's start with the biggest change: enabling the use of multiple physics engines. We refactored our code so that we can not only support PhysX and Newton, but
11+
any other physics engine, enabling users to bring their own physics engine to IsaacLab if they desire. To enable this, we introduce a base implementations of
12+
our ``simulation interfaces``, :class:`~isaaclab.assets.articulation.Articulation` or :class:`~isaaclab.sensors.ContactSensor` for instance. These provide a
13+
set of abstract methods that all physics engines must implement. In turn this allows all of the default IsaacLab environments to work with any physics engine.
14+
This also allows us to ensure that IsaacLab 3.0 is backwards compatible with IsaacLab 2.X. For engine specific calls, users could get the underlying view of
15+
the physics engine and call the engine specific APIs directly.
16+
17+
However, as we are refactoring the code, we are also looking at ways to limit the overhead of IsaacLab's. In an effort to minimize the overhead, we are moving
18+
all our low level code away from torch, and instead will rely heavily on warp. This will allow us to write low level code that is more efficient, and also
19+
to take advantage of the cuda-graphing. However, this means that the ``data classes`` such as :class:`~isaaclab.assets.articulation.ArticulationData` or
20+
:class:`~isaaclab.sensors.ContactSensorData` will only return warp arrays. Users will hence have to call ``wp.to_torch`` to convert them to torch tensors if they desire.
21+
Our setters/writers will support both warp arrays and torch tensors, and will use the most optimal strategy to update the warp arrays under the hood. This minimizes the
22+
amount of changes required for users to migrate to IsaacLab 3.0.
23+
24+
Another new feature of the writers and setters is the ability to provide them with masks and complete data (as opposed to indices and partial data in IsaacLab 2.X).
25+
Note that this feature will be available along with the ability to provide indices and partial data, and that the default behavior will still be to provide indices and partial data.
26+
However, if using warp, users will have to provide masks and complete data. In general we encourage users to move to adopt this new feature as, if done well, it will
27+
reduce on the fly memory allocations, and should result in better performance.
28+
29+
On the optimization front, we decided to change quaternion conventions. Originally, IsaacLab and Isaac Sim both adopted the ``wxyz`` convention. However, we were doing a located
30+
of conversion to and from ``xyzw`` in our setters/writers as PhysX uses the ``xyzw`` convention. Since both Newton and Warp, also use the ``xyzw`` convention, we decided to change
31+
our default convention to ``xyzw``. This means that all our APIs will now return quaternions in the ``xyzw`` convention. This is likely a breaking change for all the custom
32+
mdps that are not using our :mod:`~isaaclab.utils.math` module. While this change is substantial, it should make things more consistent for when users are using the simulation
33+
views directly, and will remove needless conversions.
34+
35+
Finally, alongside the new isaaclab_newton extension, we are also introducing new isaaclab_experimental and isaaclab_task_experimental extensions. These extensions will allow
36+
quickly bring to main isaaclab new features while leaving them the time they need to mature before being fully integrated into the core isaaclab extensions. In this release,
37+
we are introducing cuda-graphing support for direct rl tasks. This allows to drastically reduce IsaacLab's overhead making training faster. Try them out and let us know what you think!
38+
39+
.. code-block:: bash
40+
41+
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task Isaac-Cartpole-Direct-Warp-v0 --num_envs 4096 --headless
42+
43+
.. code-block:: bash
44+
45+
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task Isaac-Ant-Direct-Warp-v0 --num_envs 4096 --headless
46+
47+
.. code-block:: bash
48+
49+
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task Isaac-Humanoid-Direct-Warp-v0 --num_envs 4096 --headless

docs/source/experimental-features/newton-physics-integration/limitations-and-known-bugs.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ Here is a non-exhaustive list of capabilities currently supported in the Newton
4848
* A1
4949
* Go1
5050
* Go2
51-
* Spot
5251
* Unitree G1
5352
* Unitree H1
5453
* Manipulation reach

docs/source/experimental-features/newton-physics-integration/newton-visualizer.rst

Lines changed: 0 additions & 39 deletions
This file was deleted.

docs/source/experimental-features/newton-physics-integration/sim-to-real.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Train the teacher policy for the G1 velocity task using the Newton backend. The
4040

4141
.. code-block:: bash
4242
43-
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Velocity-Flat-G1-v1 --num_envs=4096 --headless
43+
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Velocity-Flat-G1-v1 --num_envs=4096
4444
4545
The teacher policy includes privileged observations (e.g., root linear velocity) defined in ``PolicyCfg(ObsGroup)``.
4646

@@ -59,7 +59,7 @@ Run the student distillation task ``Velocity-G1-Distillation-v1`` using ``--load
5959

6060
.. code-block:: bash
6161
62-
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Velocity-G1-Distillation-v1 --num_envs=4096 --headless --load_run 2025-08-13_23-53-28 --checkpoint model_1499.pt
62+
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Velocity-G1-Distillation-v1 --num_envs=4096 --load_run 2025-08-13_23-53-28 --checkpoint model_1499.pt
6363
6464
.. note::
6565

@@ -74,7 +74,7 @@ Use ``--load_run`` and ``--checkpoint`` to initialize from the distilled policy.
7474

7575
.. code-block:: bash
7676
77-
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Velocity-G1-Student-Finetune-v1 --num_envs=4096 --headless --load_run 2025-08-20_16-06-52_distillation --checkpoint model_1499.pt
77+
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Velocity-G1-Student-Finetune-v1 --num_envs=4096 --load_run 2025-08-20_16-06-52_distillation --checkpoint model_1499.pt
7878
7979
This starts from the distilled student policy and improves it further with RL training.
8080

@@ -86,7 +86,7 @@ You can replay the student policy via:
8686

8787
.. code-block:: bash
8888
89-
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py --task=Velocity-G1-Student-Finetune-v1 --num_envs=32
89+
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py --task=Velocity-G1-Student-Finetune-v1 --num_envs=32 --visualizer newton
9090
9191
9292
This exports the policy as ``.pt`` and ``.onnx`` files in the run's export directory, ready for real robot deployment.

docs/source/experimental-features/newton-physics-integration/sim-to-sim.rst

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ To run a PhysX-trained policy with the Newton backend, use this command template
5454
--task=<TASK_ID> \
5555
--num_envs=32 \
5656
--checkpoint <PATH_TO_PHYSX_CHECKPOINT> \
57-
--policy_transfer_file <PATH_TO_MAPPING_YAML>
57+
--policy_transfer_file <PATH_TO_MAPPING_YAML> \
58+
--visualizer newton
5859
5960
Here are examples for different robots:
6061

@@ -66,8 +67,8 @@ Here are examples for different robots:
6667
--task=Isaac-Velocity-Flat-G1-v0 \
6768
--num_envs=32 \
6869
--checkpoint <PATH_TO_PHYSX_CHECKPOINT> \
69-
--policy_transfer_file scripts/sim2sim_transfer/config/physx_to_newton_g1.yaml
70-
70+
--policy_transfer_file scripts/sim2sim_transfer/config/physx_to_newton_g1.yaml \
71+
--visualizer newton
7172
7273
2. Unitree H1
7374

@@ -78,7 +79,8 @@ Here are examples for different robots:
7879
--task=Isaac-Velocity-Flat-H1-v0 \
7980
--num_envs=32 \
8081
--checkpoint <PATH_TO_PHYSX_CHECKPOINT> \
81-
--policy_transfer_file scripts/sim2sim_transfer/config/physx_to_newton_h1.yaml
82+
--policy_transfer_file scripts/sim2sim_transfer/config/physx_to_newton_h1.yaml \
83+
--visualizer newton
8284
8385
8486
3. Unitree Go2
@@ -89,7 +91,8 @@ Here are examples for different robots:
8991
--task=Isaac-Velocity-Flat-Go2-v0 \
9092
--num_envs=32 \
9193
--checkpoint <PATH_TO_PHYSX_CHECKPOINT> \
92-
--policy_transfer_file scripts/sim2sim_transfer/config/physx_to_newton_go2.yaml
94+
--policy_transfer_file scripts/sim2sim_transfer/config/physx_to_newton_go2.yaml \
95+
--visualizer newton
9396
9497
9598
4. ANYmal-D
@@ -101,7 +104,8 @@ Here are examples for different robots:
101104
--task=Isaac-Velocity-Flat-Anymal-D-v0 \
102105
--num_envs=32 \
103106
--checkpoint <PATH_TO_PHYSX_CHECKPOINT> \
104-
--policy_transfer_file scripts/sim2sim_transfer/config/physx_to_newton_anymal_d.yaml
107+
--policy_transfer_file scripts/sim2sim_transfer/config/physx_to_newton_anymal_d.yaml \
108+
--visualizer newton
105109
106110
Note that to run this, you need to checkout the Newton-based branch of IsaacLab such as ``feature/newton``.
107111

0 commit comments

Comments
 (0)