From 125c584f7b40e6f093b49c4aa091be40acc95743 Mon Sep 17 00:00:00 2001 From: Mikhail Yurasov Date: Wed, 25 Feb 2026 22:59:52 -0800 Subject: [PATCH 01/14] Pin Newton to same ref (v0.2.3) --- source/isaaclab/setup.py | 2 +- source/isaaclab_newton/setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/isaaclab/setup.py b/source/isaaclab/setup.py index 06fca3a4b85..60ee76f3127 100644 --- a/source/isaaclab/setup.py +++ b/source/isaaclab/setup.py @@ -50,7 +50,7 @@ "flaky", "packaging", # visualizers - "newton @ git+https://github.com/newton-physics/newton.git@35657fc", + "newton @ git+https://github.com/newton-physics/newton.git@v0.2.3", "imgui-bundle>=1.92.5", "rerun-sdk>=0.29.0", # Required by pydantic-core/imgui_bundle on Python 3.12 (Sentinel symbol). diff --git a/source/isaaclab_newton/setup.py b/source/isaaclab_newton/setup.py index 2e1e422391a..c6f91d102c7 100644 --- a/source/isaaclab_newton/setup.py +++ b/source/isaaclab_newton/setup.py @@ -22,7 +22,7 @@ # newton "mujoco==3.5.0", "mujoco-warp @ git+https://github.com/google-deepmind/mujoco_warp.git@7bb099c082d50803fd63bfe57217025d9f5cd2df", - "newton @ git+https://github.com/newton-physics/newton.git@c2c8588602951238ce07e34edaf983afccf23b5f", + "newton @ git+https://github.com/newton-physics/newton.git@v0.2.3", "PyOpenGL-accelerate==3.1.10", ] From 407a991c73f73e0bbd150627d79a9c823544efa2 Mon Sep 17 00:00:00 2001 From: Mikhail Yurasov Date: Wed, 25 Feb 2026 23:13:24 -0800 Subject: [PATCH 02/14] Add pypi.nvidia.com so that `uv pip install isaaclab[isaacsim]` works without --extra-index-url --- pyproject.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 050b2dee5d4..7f77a42ddf2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -140,3 +140,9 @@ ignore-words-list = "haa,slq,collapsable,buss,reacher,thirdparty" markers = [ "isaacsim_ci: mark test to run in isaacsim ci", ] + +# Add pypi.nvidia.com so that `uv pip install isaaclab[isaacsim]` works without --extra-index-url. +# Pip still needs "--extra-index-url https://pypi.nvidia.com". +[[tool.uv.index]] +url = "https://pypi.nvidia.com" +explicit = false From d18a76365fc76a5261d386ac02cd97ad5bbccc24 Mon Sep 17 00:00:00 2001 From: Mikhail Yurasov Date: Wed, 25 Feb 2026 23:19:40 -0800 Subject: [PATCH 03/14] Add Isaac Lab subpackages + Isaac Sim as extras_require= for setuptools --- source/isaaclab/setup.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/source/isaaclab/setup.py b/source/isaaclab/setup.py index 60ee76f3127..46884a60400 100644 --- a/source/isaaclab/setup.py +++ b/source/isaaclab/setup.py @@ -75,6 +75,31 @@ PYTORCH_INDEX_URL = ["https://download.pytorch.org/whl/cu128"] +# Isaac Lab subpackages + Isaac Sim +EXTRAS_REQUIRE = { + "isaacsim": ["isaacsim[all,extscache]==5.1.0"], + # Individual Isaac Lab sub-packages + "assets": ["isaaclab_assets"], + "physx": ["isaaclab_physx"], + "contrib": ["isaaclab_contrib"], + "mimic": ["isaaclab_mimic"], + "newton": ["isaaclab_newton"], + "rl": ["isaaclab_rl"], + "tasks": ["isaaclab_tasks"], + "teleop": ["isaaclab_teleop"], + # Convenience: all sub-packages (does not include isaacsim) + "all": [ + "isaaclab_assets", + "isaaclab_physx", + "isaaclab_contrib", + "isaaclab_mimic", + "isaaclab_newton", + "isaaclab_rl", + "isaaclab_tasks", + "isaaclab_teleop", + ], +} + # Installation operation setup( name="isaaclab", @@ -88,6 +113,7 @@ include_package_data=True, python_requires=">=3.10", install_requires=INSTALL_REQUIRES, + extras_require=EXTRAS_REQUIRE, dependency_links=PYTORCH_INDEX_URL, packages=["isaaclab"], classifiers=[ From 48ac2e826089c9b872f56c64c6d601c5abc3d916 Mon Sep 17 00:00:00 2001 From: Mikhail Yurasov Date: Wed, 25 Feb 2026 23:54:02 -0800 Subject: [PATCH 04/14] Update installation docs to include uv commands --- .../isaaclab_pip_installation.rst | 74 +++++++++++++++++-- 1 file changed, 66 insertions(+), 8 deletions(-) diff --git a/docs/source/setup/installation/isaaclab_pip_installation.rst b/docs/source/setup/installation/isaaclab_pip_installation.rst index c9577c1307c..813bb6f90de 100644 --- a/docs/source/setup/installation/isaaclab_pip_installation.rst +++ b/docs/source/setup/installation/isaaclab_pip_installation.rst @@ -17,19 +17,77 @@ To learn about how to set up your own project on top of Isaac Lab, please see :r .. include:: include/pip_python_virtual_env.rst -Installing dependencies -~~~~~~~~~~~~~~~~~~~~~~~ +Installing Isaac Lab +~~~~~~~~~~~~~~~~~~~~ -.. note:: +The ``isaaclab`` package provides optional extras to install Isaac Sim and individual +Isaac Lab sub-packages: - In case you used UV to create your virtual environment, please replace ``pip`` with ``uv pip`` - in the following commands. +.. list-table:: + :header-rows: 1 + :widths: 15 55 -- Install the Isaac Lab packages along with Isaac Sim: + * - Extra + - What it installs + * - ``isaacsim`` + - Isaac Sim (``isaacsim[all,extscache]==X.X.X``) from `pypi.nvidia.com `_ + * - ``assets`` + - ``isaaclab_assets`` + * - ``physx`` + - ``isaaclab_physx`` + * - ``contrib`` + - ``isaaclab_contrib`` + * - ``mimic`` + - ``isaaclab_mimic`` + * - ``newton`` + - ``isaaclab_newton`` + * - ``rl`` + - ``isaaclab_rl`` + * - ``tasks`` + - ``isaaclab_tasks`` + * - ``teleop`` + - ``isaaclab_teleop`` + * - ``all`` + - All of the above sub-packages (does **not** include ``isaacsim``) - .. code-block:: none +.. tab-set:: + + .. tab-item:: uv + + .. code-block:: bash + + # Isaac Lab only + uv pip install isaaclab + + # Isaac Lab + Isaac Sim + uv pip install "isaaclab[isaacsim]" + + # Isaac Lab + specific sub-package(s) + uv pip install "isaaclab[assets]" + uv pip install "isaaclab[rl,tasks]" - pip install isaaclab[isaacsim,all]==3.0.0 --extra-index-url https://pypi.nvidia.com + # Isaac Lab + Isaac Sim + all sub-packages + uv pip install "isaaclab[isaacsim,all]" + + .. tab-item:: pip + + .. code-block:: bash + + # Isaac Lab only + pip install isaaclab==3.0.0 + + # Isaac Lab + Isaac Sim + pip install "isaaclab[isaacsim]" --extra-index-url https://pypi.nvidia.com + + # Isaac Lab + specific sub-package(s) + pip install "isaaclab[assets]" + pip install "isaaclab[rl,tasks]" + + # Isaac Lab + Isaac Sim + all Isaac Lab sub-packages + pip install "isaaclab[isaacsim,all]" --extra-index-url https://pypi.nvidia.com + +Installing dependencies +~~~~~~~~~~~~~~~~~~~~~~~ - Install a CUDA-enabled PyTorch 2.10.0 build that matches your system architecture: From d33bde88edce202cc88687ff4f4651338badfd26 Mon Sep 17 00:00:00 2001 From: myurasov-nv <168484206+myurasov-nv@users.noreply.github.com> Date: Thu, 26 Feb 2026 01:01:46 -0800 Subject: [PATCH 05/14] Update docs/source/setup/installation/isaaclab_pip_installation.rst Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Signed-off-by: myurasov-nv <168484206+myurasov-nv@users.noreply.github.com> --- docs/source/setup/installation/isaaclab_pip_installation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/setup/installation/isaaclab_pip_installation.rst b/docs/source/setup/installation/isaaclab_pip_installation.rst index 813bb6f90de..8a9f1359bee 100644 --- a/docs/source/setup/installation/isaaclab_pip_installation.rst +++ b/docs/source/setup/installation/isaaclab_pip_installation.rst @@ -74,7 +74,7 @@ Isaac Lab sub-packages: .. code-block:: bash # Isaac Lab only - pip install isaaclab==3.0.0 + pip install isaaclab==4.2.0 # Isaac Lab + Isaac Sim pip install "isaaclab[isaacsim]" --extra-index-url https://pypi.nvidia.com From 7c4da38d7c779f46ce3f3544a1680cdd64696413 Mon Sep 17 00:00:00 2001 From: myurasov-nv <168484206+myurasov-nv@users.noreply.github.com> Date: Thu, 26 Feb 2026 01:02:03 -0800 Subject: [PATCH 06/14] Update docs/source/setup/installation/isaaclab_pip_installation.rst Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Signed-off-by: myurasov-nv <168484206+myurasov-nv@users.noreply.github.com> --- docs/source/setup/installation/isaaclab_pip_installation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/setup/installation/isaaclab_pip_installation.rst b/docs/source/setup/installation/isaaclab_pip_installation.rst index 8a9f1359bee..c63cc4a0e94 100644 --- a/docs/source/setup/installation/isaaclab_pip_installation.rst +++ b/docs/source/setup/installation/isaaclab_pip_installation.rst @@ -57,7 +57,7 @@ Isaac Lab sub-packages: .. code-block:: bash # Isaac Lab only - uv pip install isaaclab + uv pip install isaaclab==4.2.0 # Isaac Lab + Isaac Sim uv pip install "isaaclab[isaacsim]" From 2bbf9da2135785c64b53bdb281cdf3a2d39b79db Mon Sep 17 00:00:00 2001 From: Mikhail Yurasov Date: Thu, 26 Feb 2026 11:38:50 -0800 Subject: [PATCH 07/14] Update docs to change version to main IL version; example of not using any version --- .../source/setup/installation/isaaclab_pip_installation.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/source/setup/installation/isaaclab_pip_installation.rst b/docs/source/setup/installation/isaaclab_pip_installation.rst index c63cc4a0e94..c35792bfcfd 100644 --- a/docs/source/setup/installation/isaaclab_pip_installation.rst +++ b/docs/source/setup/installation/isaaclab_pip_installation.rst @@ -57,7 +57,8 @@ Isaac Lab sub-packages: .. code-block:: bash # Isaac Lab only - uv pip install isaaclab==4.2.0 + uv pip install isaaclab # latest version + uv pip install isaaclab==3.0.0 # specific version # Isaac Lab + Isaac Sim uv pip install "isaaclab[isaacsim]" @@ -74,7 +75,8 @@ Isaac Lab sub-packages: .. code-block:: bash # Isaac Lab only - pip install isaaclab==4.2.0 + pip install isaaclab # latest version + pip install isaaclab==3.0.0 # specific version # Isaac Lab + Isaac Sim pip install "isaaclab[isaacsim]" --extra-index-url https://pypi.nvidia.com From 8cfc067634a95b5de095f37d16c45ff92537bd59 Mon Sep 17 00:00:00 2001 From: Mikhail Yurasov Date: Thu, 26 Feb 2026 12:58:52 -0800 Subject: [PATCH 08/14] Adds ability to selectively install isaaclab extras via CLI --- .../isaaclab/isaaclab/cli/commands/install.py | 68 +++++++++++++++++-- 1 file changed, 61 insertions(+), 7 deletions(-) diff --git a/source/isaaclab/isaaclab/cli/commands/install.py b/source/isaaclab/isaaclab/cli/commands/install.py index d78082998cd..8229c0d1475 100644 --- a/source/isaaclab/isaaclab/cli/commands/install.py +++ b/source/isaaclab/isaaclab/cli/commands/install.py @@ -121,8 +121,25 @@ def _ensure_cuda_torch() -> None: ) -def _install_isaaclab_extensions() -> None: - """check if input directory is a python extension and install the module""" +# Valid "extras" names that can be passed to --install. +# Each "extra" maps to a source directory named "isaaclab_" under source/. +VALID_ISAACLAB_EXTRAS: set[str] = {"assets", "physx", "contrib", "mimic", "newton", "rl", "tasks", "teleop"} + +# RL framework names accepted. +# Passing one of these installs all extensions + that framework. +VALID_RL_FRAMEWORKS: set[str] = {"rl_games", "rsl_rl", "sb3", "skrl", "robomimic"} + + +def _install_isaaclab_extensions(extensions: list[str] | None = None) -> None: + """Install Isaac Lab extensions from the source directory. + + Scans ``source/`` for sub-directories that contain a ``setup.py`` and + installs each one as an editable pip package. + + Args: + extensions: Optional, list of source directory names to install + If ``None`` is provided, every extension found under ``source/`` is installed. + """ python_exe = extract_python_exe() source_dir = ISAACLAB_ROOT / "source" @@ -135,6 +152,9 @@ def _install_isaaclab_extensions() -> None: # source directory for item in source_dir.iterdir(): if item.is_dir() and (item / "setup.py").exists(): + # Skip extensions not in the requested list. + if extensions is not None and item.name not in extensions: + continue print_info(f"Installing extension: {item.name}") # If the directory contains setup.py then install the python module. run_command( @@ -192,12 +212,20 @@ def _install_extra_frameworks(framework_name: str = "all") -> None: def command_install(install_type: str = "all") -> None: - """ - Install stuff + """Install Isaac Lab extensions and optional sub-packages. Args: - install_type (str): The RL framework to install ('all', 'none', or specific name). + install_type: Comma-separated list of extras to install, or one of the + special values ``"all"`` / ``"none"``. Extra names match the keys + in ``source/isaaclab/setup.py``'s ``extras_require``: + * ``"all"`` (default) — install every extension found under + ``source/``, plus all RL frameworks. + * ``"none"`` — install only the "core" ``isaaclab`` package and skip + RL frameworks. + * Comma-separated extras, e.g. ``"mimic,assets"`` — install + only the "core" ``isaaclab`` package plus the listed sub-packages. """ + # Install system dependencies first. _install_system_deps() @@ -213,6 +241,32 @@ def command_install(install_type: str = "all") -> None: print_info(f"Python executable: {python_exe}") + # Decide which source directories (source/isaaclab/*) to install. + # "all" : install everything + all RL frameworks + # "none" : core isaaclab only, no RL frameworks + # RL framework : install everything + only that RL framework (e.g. "skrl") + # "a,b" : core + selected sub-package directories, no RL frameworks + if install_type == "all": + extensions = None + framework_type = "all" + elif install_type == "none": + extensions = ["isaaclab"] + framework_type = "none" + elif install_type in VALID_RL_FRAMEWORKS: + # Single RL framework name: install all extensions + only that framework. + extensions = None + framework_type = install_type + else: + # Parse comma-separated extras into source directory names. + extensions = ["isaaclab"] # core is always required + for extra in (s.strip() for s in install_type.split(",") if s.strip()): + if extra in VALID_ISAACLAB_EXTRAS: + extensions.append(f"isaaclab_{extra}") + else: + valid = sorted(VALID_ISAACLAB_EXTRAS) + sorted(VALID_RL_FRAMEWORKS) + print_warning(f"Unknown extra '{extra}'. Valid values: {', '.join(valid)}. Skipping.") + framework_type = "none" # RL framework extras not applied in selective mode + # if on ARM arch, temporarily clear LD_PRELOAD # LD_PRELOAD is restored below, after installation saved_ld_preload = None @@ -229,11 +283,11 @@ def command_install(install_type: str = "all") -> None: _ensure_cuda_torch() # Install the python modules for the extensions in Isaac Lab. - _install_isaaclab_extensions() + _install_isaaclab_extensions(extensions) # Install the python packages for supported reinforcement learning frameworks. print_info("Installing extra requirements such as learning frameworks...") - _install_extra_frameworks(install_type) + _install_extra_frameworks(framework_type) # In some rare cases, torch might not be installed properly by setup.py, add one more check here. # Can prevent that from happening. From bef7870d239f90efc1f43cf1e395f735c93c5343 Mon Sep 17 00:00:00 2001 From: Mikhail Yurasov Date: Thu, 26 Feb 2026 12:59:13 -0800 Subject: [PATCH 09/14] Improve help message for --install --- source/isaaclab/isaaclab/cli/__init__.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/source/isaaclab/isaaclab/cli/__init__.py b/source/isaaclab/isaaclab/cli/__init__.py index 59f961be942..20300a51f45 100644 --- a/source/isaaclab/isaaclab/cli/__init__.py +++ b/source/isaaclab/isaaclab/cli/__init__.py @@ -35,8 +35,20 @@ def cli() -> None: "--install", nargs="?", const="all", - help="Install the extensions inside Isaac Lab and learning frameworks as extra dependencies.\n" - + "Can be used in any active conda/uv environment. Default is 'all'.", + help=( + "Install the Isaac Lab extras and RL frameworks.\n" + "Accepts a comma-separated list of extras, one of the RL frameworks, or a special value.\n" + "\n" + "Extras: assets, physx, contrib, mimic, newton, rl, tasks, teleop.\n" + "RL frameworks: rl_games, rsl_rl, sb3, skrl, robomimic.\n" + "\n" + "Passing an RL framework name installs all extensions + that framework.\n" + "\n" + "Special values:\n" + "- all - Install all extensions + all RL frameworks (default).\n" + "- none - Install only the core 'isaaclab' package.\n" + "- (-i or --install without value) - Install all extensions + all RL frameworks.\n" + ), ) parser.add_argument( "-f", From 1b72e086e1c30a5ccd161d706bb88a670431c302 Mon Sep 17 00:00:00 2001 From: Mikhail Yurasov Date: Thu, 26 Feb 2026 13:52:24 -0800 Subject: [PATCH 10/14] Update CLI help message in the docs --- .../include/src_build_isaaclab.rst | 26 +++++- .../include/src_clone_isaaclab.rst | 89 +++++++++++++------ 2 files changed, 83 insertions(+), 32 deletions(-) diff --git a/docs/source/setup/installation/include/src_build_isaaclab.rst b/docs/source/setup/installation/include/src_build_isaaclab.rst index a20d8bb9f72..dde3e289903 100644 --- a/docs/source/setup/installation/include/src_build_isaaclab.rst +++ b/docs/source/setup/installation/include/src_build_isaaclab.rst @@ -37,7 +37,7 @@ Installation isaaclab.bat --install :: or "isaaclab.bat -i" - By default, the above will install **all** the learning frameworks. These include + By default, the above will install **all** the learning framework and all Isaac Lab sub-packages (under ``source/isaaclab``). Available RL frameworks are: ``rl_games``, ``rsl_rl``, ``sb3``, ``skrl``, ``robomimic``. If you want to install only a specific framework, you can pass the name of the framework @@ -60,5 +60,25 @@ Installation isaaclab.bat --install rl_games :: or "isaaclab.bat -i rl_games" - The valid options are ``all``, ``rl_games``, ``rsl_rl``, ``sb3``, ``skrl``, ``robomimic``, - and ``none``. If ``none`` is passed, then no learning frameworks will be installed. + To install only specific Isaac Lab sub-packages, pass a comma-separated list of extras. The available + extras are: ``assets``, ``physx``, ``contrib``, ``mimic``, ``newton``, ``rl``, ``tasks``, + ``teleop``. For example, to install only the ``mimic`` and ``assets`` sub-packages: + + .. tab-set:: + :sync-group: os + + .. tab-item:: :icon:`fa-brands fa-linux` Linux + :sync: linux + + .. code:: bash + + ./isaaclab.sh --install mimic,assets # or "./isaaclab.sh -i mimic,assets" + + .. tab-item:: :icon:`fa-brands fa-windows` Windows + :sync: windows + + .. code:: batch + + isaaclab.bat --install mimic,assets :: or "isaaclab.bat -i mimic,assets" + + Pass ``none`` to install only the core ``isaaclab`` package without any sub-packages or RL frameworks. diff --git a/docs/source/setup/installation/include/src_clone_isaaclab.rst b/docs/source/setup/installation/include/src_clone_isaaclab.rst index 844cac2f3fd..36af4b1b1ca 100644 --- a/docs/source/setup/installation/include/src_clone_isaaclab.rst +++ b/docs/source/setup/installation/include/src_clone_isaaclab.rst @@ -39,21 +39,36 @@ respectively that provides utilities to manage extensions. ./isaaclab.sh --help - usage: isaaclab.sh [-h] [-i] [-f] [-p] [-s] [-t] [-o] [-v] [-d] [-n] [-c] -- Utility to manage Isaac Lab. - - optional arguments: - -h, --help Display the help content. - -i, --install [LIB] Install the extensions inside Isaac Lab and learning frameworks (rl_games, rsl_rl, sb3, skrl) as extra dependencies. Default is 'all'. - -f, --format Run pre-commit to format the code and check lints. - -p, --python Run the python executable provided by Isaac Sim or virtual environment (if active). - -s, --sim Run the simulator executable (isaac-sim.sh) provided by Isaac Sim. - -t, --test Run all python pytest tests. - -o, --docker Run the docker container helper script (docker/container.sh). - -v, --vscode Generate the VSCode settings file from template. - -d, --docs Build the documentation from source using sphinx. - -n, --new Create a new external project or internal task from template. - -c, --conda [NAME] Create the conda environment for Isaac Lab. Default name is 'env_isaaclab'. - -u, --uv [NAME] Create the uv environment for Isaac Lab. Default name is 'env_isaaclab'. + usage: isaaclab.sh [-h] [-i [INSTALL]] [-f] [-p ...] [-s ...] [-t ...] [-o ...] [-v] [-d] [-n ...] [-c [CONDA]] [-u [UV]] + + Isaac Lab CLI + + options: + -h, --help show this help message and exit + -i [INSTALL], --install [INSTALL] + Install the Isaac Lab extras and RL frameworks. + Accepts a comma-separated list of extras, one of the RL frameworks, or a special value. + + Extras: assets, physx, contrib, mimic, newton, rl, tasks, teleop. + RL frameworks: rl_games, rsl_rl, sb3, skrl, robomimic. + + Passing an RL framework name installs all extensions + that framework. + + Special values: + - all - Install all extensions + all RL frameworks (default). + - none - Install only the core 'isaaclab' package. + - (-i or --install without value) - Install all extensions + all RL frameworks. + -f, --format Run pre-commit to format the code and check lints. + -p ..., --python ... Run the python executable provided by Isaac Sim or virtual environment (if active). + -s ..., --sim ... Run the simulator executable (isaac-sim.sh) provided by Isaac Sim. + -t ..., --test ... Run all python pytest tests. + -o ..., --docker ... Run the docker container helper script (docker/container.sh). + -v, --vscode Generate the VSCode settings file from template. + -d, --docs Build the documentation from source using sphinx. + -n ..., --new ... Create a new external project or internal task from template. + -c [CONDA], --conda [CONDA] + Create a new conda environment for Isaac Lab. Default name is 'env_isaaclab'. + -u [UV], --uv [UV] Create a new uv environment for Isaac Lab. Default name is 'env_isaaclab'. .. tab-item:: :icon:`fa-brands fa-windows` Windows :sync: windows @@ -62,17 +77,33 @@ respectively that provides utilities to manage extensions. isaaclab.bat --help - usage: isaaclab.bat [-h] [-i] [-f] [-p] [-s] [-v] [-d] [-n] [-c] -- Utility to manage Isaac Lab. - - optional arguments: - -h, --help Display the help content. - -i, --install [LIB] Install the extensions inside Isaac Lab and learning frameworks (rl_games, rsl_rl, sb3, skrl) as extra dependencies. Default is 'all'. - -f, --format Run pre-commit to format the code and check lints. - -p, --python Run the python executable provided by Isaac Sim or virtual environment (if active). - -s, --sim Run the simulator executable (isaac-sim.bat) provided by Isaac Sim. - -t, --test Run all python pytest tests. - -v, --vscode Generate the VSCode settings file from template. - -d, --docs Build the documentation from source using sphinx. - -n, --new Create a new external project or internal task from template. - -c, --conda [NAME] Create the conda environment for Isaac Lab. Default name is 'env_isaaclab'. - -u, --uv [NAME] Create the uv environment for Isaac Lab. Default name is 'env_isaaclab'. + usage: isaaclab.bat [-h] [-i [INSTALL]] [-f] [-p ...] [-s ...] [-t ...] [-o ...] [-v] [-d] [-n ...] [-c [CONDA]] [-u [UV]] + + Isaac Lab CLI + + options: + -h, --help show this help message and exit + -i [INSTALL], --install [INSTALL] + Install the Isaac Lab extras and RL frameworks. + Accepts a comma-separated list of extras, one of the RL frameworks, or a special value. + + Extras: assets, physx, contrib, mimic, newton, rl, tasks, teleop. + RL frameworks: rl_games, rsl_rl, sb3, skrl, robomimic. + + Passing an RL framework name installs all extensions + that framework. + + Special values: + - all - Install all extensions + all RL frameworks (default). + - none - Install only the core 'isaaclab' package. + - (-i or --install without value) - Install all extensions + all RL frameworks. + -f, --format Run pre-commit to format the code and check lints. + -p ..., --python ... Run the python executable provided by Isaac Sim or virtual environment (if active). + -s ..., --sim ... Run the simulator executable (isaac-sim.bat) provided by Isaac Sim. + -t ..., --test ... Run all python pytest tests. + -o ..., --docker ... Run the docker container helper script (docker/container.sh). + -v, --vscode Generate the VSCode settings file from template. + -d, --docs Build the documentation from source using sphinx. + -n ..., --new ... Create a new external project or internal task from template. + -c [CONDA], --conda [CONDA] + Create a new conda environment for Isaac Lab. Default name is 'env_isaaclab'. + -u [UV], --uv [UV] Create a new uv environment for Isaac Lab. Default name is 'env_isaaclab'. From 7abb7181e4215333766764e945c18082cd3c7138 Mon Sep 17 00:00:00 2001 From: Mikhail Yurasov Date: Thu, 26 Feb 2026 13:57:21 -0800 Subject: [PATCH 11/14] Make sure sup-components that live under source/isaaclab/ are called "sub-packages", not extras or anything else --- .../include/src_build_isaaclab.rst | 4 ++-- .../include/src_clone_isaaclab.rst | 16 +++++++-------- source/isaaclab/isaaclab/cli/__init__.py | 12 +++++------ .../isaaclab/isaaclab/cli/commands/install.py | 20 +++++++++---------- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/docs/source/setup/installation/include/src_build_isaaclab.rst b/docs/source/setup/installation/include/src_build_isaaclab.rst index dde3e289903..4bddb2bb5fb 100644 --- a/docs/source/setup/installation/include/src_build_isaaclab.rst +++ b/docs/source/setup/installation/include/src_build_isaaclab.rst @@ -60,8 +60,8 @@ Installation isaaclab.bat --install rl_games :: or "isaaclab.bat -i rl_games" - To install only specific Isaac Lab sub-packages, pass a comma-separated list of extras. The available - extras are: ``assets``, ``physx``, ``contrib``, ``mimic``, ``newton``, ``rl``, ``tasks``, + To install only specific sub-packages, pass a comma-separated list of sub-package names. The available + sub-packages are: ``assets``, ``physx``, ``contrib``, ``mimic``, ``newton``, ``rl``, ``tasks``, ``teleop``. For example, to install only the ``mimic`` and ``assets`` sub-packages: .. tab-set:: diff --git a/docs/source/setup/installation/include/src_clone_isaaclab.rst b/docs/source/setup/installation/include/src_clone_isaaclab.rst index 36af4b1b1ca..3ef55579215 100644 --- a/docs/source/setup/installation/include/src_clone_isaaclab.rst +++ b/docs/source/setup/installation/include/src_clone_isaaclab.rst @@ -46,13 +46,13 @@ respectively that provides utilities to manage extensions. options: -h, --help show this help message and exit -i [INSTALL], --install [INSTALL] - Install the Isaac Lab extras and RL frameworks. - Accepts a comma-separated list of extras, one of the RL frameworks, or a special value. + Install Isaac Lab sub-packages and RL frameworks. + Accepts a comma-separated list of sub-package names, one of the RL frameworks, or a special value. - Extras: assets, physx, contrib, mimic, newton, rl, tasks, teleop. + Sub-packages: assets, physx, contrib, mimic, newton, rl, tasks, teleop. RL frameworks: rl_games, rsl_rl, sb3, skrl, robomimic. - Passing an RL framework name installs all extensions + that framework. + Passing an RL framework name installs all sub-packages + that framework. Special values: - all - Install all extensions + all RL frameworks (default). @@ -84,13 +84,13 @@ respectively that provides utilities to manage extensions. options: -h, --help show this help message and exit -i [INSTALL], --install [INSTALL] - Install the Isaac Lab extras and RL frameworks. - Accepts a comma-separated list of extras, one of the RL frameworks, or a special value. + Install Isaac Lab sub-packages and RL frameworks. + Accepts a comma-separated list of sub-package names, one of the RL frameworks, or a special value. - Extras: assets, physx, contrib, mimic, newton, rl, tasks, teleop. + Sub-packages: assets, physx, contrib, mimic, newton, rl, tasks, teleop. RL frameworks: rl_games, rsl_rl, sb3, skrl, robomimic. - Passing an RL framework name installs all extensions + that framework. + Passing an RL framework name installs all sub-packages + that framework. Special values: - all - Install all extensions + all RL frameworks (default). diff --git a/source/isaaclab/isaaclab/cli/__init__.py b/source/isaaclab/isaaclab/cli/__init__.py index 20300a51f45..a10a9d812b5 100644 --- a/source/isaaclab/isaaclab/cli/__init__.py +++ b/source/isaaclab/isaaclab/cli/__init__.py @@ -36,18 +36,18 @@ def cli() -> None: nargs="?", const="all", help=( - "Install the Isaac Lab extras and RL frameworks.\n" - "Accepts a comma-separated list of extras, one of the RL frameworks, or a special value.\n" + "Install Isaac Lab sub-packages and RL frameworks.\n" + "Accepts a comma-separated list of sub-package names, one of the RL frameworks, or a special value.\n" "\n" - "Extras: assets, physx, contrib, mimic, newton, rl, tasks, teleop.\n" + "Sub-packages: assets, physx, contrib, mimic, newton, rl, tasks, teleop.\n" "RL frameworks: rl_games, rsl_rl, sb3, skrl, robomimic.\n" "\n" - "Passing an RL framework name installs all extensions + that framework.\n" + "Passing an RL framework name installs all sub-packages + that framework.\n" "\n" "Special values:\n" - "- all - Install all extensions + all RL frameworks (default).\n" + "- all - Install all sub-packages + all RL frameworks (default).\n" "- none - Install only the core 'isaaclab' package.\n" - "- (-i or --install without value) - Install all extensions + all RL frameworks.\n" + "- (-i or --install without value) - Install all sub-packages + all RL frameworks.\n" ), ) parser.add_argument( diff --git a/source/isaaclab/isaaclab/cli/commands/install.py b/source/isaaclab/isaaclab/cli/commands/install.py index 8229c0d1475..b509b13f920 100644 --- a/source/isaaclab/isaaclab/cli/commands/install.py +++ b/source/isaaclab/isaaclab/cli/commands/install.py @@ -121,9 +121,9 @@ def _ensure_cuda_torch() -> None: ) -# Valid "extras" names that can be passed to --install. -# Each "extra" maps to a source directory named "isaaclab_" under source/. -VALID_ISAACLAB_EXTRAS: set[str] = {"assets", "physx", "contrib", "mimic", "newton", "rl", "tasks", "teleop"} +# Valid sub-package names that can be passed to --install. +# Each sub-package maps to a source directory named "isaaclab_" under source/. +VALID_ISAACLAB_SUBPACKAGES: set[str] = {"assets", "physx", "contrib", "mimic", "newton", "rl", "tasks", "teleop"} # RL framework names accepted. # Passing one of these installs all extensions + that framework. @@ -257,15 +257,15 @@ def command_install(install_type: str = "all") -> None: extensions = None framework_type = install_type else: - # Parse comma-separated extras into source directory names. + # Parse comma-separated sub-package names into source directory names. extensions = ["isaaclab"] # core is always required - for extra in (s.strip() for s in install_type.split(",") if s.strip()): - if extra in VALID_ISAACLAB_EXTRAS: - extensions.append(f"isaaclab_{extra}") + for name in (s.strip() for s in install_type.split(",") if s.strip()): + if name in VALID_ISAACLAB_SUBPACKAGES: + extensions.append(f"isaaclab_{name}") else: - valid = sorted(VALID_ISAACLAB_EXTRAS) + sorted(VALID_RL_FRAMEWORKS) - print_warning(f"Unknown extra '{extra}'. Valid values: {', '.join(valid)}. Skipping.") - framework_type = "none" # RL framework extras not applied in selective mode + valid = sorted(VALID_ISAACLAB_SUBPACKAGES) + sorted(VALID_RL_FRAMEWORKS) + print_warning(f"Unknown sub-package '{name}'. Valid values: {', '.join(valid)}. Skipping.") + framework_type = "none" # RL frameworks not applied in selective mode # if on ARM arch, temporarily clear LD_PRELOAD # LD_PRELOAD is restored below, after installation From caa77752e6d3f5f83e1dc83493f700028753fdc1 Mon Sep 17 00:00:00 2001 From: myurasov-nv <168484206+myurasov-nv@users.noreply.github.com> Date: Thu, 26 Feb 2026 23:54:16 -0800 Subject: [PATCH 12/14] Update docs/source/setup/installation/include/src_build_isaaclab.rst Co-authored-by: Kelly Guo Signed-off-by: myurasov-nv <168484206+myurasov-nv@users.noreply.github.com> --- docs/source/setup/installation/include/src_build_isaaclab.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/setup/installation/include/src_build_isaaclab.rst b/docs/source/setup/installation/include/src_build_isaaclab.rst index 4bddb2bb5fb..b720326f161 100644 --- a/docs/source/setup/installation/include/src_build_isaaclab.rst +++ b/docs/source/setup/installation/include/src_build_isaaclab.rst @@ -79,6 +79,6 @@ Installation .. code:: batch - isaaclab.bat --install mimic,assets :: or "isaaclab.bat -i mimic,assets" + isaaclab.bat --install physx,assets,rl,tasks :: or "isaaclab.bat -i physx,assets,rl,tasks" Pass ``none`` to install only the core ``isaaclab`` package without any sub-packages or RL frameworks. From 7b8ffab84f53e83462d06f637ffaf4b61731e927 Mon Sep 17 00:00:00 2001 From: myurasov-nv <168484206+myurasov-nv@users.noreply.github.com> Date: Thu, 26 Feb 2026 23:54:45 -0800 Subject: [PATCH 13/14] Update docs/source/setup/installation/include/src_build_isaaclab.rst Co-authored-by: Kelly Guo Signed-off-by: myurasov-nv <168484206+myurasov-nv@users.noreply.github.com> --- docs/source/setup/installation/include/src_build_isaaclab.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/setup/installation/include/src_build_isaaclab.rst b/docs/source/setup/installation/include/src_build_isaaclab.rst index b720326f161..ffb2bf5d7dd 100644 --- a/docs/source/setup/installation/include/src_build_isaaclab.rst +++ b/docs/source/setup/installation/include/src_build_isaaclab.rst @@ -72,7 +72,7 @@ Installation .. code:: bash - ./isaaclab.sh --install mimic,assets # or "./isaaclab.sh -i mimic,assets" + ./isaaclab.sh --install physx,assets,rl,tasks # or "./isaaclab.sh -i physx,assets,rl,tasks" .. tab-item:: :icon:`fa-brands fa-windows` Windows :sync: windows From c85db43f6ab83d07abbac793ff2dd9d59ab9c299 Mon Sep 17 00:00:00 2001 From: Mikhail Yurasov Date: Fri, 27 Feb 2026 00:00:34 -0800 Subject: [PATCH 14/14] Remove notion that UV support is experimental --- .../setup/installation/include/pip_python_virtual_env.rst | 2 +- .../setup/installation/include/src_python_virtual_env.rst | 2 +- docs/source/setup/quickstart.rst | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/setup/installation/include/pip_python_virtual_env.rst b/docs/source/setup/installation/include/pip_python_virtual_env.rst index 43b625293bb..8791a981228 100644 --- a/docs/source/setup/installation/include/pip_python_virtual_env.rst +++ b/docs/source/setup/installation/include/pip_python_virtual_env.rst @@ -73,7 +73,7 @@ If you wish to install Isaac Sim 5.X, please use modify the instructions accordi :: activate the virtual environment env_isaaclab\Scripts\activate - .. tab-item:: UV Environment (experimental) + .. tab-item:: UV Environment To install ``uv``, please follow the instructions `here `__. diff --git a/docs/source/setup/installation/include/src_python_virtual_env.rst b/docs/source/setup/installation/include/src_python_virtual_env.rst index 9f5b81ef359..3f66ac644f8 100644 --- a/docs/source/setup/installation/include/src_python_virtual_env.rst +++ b/docs/source/setup/installation/include/src_python_virtual_env.rst @@ -76,7 +76,7 @@ instead of *./isaaclab.sh -p* or *isaaclab.bat -p*. :: Activate environment conda activate env_isaaclab # or "conda activate my_env" - .. tab-item:: UV Environment (experimental) + .. tab-item:: UV Environment To install ``uv``, please follow the instructions `here `__. You can create the Isaac Lab environment using the following commands: diff --git a/docs/source/setup/quickstart.rst b/docs/source/setup/quickstart.rst index 877f44cf036..f046cb8e4f0 100644 --- a/docs/source/setup/quickstart.rst +++ b/docs/source/setup/quickstart.rst @@ -40,7 +40,7 @@ To begin, we first define our virtual environment. # activate the virtual environment conda activate env_isaaclab - .. tab-item:: uv (experimental) + .. tab-item:: uv .. tab-set:: :sync-group: os