Installation#

This page describes how to install Isaac Lab Arena, either natively with uv or from source inside a Docker container.

Supported workflows by installation method#

Installation method

Evaluation

Imitation learning

Reinforcement learning

Agentic environment generation

Docker

uv (Isaac Lab from source)

uv (Isaac Lab from wheel)

Supported Systems#

Isaac Lab Arena runs on Isaac Sim 6.0.0 and Isaac Lab 3.0.0. The dependencies are installed automatically by either workflow below. Hardware requirements for Isaac Lab Arena are shared with Isaac Sim, and are detailed in Isaac Sim Requirements.

Native uv developer setup#

Isaac Lab Arena can be installed natively with uv; the committed lockfile pins the complete environment. Two flavors are available, differing only in where Isaac Lab comes from:

  • Source flavor (recommended): Isaac Lab is installed editable from the submodules/IsaacLab checkout.

  • Wheel flavor: Isaac Lab is installed from the published wheel, which does not include Isaac Lab’s RL/IL scripts.

Both flavors follow the same workflow — clone, sync, activate, run; only the uv sync line differs.

Clone the repository:

git clone --branch main --recurse-submodules git@github.com:isaac-sim/IsaacLab-Arena.git
cd IsaacLab-Arena

Sync the environment and activate it, picking the flavor that matches your workflow:

uv sync --extra dev
source .venv/bin/activate
uv sync --no-default-groups --group isaaclab-from-wheel --extra dev
source .venv/bin/activate

Note

The wheel flavor does not support the imitation learning and reinforcement learning workflows: the published Isaac Lab wheel does not include the scripts they rely on. Use the source flavor for those workflows.

uv sync creates a Python virtual environment in .venv/ (pinned by .python-version), installs Isaac Lab Arena and Isaac Lab (editable from submodules/IsaacLab in the source flavor, or from the published wheel), and pulls the matching Isaac Sim, PyTorch, and Newton wheels at the versions pinned by the committed lockfile. The dev extra installs the Streamlit and SimReady search dependencies used by the agentic environment generation workflow.

Note

The two flavors are mutually exclusive within the single .venv: syncing one replaces the other. In the wheel flavor, run python/pytest in the activated environment rather than through uv run — a bare uv run re-syncs the environment back to the source flavor.

Note

Native uv installs do not include the optional isaaclab_arena_curobo package, so cuRobo-based reachability validation (the ik_reachable check) is not available. Use the Docker workflow with ./docker/run_docker.sh -c instead.

Accept the Isaac Sim EULA so the first launch is non-interactive:

export OMNI_KIT_ACCEPT_EULA=YES ACCEPT_EULA=Y

Launch a short zero-action rollout as a visual validation that things are running:

python isaaclab_arena/evaluation/policy_runner.py \
  --policy_type zero_action --num_steps 20 cube_goal_pose

Optionally, watch the rollout in the GUI visualizer by adding --viz kit (and a few more steps so there is time to see it):

python isaaclab_arena/evaluation/policy_runner.py \
  --viz kit --policy_type zero_action --num_steps 200 cube_goal_pose

With the source installation, optionally verify the installation by running the test phases:

pytest -sv -m "not with_cameras and not with_subprocess" isaaclab_arena/tests/
pytest -sv -m "with_cameras and not with_subprocess" isaaclab_arena/tests/
pytest -sv -m with_subprocess isaaclab_arena/tests/

The full test suite is not supported by the wheel flavor because it includes tests for Isaac Lab’s imitation-learning and reinforcement-learning interoperability. Use the zero-action rollout above to verify a wheel-based installation.

With isaaclab_arena installed you’re ready to build your first environment; see First Arena Environment.

Installation via Docker#

Isaac Lab Arena supports installation from source inside a Docker container. Future versions of Isaac Lab Arena, we will support a larger range of installation options.

  1. Clone the repository and initialize submodules:

git clone --branch main --recurse-submodules git@github.com:isaac-sim/IsaacLab-Arena.git
cd IsaacLab-Arena
  1. Launch the docker container:

./docker/run_docker.sh

The container will build (if needed) and drop you into an interactive shell.

For cuRobo-based reachability validation, launch with the -c flag instead (native uv installs do not support this check):

./docker/run_docker.sh -c

Note

The run docker script mounts the following directories from the host machine if they exist:

  • Datasets: $HOME/datasets/datasets

  • Models: $HOME/models/models

  • Evaluation: $HOME/eval/eval

When mounted a user avoids re-downloading datasets and models between container restarts, so our suggestion is to create these directories on the host machine before running the container. Note that the path of the mounted directories are configurable — see docker/run_docker.sh for the full list of arguments.

  1. Optionally verify installation by running tests:

pytest -sv -m "with_cameras and not with_subprocess" isaaclab_arena/tests/
pytest -sv -m "not with_cameras and not with_subprocess" isaaclab_arena/tests/
pytest -sv -m with_subprocess isaaclab_arena/tests/

With isaaclab_arena installed and the docker running, you’re ready to build your first IsaacLab-Arena Environment. See First Arena Environment to get started.