Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/license-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,9 @@ jobs:
ACCEPT_EULA: Y
ISAACSIM_ACCEPT_EULA: YES
run: |
uv sync --extra all --extra test
# Isaac Sim conflicts with --extra all under uv, so install it imperatively
# after the sync. Read the pinned spec from pyproject (single source of truth).
uv sync --extra test --extra sb3 --extra skrl --extra rl-games --extra rsl-rl --extra viser --extra rerun --extra rlinf --extra mimic
# Install Isaac Sim imperatively after syncing the compatible extras. Read the pinned spec from
# pyproject (single source of truth).
ISAACSIM_SPEC=$(.venv/bin/python -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['optional-dependencies']['isaacsim'][0])")
uv pip install "$ISAACSIM_SPEC"
uv pip install pip-licenses pipdeptree \
Expand Down
69 changes: 37 additions & 32 deletions docs/source/setup/installation/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,9 @@ Install ``uv``, clone Isaac Lab, and start a workflow:
uv run isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Direct physics=newton_mjwarp

# Add OV PhysX and OVRTX only when needed
uv run --extra ovphysx,ovrtx isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Direct physics=newton_mjwarp
# OV PhysX backend
uv run --extra ovphysx isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Direct physics=ovphysx

# Full Isaac Sim support
uv run --extra isaacsim isaaclab train --rl_library rsl_rl \
Expand All @@ -168,9 +168,9 @@ Install ``uv``, clone Isaac Lab, and start a workflow:
uv run isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Direct physics=newton_mjwarp

# Add OV PhysX and OVRTX only when needed
uv run --extra ovphysx,ovrtx isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Direct physics=newton_mjwarp
# OV PhysX backend
uv run --extra ovphysx isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Direct physics=ovphysx

# Full Isaac Sim support
uv run --extra isaacsim isaaclab train --rl_library rsl_rl \
Expand Down Expand Up @@ -208,9 +208,9 @@ Install ``uv``, clone Isaac Lab, and start a workflow:
uv run isaaclab train --rl_library rsl_rl ^
--task Isaac-Cartpole-Direct physics=newton_mjwarp

:: Add OV PhysX and OVRTX only when needed
uv run --extra ovphysx,ovrtx isaaclab train --rl_library rsl_rl ^
--task Isaac-Cartpole-Direct physics=newton_mjwarp
:: OV PhysX backend
uv run --extra ovphysx isaaclab train --rl_library rsl_rl ^
--task Isaac-Cartpole-Direct physics=ovphysx

:: Full Isaac Sim support
uv run --extra isaacsim isaaclab train --rl_library rsl_rl ^
Expand All @@ -219,15 +219,14 @@ Install ``uv``, clone Isaac Lab, and start a workflow:
:: Play a policy
uv run isaaclab play --rl_library rsl_rl --task Isaac-Cartpole-Direct --viz newton

``uv run`` installs the core dependencies automatically. Add ``--extra <name>``
before ``isaaclab`` when a command needs an optional integration. Pass a
comma-separated list to enable several extras, or repeat ``--extra``. For example,
``--extra ovphysx,ovrtx`` enables both OV backends. Use ``--extra all`` for a
larger compatible bundle.
``uv run`` installs the core dependencies automatically. The ``--extra <name>``
option resolves an optional integration only when that command needs it. Place it
before ``isaaclab``; for example, ``--extra ov`` installs both ovphysx and ovrtx
backends. Pass a comma-separated list or repeat ``--extra``. See
:ref:`installation-optional-extras` for the available extras and compatibility.

You are now ready to use Isaac Lab. Continue with the :doc:`/source/setup/quickstart`,
which starts with your first task and introduces the available commands, RL libraries,
backends, optional extras, and visualizers.
Head over to the :doc:`/source/setup/quickstart`, which starts with your first task and
introduces the available commands, RL libraries, backends, and visualizers.

.. _installation-legacy-installer:

Expand Down Expand Up @@ -554,6 +553,8 @@ The project workflow records the dependency in ``pyproject.toml`` and updates ``
when Isaac Lab is part of an application you maintain; use a standalone environment for exploratory
or temporary work.

.. _installation-optional-extras:

Optional extras
~~~~~~~~~~~~~~~

Expand All @@ -567,27 +568,31 @@ use ``uv pip install "isaaclab[<extra>]"``; for a uv project, use

* - Extra
- What it installs
* - ``all``
- RL framework extras for SB3, SKRL, and RSL-RL.
* - ``isaacsim``
- Isaac Sim (``isaacsim[all,extscache]`` version |isaacsim_version|) from
`pypi.nvidia.com <https://pypi.nvidia.com>`__.

