Installation using Isaac Lab Pip Packages#
From Isaac Lab 2.0, pip packages are provided to install both Isaac Sim and Isaac Lab extensions from pip. Note that this installation process is only recommended for advanced users working on additional extension projects that are built on top of Isaac Lab. Isaac Lab pip packages does not include any standalone python scripts for training, inferencing, or running standalone workflows such as demos and examples. Therefore, users are required to define their own runner scripts when installing Isaac Lab from pip.
To learn about how to set up your own project on top of Isaac Lab, please see Create new project or task.
Note
Currently, we only provide pip packages for every major release of Isaac Lab. For example, we provide the pip package for release 2.1.0 and 2.2.0, but not 2.1.1. In the future, we will provide pip packages for every minor release of Isaac Lab.
Preparing a Python Environment#
Creating a dedicated Python environment is strongly recommended. It helps:
Avoid conflicts with system Python or other projects installed on your machine.
Keep dependencies isolated, so that package upgrades or experiments in other projects do not break Isaac Sim.
Easily manage multiple environments for setups with different versions of dependencies.
Simplify reproducibility — the environment contains only the packages needed for the current project, making it easier to share setups with colleagues or run on different machines.
We recommend uv as the package manager — it is significantly faster than pip and conda for creating environments and resolving dependencies.
Caution
The Python version of the virtual environment must match the Python version of Isaac Sim.
For Isaac Sim 6.X, the required Python version is 3.12.
Using a different Python version will result in errors when running Isaac Lab.
The following instructions are for Isaac Sim 6.X, which requires Python 3.12.
Create a virtual environment using one of the package managers:
uv is the fastest and recommended way to create a Python environment for Isaac Lab. To install
uv, please follow the instructions here.# create a virtual environment named env_isaaclab with python3.12 and pip uv venv --python 3.12 --seed env_isaaclab # activate the virtual environment source env_isaaclab/bin/activate
:: create a virtual environment named env_isaaclab with python3.12 and pip uv venv --python 3.12 --seed env_isaaclab :: activate the virtual environment env_isaaclab\Scripts\activate
Note
The
--seedflag ensurespipis available inside theuvvirtual environment, which is required by the Isaac Lab installer.To install conda, please follow the instructions here. You can create the Isaac Lab environment using the following commands.
We recommend using Miniconda, since it is light-weight and resource-efficient environment management system.
conda create -n env_isaaclab python=3.12 conda activate env_isaaclab
Ensure the latest pip version is installed. To update pip, run the following command from inside the virtual environment:
uv pip install --upgrade pip
uv pip install --upgrade pip
Note
If you are using
pipdirectly instead ofuv pip, replaceuv pipwithpip(orpython -m pipon Windows) in the commands above and throughout this guide.
Installing Isaac Lab#
The isaaclab package provides optional extras to install Isaac Sim and individual
Isaac Lab sub-packages:
Extra |
What it installs |
|---|---|
|
Isaac Sim ( |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
All of the above sub-packages (does not include |
# Isaac Lab only
uv pip install isaaclab # latest version
uv pip install isaaclab==3.0.0 # specific version
# 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]"
# Isaac Lab + Isaac Sim + all sub-packages
uv pip install "isaaclab[isaacsim,all]"
# Isaac Lab only
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
# 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:
pip install -U torch==2.10.0 torchvision==0.25.0 --index-url https://download.pytorch.org/whl/cu128
pip install -U torch==2.10.0 torchvision==0.25.0 --index-url https://download.pytorch.org/whl/cu128
pip install -U torch==2.10.0 torchvision==0.25.0 --index-url https://download.pytorch.org/whl/cu130
Note
On aarch64 (e.g., DGX Spark),
imgui-bundleandquadprogmust be compiled from source because no pre-built wheel is available. Install the required Python, OpenGL, and X11 development packages before installing Isaac Lab:sudo apt install python3.12-dev libgl1-mesa-dev libx11-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev
Note
After installing Isaac Lab on aarch64, you may encounter warnings such as:
ERROR: ld.so: object '...torch.libs/libgomp-XXXX.so.1.0.0' cannot be preloaded: ignored.
This occurs when both the system and PyTorch
libgomp(GNU OpenMP) libraries are preloaded. Isaac Sim expects the system OpenMP runtime, while PyTorch sometimes bundles its own.To fix this, unset any existing
LD_PRELOADand set it to use the system library only:unset LD_PRELOAD export LD_PRELOAD="$LD_PRELOAD:/lib/aarch64-linux-gnu/libgomp.so.1"
This ensures the correct
libgomplibrary is preloaded for both Isaac Sim and Isaac Lab, removing the preload warnings during runtime.Note
On aarch64, you may encounter the following error when importing
omni.clientortorch:ImportError: .../libcarb.so: cannot allocate memory in static TLS block
This happens because
libcarb.souses the initial-exec TLS model, and the dynamic linker’s fixed-size TLS surplus is exhausted by the time it is loaded. To fix this, preloadlibcarb.sobefore launching Python:export LD_PRELOAD=$(python -c "import sys,os;[print(os.path.join(p,'omni','client','libcarb.so')) for p in sys.path if os.path.isfile(os.path.join(p,'omni','client','libcarb.so'))]" 2>/dev/null | head -1)${LD_PRELOAD:+:$LD_PRELOAD}
When using
./isaaclab.sh -p, this is handled automatically. When using a conda environment, the preload is set up via the conda activation hook.If you want to use
rl_gamesfor training and inferencing, install its Python 3.11+ enabled fork:pip install git+https://github.com/isaac-sim/rl_games.git@python3.11
Verifying the Isaac Sim installation#
Make sure that your virtual environment is activated (if applicable)
Check that the simulator runs as expected:
# note: you can pass the argument "--help" to see all arguments possible. isaacsimIt’s also possible to run with a specific experience file, run:
# experience files can be absolute path, or relative path searched in isaacsim/apps or omni/apps isaacsim isaacsim.exp.full.kit
Note
When running Isaac Sim for the first time, all dependent extensions will be pulled from the registry. This process can take upwards of 10 minutes and is required on the first run of each experience file. Once the extensions are pulled, consecutive runs using the same experience file will use the cached extensions.
Attention
The first run will prompt users to accept the Nvidia Omniverse License Agreement.
To accept the EULA, reply Yes when prompted with the below message:
By installing or using Isaac Sim, I agree to the terms of NVIDIA OMNIVERSE LICENSE AGREEMENT (EULA)
in https://docs.isaacsim.omniverse.nvidia.com/latest/common/NVIDIA_Omniverse_License_Agreement.html
Do you accept the EULA? (Yes/No): Yes
If the simulator does not run or crashes while following the above instructions, it means that something is incorrectly configured. To debug and troubleshoot, please check Isaac Sim documentation and the Isaac Sim Forums.
Running Isaac Lab Scripts#
By following the above scripts, your Python environment should now have access to all of the Isaac Lab extensions. To run a user-defined script for Isaac Lab, simply run
python my_awesome_script.py
Generating VS Code Settings#
Due to the structure resulting from the installation, VS Code IntelliSense (code completion, parameter info and member lists, etc.) will not work by default. To set it up (define the search paths for import resolution, the path to the default Python interpreter, and other settings), for a given workspace folder, run the following command:
python -m isaaclab --generate-vscode-settings
Warning
The command will generate a .vscode/settings.json file in the workspace folder.
If the file already exists, it will be overwritten (a confirmation prompt will be shown first).