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.
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
- Ubuntu 22.04 with the HWE kernel. Ubuntu 20.04 works but is no longer the primary target.
- NVIDIA RTX GPU with at least 8 GB VRAM. 12 GB+ is strongly recommended for parallelized RL training.
- NVIDIA driver 535 or newer. Verify with
nvidia-smi. - 50 GB free disk space. Isaac Sim plus a few task caches is heavy.
- Miniconda or Anaconda. We will create an isolated env.
- Basic familiarity with Python, the command line, and git.
The steps
-
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-smidoes not produce a table, install or update the driver before continuing. -
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 ~/.bashrcVerify with
conda --version. We will let Isaac Lab create its own env in a later step — do not manually create one yet. -
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.
-
Clone the IsaacLab repository
Clone the official repo:
git clone https://github.com/isaac-sim/IsaacLab.git cd IsaacLabIf 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,mainis generally fine. -
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 isaaclabThis creates an env named
isaaclabwith 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. -
Install Isaac Lab extensions
Run the install target:
./isaaclab.sh -iThis 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 seeModuleNotFoundError: omni, your Isaac Sim path is not being picked up. SetISAACSIM_PATHto your Isaac Sim install directory and re-run. -
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.pyA window should open with an empty scene. Close it with Ctrl+C in the terminal. On headless servers, pass
--headlessto skip the window. -
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 \ --headlessThis 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.