> This page is for version Release 2.3.
> For other versions, use one of these documentation indexes:
> - Release 3.0 (default): https://docs.nvidia.com/isaaclab/3.0/llms.txt
> - Release 2.3: https://docs.nvidia.com/isaaclab/2.3/llms.txt
> - Release 2.2: https://docs.nvidia.com/isaaclab/2.2/llms.txt
> - Release 2.1: https://docs.nvidia.com/isaaclab/2.1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/isaaclab/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/isaaclab/_mcp/server.

# Installation using Isaac Sim Source Code

The following steps first installs Isaac Sim from source, then Isaac Lab from source code.

> **Note**
>
> This is a more advanced installation method and is not recommended for most users. Only follow this method
> if you wish to modify the source code of Isaac Sim as well.

## Installing Isaac Sim

### Building from source

From Isaac Sim 5.0 release, it is possible to build Isaac Sim from its source code.
This approach is meant for users who wish to modify the source code of Isaac Sim as well,
or want to test Isaac Lab with the nightly version of Isaac Sim.

The following instructions are adapted from the [Isaac Sim documentation](https://github.com/isaac-sim/IsaacSim?tab=readme-ov-file#quick-start)
for the convenience of users.

> **Warning**
>
> Building Isaac Sim from source requires Ubuntu 22.04 LTS or higher.

> **Warning**
>
> For details on driver requirements, please see the [Technical Requirements](https://docs.omniverse.nvidia.com/materials-and-rendering/latest/common/technical-requirements.html) guide!
>
> On Windows, it may be necessary to [enable long path support](https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry#enable-long-paths-in-windows-10-version-1607-and-later) to avoid installation errors due to OS limitations.

* Clone the Isaac Sim repository into your workspace:

```bash
git clone https://github.com/isaac-sim/IsaacSim.git
```

* Build Isaac Sim from source:

#### Linux

```bash
cd IsaacSim
./build.sh
```

#### Windows

```bash
cd IsaacSim
build.bat
```

### Verifying the Isaac Sim installation

To avoid the overhead of finding and locating the Isaac Sim installation
directory every time, we recommend exporting the following environment
variables to your terminal for the remaining of the installation instructions:

#### Linux

```bash
# Isaac Sim root directory
export ISAACSIM_PATH="${pwd}/_build/linux-x86_64/release"
# Isaac Sim python executable
export ISAACSIM_PYTHON_EXE="${ISAACSIM_PATH}/python.sh"
```

#### Windows

```batch
:: Isaac Sim root directory
set ISAACSIM_PATH="%cd%\_build\windows-x86_64\release"
:: Isaac Sim python executable
set ISAACSIM_PYTHON_EXE="%ISAACSIM_PATH:"=%\python.bat"
```

Check that the simulator runs as expected:

#### Linux

```bash
# note: you can pass the argument "--help" to see all arguments possible.
${ISAACSIM_PATH}/isaac-sim.sh
```

#### Windows

```batch
:: note: you can pass the argument "--help" to see all arguments possible.
%ISAACSIM_PATH%\isaac-sim.bat
```

Check that the simulator runs from a standalone python script:

#### Linux

```bash
# checks that python path is set correctly
${ISAACSIM_PYTHON_EXE} -c "print('Isaac Sim configuration is now complete.')"
# checks that Isaac Sim can be launched from python
${ISAACSIM_PYTHON_EXE} ${ISAACSIM_PATH}/standalone_examples/api/isaacsim.core.api/add_cubes.py
```

#### Windows

```batch
:: checks that python path is set correctly
%ISAACSIM_PYTHON_EXE% -c "print('Isaac Sim configuration is now complete.')"
:: checks that Isaac Sim can be launched from python
%ISAACSIM_PYTHON_EXE% %ISAACSIM_PATH%\standalone_examples\api\isaacsim.core.api\add_cubes.py
```

> **Warning**
>
> If you have been using a previous version of Isaac Sim, you need to run the following command for the *first*
> time after installation to remove all the old user data and cached variables:
>
> #### \`fa-brands fa-linux\` Linux
>
> ```bash
> ```
>
> $\{ISAACSIM_PATH}/isaac-sim.sh --reset-user
>
> #### \`fa-brands fa-windows\` Windows
>
> ```batch
> %ISAACSIM_PATH%\isaac-sim.bat --reset-user
> ```

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](https://docs.omniverse.nvidia.com/dev-guide/latest/linux-troubleshooting.html)
and the
[Isaac Sim Forums](https://docs.isaacsim.omniverse.nvidia.com/latest/common/feedback.html).

## Installing Isaac Lab

### Cloning Isaac Lab

> **Note**
>
> We recommend making a [fork](https://github.com/isaac-sim/IsaacLab/fork) of the Isaac Lab repository to contribute
> to the project but this is not mandatory to use the framework. If you
> make a fork, please replace `isaac-sim` with your username
> in the following instructions.

Clone the Isaac Lab repository into your project's workspace:

#### SSH

```bash
git clone git@github.com:isaac-sim/IsaacLab.git
```

#### HTTPS

```bash
git clone https://github.com/isaac-sim/IsaacLab.git
```

We provide a helper executable [isaaclab.sh](https://github.com/isaac-sim/IsaacLab/blob/main/isaaclab.sh)
and [isaaclab.bat](https://github.com/isaac-sim/IsaacLab/blob/main/isaaclab.bat) for Linux and Windows
respectively that provides utilities to manage extensions.

#### Linux

```text
./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'.
```

#### Windows

```text
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'.
```

### Creating the Isaac Sim Symbolic Link

Set up a symbolic link between the installed Isaac Sim root folder
and `_isaac_sim` in the Isaac Lab directory. This makes it convenient
to index the python modules and look for extensions shipped with Isaac Sim.

#### Linux

```bash
# enter the cloned repository
cd IsaacLab
# create a symbolic link
ln -s ${ISAACSIM_PATH} _isaac_sim

# For example:
# Option 1: If pre-built binaries were installed:
# ln -s ${HOME}/isaacsim _isaac_sim
#
# Option 2: If Isaac Sim was built from source:
# ln -s ${HOME}/IsaacSim/_build/linux-x86_64/release _isaac_sim
```

#### Windows

```batch
:: enter the cloned repository
cd IsaacLab
:: create a symbolic link - requires launching Command Prompt with Administrator access
mklink /D _isaac_sim %ISAACSIM_PATH%

:: For example:
:: Option 1: If pre-built binaries were installed:
:: mklink /D _isaac_sim C:\isaacsim
::
:: Option 2: If Isaac Sim was built from source:
:: mklink /D _isaac_sim C:\IsaacSim\_build\windows-x86_64\release
```

### Setting up a Python Environment (optional)

> **Warning**
>
> This step is optional. If you are using the bundled Python with Isaac Sim, you can skip this step.

Creating a dedicated Python environment for Isaac Lab is **strongly recommended**, even though
it is optional. Using a virtual environment 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.

You can choose different package managers to create a virtual environment.

* **UV**: A modern, fast, and secure package manager for Python.
* **Conda**: A cross-platform, language-agnostic package manager for Python.

Once created, you can use the default Python in the virtual environment (*python* or *python3*)
instead of *./isaaclab.sh -p* or *isaaclab.bat -p*.

> **Warning**
>
> The Python version of the virtual environment must match the Python version of Isaac Sim.
>
> * For Isaac Sim 5.X, the required Python version is 3.11.
> * For Isaac Sim 4.X, the required Python version is 3.10.
>
> Using a different Python version will result in errors when running Isaac Lab.

#### UV Environment

To install `uv`, please follow the instructions [here](https://docs.astral.sh/uv/getting-started/installation/).
You can create the Isaac Lab environment using the following commands:

#### \`fa-brands fa-linux\` Linux

```bash
# Option 1: Default environment name 'env_isaaclab'
./isaaclab.sh --uv  # or "./isaaclab.sh -u"
# Option 2: Custom name
./isaaclab.sh --uv my_env  # or "./isaaclab.sh -u my_env"
```

```bash
# Activate environment
source ./env_isaaclab/bin/activate  # or "source ./my_env/bin/activate"
```

#### \`fa-brands fa-windows\` Windows

> **Warning**
>
> Windows support for UV is currently unavailable. Please check
> [issue #3483](https://github.com/isaac-sim/IsaacLab/issues/3438) to track progress.

#### Conda Environment

To install conda, please follow the instructions [here](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html).
You can create the Isaac Lab environment using the following commands.

We recommend using [Miniconda](https://www.anaconda.com/docs/getting-started/miniconda/main/),
since it is light-weight and resource-efficient environment management system.

#### \`fa-brands fa-linux\` Linux

```bash
# Option 1: Default environment name 'env_isaaclab'
./isaaclab.sh --conda  # or "./isaaclab.sh -c"
# Option 2: Custom name
./isaaclab.sh --conda my_env  # or "./isaaclab.sh -c my_env"
```

```bash
# Activate environment
conda activate env_isaaclab  # or "conda activate my_env"
```

#### \`fa-brands fa-windows\` Windows

```batch
:: Option 1: Default environment name 'env_isaaclab'
isaaclab.bat --conda  :: or "isaaclab.bat -c"
:: Option 2: Custom name
isaaclab.bat --conda my_env  :: or "isaaclab.bat -c my_env"
```

```batch
:: Activate environment
conda activate env_isaaclab  # or "conda activate my_env"
```

Once you are in the virtual environment, you do not need to use `./isaaclab.sh -p` or
`isaaclab.bat -p` to run python scripts. You can use the default python executable in your
environment by running `python` or `python3`. However, for the rest of the documentation,
we will assume that you are using `./isaaclab.sh -p` or `isaaclab.bat -p` to run python scripts.

### Installation

* Install dependencies using `apt` (on Linux only):

```bash
# these dependency are needed by robomimic which is not available on Windows
sudo apt install cmake build-essential
```

* Run the install command that iterates over all the extensions in `source` directory and installs them
  using pip (with `--editable` flag):

#### Linux

```bash
./isaaclab.sh --install # or "./isaaclab.sh -i"
```

#### Windows

```batch
isaaclab.bat --install :: or "isaaclab.bat -i"
```

By default, the above will install **all** the learning frameworks. These include
`rl_games`, `rsl_rl`, `sb3`, `skrl`, `robomimic`.

If you want to install only a specific framework, you can pass the name of the framework
as an argument. For example, to install only the `rl_games` framework, you can run:

#### Linux

```bash
./isaaclab.sh --install rl_games  # or "./isaaclab.sh -i rl_games"
```

#### Windows

```batch
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.

### Verifying the Isaac Lab installation

To verify that the installation was successful, run the following command from the
top of the repository:

#### Linux

```bash
# Option 1: Using the isaaclab.sh executable
# note: this works for both the bundled python and the virtual environment
./isaaclab.sh -p scripts/tutorials/00_sim/create_empty.py

# Option 2: Using python in your virtual environment
python scripts/tutorials/00_sim/create_empty.py
```

#### Windows

```batch
:: Option 1: Using the isaaclab.bat executable
:: note: this works for both the bundled python and the virtual environment
isaaclab.bat -p scripts\tutorials\00_sim\create_empty.py

:: Option 2: Using python in your virtual environment
python scripts\tutorials\00_sim\create_empty.py
```

The above command should launch the simulator and display a window with a black
viewport. You can exit the script by pressing `Ctrl+C` on your terminal.
On Windows machines, please terminate the process from Command Prompt using
`Ctrl+Break` or `Ctrl+fn+B`.

![Simulator with a black window.](/isaaclab/_fern-img/2e12a8a1ea3e35bc0687b3f73a80a0960b7366b89dfd908cbbfc648c571fe262.webp)

If you see this, then the installation was successful! |:tada:|

> **Note**
>
> If you see an error `ModuleNotFoundError: No module named 'isaacsim'`, please ensure that the virtual
> environment is activated and `source _isaac_sim/setup_conda_env.sh` has been executed (for uv as well).

### Train a robot!

You can now use Isaac Lab to train a robot through Reinforcement Learning! The quickest way to use Isaac Lab is through the predefined workflows using one of our **Batteries-included** robot tasks. Execute the following command to quickly train an ant to walk!
We recommend adding `--headless` for faster training.

#### Linux

```bash
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Ant-v0 --headless
```

#### Windows

```batch
isaaclab.bat -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Ant-v0 --headless
```

... Or a robot dog!

#### Linux

```bash
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Velocity-Rough-Anymal-C-v0 --headless
```

#### Windows

```batch
isaaclab.bat -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Velocity-Rough-Anymal-C-v0 --headless
```

Isaac Lab provides the tools you'll need to create your own **Tasks** and **Workflows** for whatever your project needs may be.
Take a look at our [How-to Guides](/source/how-to/index) guides like [Adding your own learning Library](/source/how-to/add_own_library) or [Wrapping Environments](/source/how-to/wrap_rl_env) for details.

![Idle hands...](/isaaclab/_fern-img/b7afecb338be7cbc4dcc6d60ba59211b69334f7890207ebadb815fd97a547cd1.webp)