How to Install Isaac Lab on Ubuntu 22.04

NVIDIA Isaac Lab is the de-facto open-source RL/imitation-learning framework for robot simulation in 2026. This tutorial walks through a clean install on Ubuntu 22.04 with Isaac Sim 4.x, a dedicated conda environment, and a first training run to verify the stack works end to end.

Simulation Total time: about 45 minutes Difficulty: Intermediate Updated April 2026

What you will accomplish

By the end of this tutorial you will have a working Isaac Lab install, a reproducible conda environment, and a verified end-to-end RL training run on a manipulator task. That is the foundation for everything downstream: policy training, domain randomization, sim-to-real transfer, and RL environment evaluation.

Isaac Lab (previously Orbit / Isaac Gym Envs) is maintained by NVIDIA at github.com/isaac-sim/IsaacLab. It sits on top of Isaac Sim and exposes a clean Python API for task definition, RL training with RL-Games / RSL-RL / Stable-Baselines3, and domain randomization. For policy research it has largely replaced the original Isaac Gym.

Prerequisites

Why a conda env? Isaac Sim ships its own Python and a lot of native libraries. Installing Isaac Lab into your system Python or your main project venv is a recipe for dependency resolution nightmares. Keep it isolated.

The steps

  1. Verify system prerequisites

    Before anything else, confirm your Ubuntu version, GPU driver, and disk space. Run:

    lsb_release -a
    nvidia-smi
    df -h /

    You are looking for Ubuntu 22.04, a driver version of 535 or later, and at least 50 GB free on the partition that will hold Isaac Sim. If nvidia-smi does not produce a table, install or update the driver before continuing.

  2. Install Miniconda

    If you do not already have conda, grab Miniconda:

    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    bash Miniconda3-latest-Linux-x86_64.sh
    # Accept the license, accept the default install path, answer "yes" to conda init
    source ~/.bashrc

    Verify with conda --version. We will let Isaac Lab create its own env in a later step — do not manually create one yet.

  3. Install Isaac Sim 4.x

    Isaac Lab requires Isaac Sim 4.x. There are two supported paths:

    Option A — pip package (recommended for headless workstations): Isaac Sim is now distributed as a pip package for Isaac Sim 4.x. The Isaac Lab install script can pull it automatically. If you go with this path, skip to step 4 and the install script will handle it.

    Option B — Omniverse Launcher (recommended if you want the GUI): Download the Omniverse Launcher from developer.nvidia.com/isaac-sim, sign in, install Isaac Sim 4.x, and note the install path (typically ~/.local/share/ov/pkg/isaac-sim-4.x.x).

    Exact upstream versions move quickly — check the Isaac Lab docs for the currently supported Isaac Sim version.

  4. Clone the IsaacLab repository

    Clone the official repo:

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

    If you want a specific release, check out the tag that matches your Isaac Sim version (for example git checkout v1.x.x). For new installs, main is generally fine.

  5. Create the conda environment

    From the repo root, use the provided helper script to create a dedicated conda env:

    ./isaaclab.sh --conda isaaclab
    conda activate isaaclab

    This creates an env named isaaclab with the right Python version and activates it. If you chose Option A (pip Isaac Sim), the env will pull the Isaac Sim pip package automatically on the next step.

  6. Install Isaac Lab extensions

    Run the install target:

    ./isaaclab.sh -i

    This installs all Isaac Lab extensions in editable mode, plus the RL library stack (RL-Games, RSL-RL, SKRL, Stable-Baselines3). The first run downloads a few GB of assets and takes 5 to 15 minutes depending on your network.

    Troubleshooting: If you see ModuleNotFoundError: omni, your Isaac Sim path is not being picked up. Set ISAACSIM_PATH to your Isaac Sim install directory and re-run.
  7. Verify the install

    Launch Isaac Sim through the Isaac Lab wrapper to confirm the graphics stack works:

    ./isaaclab.sh -p source/standalone/tutorials/00_sim/create_empty.py

    A window should open with an empty scene. Close it with Ctrl+C in the terminal. On headless servers, pass --headless to skip the window.

  8. Run a first RL training

    Train a quick manipulator RL task to verify the full stack works end to end:

    ./isaaclab.sh -p source/standalone/workflows/rsl_rl/train.py \
      --task Isaac-Reach-Franka-v0 \
      --num_envs 1024 \
      --headless

    This launches 1024 parallel Franka reach environments and trains a PPO policy with RSL-RL. On an RTX 4090 you should see a reward curve within a minute or two. If this runs without error, your Isaac Lab install is fully functional.