For example, use ``isaaclab[all]`` for the RL extras or
``isaaclab[isaacsim,all]`` for a full Isaac Sim and RL workflow. Combining ``isaacsim`` and
``all`` requires the checked-in uv override file because Isaac Sim's package pins currently conflict
with the Newton viewer stack:
* - ``ov``
- Both OV backends: OV PhysX and OV RTX.
* - ``ovphysx`` / ``ovrtx``
- OV PhysX only / OV RTX only.
* - ``rl-games`` / ``sb3`` / ``skrl`` / ``rsl-rl`` / ``rlinf``
- The corresponding RL framework.
* - ``rerun`` / ``viser``
- The corresponding visualizer.
* - ``mimic`` / ``teleop``
- Imitation learning / XR teleoperation.
* - ``tetrahedralization`` / ``video``
- Mesh tetrahedralization / video recording.
* - ``leapp``
- LEAP model export support.
* - ``test``
- Developer test and documentation tooling.

Do not combine ``isaacsim`` or ``teleop`` with ``ov`` or ``ovphysx``. Choose
either the Isaac Sim or OV backend stack for a command.

.. isaaclab-uv-wheel-install::

The combined installation through ``pip`` is unsupported until the conflicting upstream Isaac Sim
pins are updated. The ``rl_games`` package is not included in wheel extras; install it separately
when required:

.. code-block:: bash

pip install "rl-games @ git+https://github.com/isaac-sim/rl_games.git@python3.11" gym standard-distutils

Install the CUDA-enabled PyTorch build appropriate for your system architecture:

.. tab-set::
Expand Down
71 changes: 59 additions & 12 deletions docs/source/setup/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -40,19 +40,18 @@ Training outputs, including checkpoints, are written under ``logs/``. Use

``uv run`` installs core dependencies automatically. When a command needs an
optional integration, add ``--extra <name>`` before ``isaaclab``. Pass a
comma-separated list to enable several extras, or repeat ``--extra``. For example:
comma-separated list to enable several extras. For example:

.. code-block:: bash

uv run --extra ovphysx,ovrtx isaaclab train --rl_library rsl_rl \
uv run --extra ovphysx isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Direct physics=ovphysx

Extras install capabilities; task selectors choose how to use them. For example,
``--extra ovphysx`` makes the OV PhysX integration available, while
``physics=ovphysx`` selects it for the task. Common extras include ``rl-games``,
``skrl``, ``sb3``, ``rlinf``, ``ov`` (both OV backends), ``ovphysx``, ``ovrtx``,
``rerun``, ``viser``, and ``video``. Use ``--extra all`` for a larger compatible
bundle.
``physics=ovphysx`` selects it for the task. See
:ref:`installation-optional-extras` for the complete list and incompatible
combinations.


Choose an RL library
Expand Down Expand Up @@ -138,27 +137,36 @@ configuration; use the task help to see the supported selectors:
uv run isaaclab train --task Isaac-Cartpole-Direct --help

.. list-table::
:widths: 28 72
:widths: 28 48 24
:header-rows: 1

* - Selector
- Backend
- Required extra
Comment thread
StafaH marked this conversation as resolved.
* - ``physics=newton_mjwarp``
- Newton using the MuJoCo-Warp solver. This is a good default for the quickstart.
- None
* - ``physics=newton_kamino``
- Newton using the Kamino solver. This backend is beta and supports a limited set of tasks.
- None
* - ``physics=ovphysx``
- OV PhysX.
- ``ov`` or ``ovphysx``
* - ``physics=isaacsim_physx``
- Isaac Sim PhysX.
- ``isaacsim``
* - ``renderer=newton_renderer``
- Newton Warp renderer.
- None
* - ``renderer=ovrtx``
- OV RTX renderer.
- ``ov`` or ``ovrtx``
* - ``renderer=isaacsim_rtx``
- Isaac Sim RTX renderer.
- ``isaacsim``
* - ``renderer=rtx``
- Automatic RTX renderer selection.
- ``isaacsim`` or ``ovrtx``

Add task-specific options with ``presets=<name>``; for example:

Expand All @@ -179,23 +187,27 @@ Use ``--viz`` (or ``--visualizer``) to select one or more visualizers during tra
comma-separated list without spaces, such as ``--viz newton,rerun``.

.. list-table::
:widths: 18 82
:widths: 18 58 24
:header-rows: 1

* - Option
- Use it to
- Required extra
* - ``--viz newton``
- Open the Newton visualizer.
- None
* - ``--viz rerun``
- Stream the task to the Rerun visualizer. Add ``--extra rerun`` before
``isaaclab`` when it is not already installed.
- Stream the task to the Rerun visualizer.
- ``rerun``
* - ``--viz viser``
- Open the web-based Viser visualizer. Add ``--extra viser`` before
``isaaclab`` when it is not already installed.
- Open the web-based Viser visualizer.
- ``viser``
* - ``--viz kit``
- Open the Kit visualizer when it is available in your environment.
- ``isaacsim``
* - Omit ``--viz`` or use ``--viz none``
- Run headlessly.
- None

For example, view the same task in both the Newton and Rerun visualizers:

Expand All @@ -208,6 +220,41 @@ See :doc:`/source/overview/core-concepts/visualization` for visualizer setup and
configuration.


Replay a checkpoint
-------------------

Train Cartpole to create a checkpoint:

.. code-block:: bash

uv run isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Direct --num_envs 16 --max_iterations 10 \
physics=newton_mjwarp

Then replay the newest checkpoint in the Newton visualizer:

.. code-block:: bash

uv run isaaclab play --rl_library rsl_rl \
--task Isaac-Cartpole-Direct physics=newton_mjwarp \
--checkpoint latest --viz newton

Choose a checkpoint with one of the following selectors:

.. list-table::
:widths: 38 62
:header-rows: 1

* - Selector
- Loads
* - ``--checkpoint <path>``
- The checkpoint at the specified local path.
* - ``--checkpoint best``
- The library-specific best or final checkpoint. If none was saved separately, this resolves to ``latest``.
* - ``--checkpoint latest``
- The highest-step checkpoint from the newest compatible run.


Next steps
----------

Expand Down
20 changes: 3 additions & 17 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,11 @@ dependencies = [
]

[project.optional-dependencies]
# Automatic surface-to-volume tetrahedralization. PyTetWild imports PyVista eagerly,
# so its ``all`` extra is required even when only the array API is used.

tetrahedralization = ["pytetwild[all]>=0.3.0,<0.4"]
# Video recording. MoviePy bundles an FFmpeg binary through imageio-ffmpeg, so
# keep this dependency explicit rather than including it in default installs.

video = ["moviepy>=1.0.3,<2.0.0.dev0"]
# Developer/test tooling.

test = [
"pytest",
"pytest-mock",
Expand Down Expand Up @@ -149,7 +147,6 @@ rerun = [
]

isaacsim = ["isaacsim[all,extscache]==6.0.1.0"]

ov = ["ovphysx==0.5.9", "ovrtx>=0.4.0,<0.5.0", "ovstage==0.1.0.346039"]
ovphysx = ["ovphysx==0.5.9", "ovstage==0.1.0.346039"]
ovrtx = ["ovrtx>=0.4.0,<0.5.0", "ovstage==0.1.0.346039"]
Expand All @@ -160,17 +157,13 @@ mimic = [
"robomimic @ git+https://github.com/ARISE-Initiative/robomimic.git@v0.4.0 ; sys_platform == 'linux'",
]

# XR teleoperation: carries Isaac Sim for the Kit XR runtime, and isaaclab_mimic because
# ``isaaclab teleop record`` imports it (robomimic stays in ``mimic``).
teleop = [
"isaacsim[all,extscache]==6.0.1.0",
"isaaclab-teleop",
"isaaclab-mimic",
# IsaacTeleop is Linux x86_64 only
"isaacteleop[retargeters,ui,cloudxr]~=1.4.0 ; platform_system == 'Linux' and platform_machine == 'x86_64'",
"dex-retargeting==0.5.0 ; platform_system == 'Linux' and platform_machine == 'x86_64'",
]
# RLinf VLA post-training (externally contributed).
rlinf = [
"ray[default]>=2.47.0",
"av>=12.3.0",
Expand All @@ -183,13 +176,6 @@ rlinf = [
"peft>=0.17.0",
"pandas",
]
# Aggregate of the compatible extras. Omits teleop (would pull Isaac Sim in) and ovphysx
# (packaging<24 clash with isaacsim); install those via their own extra.
# Also omits tetrahedralization and video because their dependencies are large and
# narrowly used; request either extra explicitly when needed.
all = [
"isaaclab-dev[sb3,skrl,rl-games,rsl-rl,viser,rerun,rlinf,mimic]",
]
leapp = [
"leapp>=0.5.2",
]
Expand Down
Loading
Loading