What to do next

With Isaac Lab running, the typical next steps are: (1) try additional built-in tasks (cabinet, in-hand cube, humanoid locomotion), (2) define your own task by subclassing the base task env, and (3) connect the trained policy to VLA model evaluation or to a real robot via sim-to-real transfer. Pair this tutorial with our LeRobot recording tutorial to build a hybrid sim + real dataset.

If you are working on a humanoid, Isaac Lab ships locomotion and whole-body tasks out of the box — great starting point if you own a Booster K1 or a Unitree G1. See our Unitree G1 camera calibration tutorial for the real-robot side of that pipeline.

Common failure modes

GLIBC errors at launch: almost always an Ubuntu version mismatch. Verify 22.04.

Out of GPU memory: lower --num_envs. 256 works on an 8 GB GPU.

Slow asset download: NVIDIA asset CDN is regional — if you are on a constrained network, mirror the assets once and point OMNI_KIT_ASSETS_HOSTS at a local cache.

Mixed Python envs: always launch scripts via ./isaaclab.sh -p, never python directly.

Deep dive: Isaac Lab vs alternatives

Isaac Lab is not the only GPU-accelerated RL simulator in 2026 — it is just the most widely adopted. Compared to MuJoCo MJX, Isaac Lab offers better out-of-the-box photorealistic rendering through Omniverse RTX, which matters when you are pretraining visual policies that will transfer to real hardware. MuJoCo MJX has the edge on raw simulation throughput for pure state-based RL: if your policy only consumes joint states and endpoint goals, MJX will often train in half the wall-clock time. Genesis, the newer Python-first simulator from CMU, is catching up fast on rendering fidelity and offers a cleaner Pythonic API, but lacks the mature asset ecosystem and the validated robot models Isaac Lab inherits from Isaac Sim.

For robot learning teams, the practical decision tree is: starting from scratch on vision-based manipulation, pick Isaac Lab for the ecosystem. Running pure state-based locomotion research on a single GPU, MJX is probably faster per dollar. Want a fully open-source stack with no NVIDIA dependencies, look at Genesis or plain MuJoCo. Our RL environments catalog maintains an up-to-date comparison across these simulators.

Deep dive: the conda env matters

People underestimate the conda env step. Isaac Sim bundles its own Python (typically 3.10) along with a hundred native libraries covering USD, physics, ray tracing, and more. Mixing that into an existing project env causes cryptic segfaults where the symptom is "imports work but the simulator crashes on first tick." The ./isaaclab.sh --conda workflow exists precisely to avoid this. If you must bring Isaac Lab into an existing env (say, because you want to share PyTorch with another project), copy the env yaml from IsaacLab/.vscode and layer your additional deps on top — do not try to layer Isaac Lab onto your project env.

Deep dive: headless vs GUI

Once you are past verification, you will run almost everything headless. GUI mode is for authoring and debugging; training a policy with a render window open wastes about 15-20% of GPU time on pixel pushing. Use --headless for training, and attach a viewer only when you need to inspect a specific episode. Isaac Sim supports a separate live viewport that connects to a headless training run via WebRTC — worth setting up once if you are running training on a remote server.

Frequently asked questions

Does Isaac Lab run on AMD GPUs? No. Isaac Sim depends on NVIDIA's RTX stack and CUDA. MuJoCo MJX or Genesis are your options on AMD or Apple Silicon.

Can I run Isaac Lab in Docker? Yes. NVIDIA publishes an Isaac Sim Docker image on NGC. For Isaac Lab on top of it, the IsaacLab repo ships a Dockerfile. Cloud training on RunPod, Lambda, or A100/H100 instances works well.

What about Windows / WSL? Isaac Sim has native Windows support and works in WSL2 with GPU passthrough. Ubuntu native is still the smoother path.

How big a cluster do I need? A single RTX 4090 trains many manipulation tasks in under an hour. Locomotion tasks and large-action-space humanoid tasks benefit from multi-GPU setups.

Related tutorials and resources