isaac-lab
The GPU-parallel RL/IL training layer of robium's NVIDIA stack, built on top
of an already-running Isaac Sim: prebuilt environments and tasks
(isaaclab_tasks), training entry points for several RL libraries, an
imitation-learning path for generating and training on simulated
demonstrations, and exporting a trained policy. Isaac Lab
(isaac-sim/IsaacLab, current release v3.0.0-beta2.patch1, published
2026-07-02 — verified via direct fetch of the GitHub releases API this
session) is NVIDIA's own framework layered on Isaac Sim, not a separate
product to install independently. Its main branch's own installation docs
state support for Isaac Sim 4.5/5.0/5.1 and recommend the latest 5.1.0
release specifically (verified via direct fetch of the installation docs
on 2026-07-10) — that may trail the newest Isaac Sim release the isaac-sim
skill cites, so confirm the current supported-version pairing before
installing rather than assuming the two always track together.
When to use this skill
- Running a prebuilt Isaac Lab task, training a policy with an RL library on
top of a working Isaac Sim install, generating/training on simulated
demonstrations, or exporting a trained policy for deployment.
- The trigger phrases in the description: 'isaac lab', 'GPU RL for robots',
'train in isaac', sim-to-real policy training in the NVIDIA stack.
- Cross-references — go to the sibling skill instead when the question is:
- Isaac Sim itself is not installed/working yet (GPU floor, container,
USD scene, robot/sensor import, ROS 2 bridge) →
isaac-sim. This skill
assumes Isaac Sim is already running; it only adds the training layer on
top.
- Imitation learning on datasets recorded from a real robot (the
LeRobotDataset format,
lerobot-train/lerobot-record) → lerobot.
This skill's own imitation-learning path (see Usage patterns) starts
from demonstrations recorded inside Isaac Sim, not real hardware —
that distinction is the actual boundary, not "imitation learning" as a
category.
- Whether to use the NVIDIA stack (Isaac Sim/Lab) at all vs. LeRobot's
own sim/eval tooling →
architect decides this, gated on the GPU
floor (see Platform gotchas).
- Which simulator to use in general, before Isaac Sim is chosen →
simulation.
- Deciding data-sourcing strategy (how much sim-generated vs. real
data a project needs) → the
data umbrella skill. This skill only
covers the mechanics of Isaac Lab's own demonstration-generation and
training tools, not the sourcing decision.
Key directives
- Delegation posture: embed + links. The install-on-top-of-Isaac-Sim
sequence, task-ID convention, and the RL/IL/export commands below are
embedded because no single upstream page walks a new robium project
through all three together — but every command is sourced from
isaac-sim.github.io/IsaacLab's own docs or the isaac-sim/IsaacLab
GitHub repo, fetched directly on 2026-07-10, rather than retyped from an
older Isaac Lab release's memory. See References.
- On a cloud GPU, prefer the prebuilt Isaac Lab image over a source
install.
nvcr.io/nvidia/isaac-lab (latest tag observed
3.0.0-beta2-post1 on the NGC catalog 2026-07-26..28) bundles a matched
Isaac Sim + Isaac Lab in one container, which sidesteps the version-
pairing trap (below) and the multi-step source install. This is the
battle-tested path from the go2-locomotion app on RunPod; the pip+source
route in Quick start remains valid for a workstation you own. See
references/prebuilt-image-runpod.md for the provisioning specifics
(NGC auth, EULA env vars, the /workspace volume-shadow gotcha, and the
entrypoint override), and the environments skill's GPU-and-remote
reference for the general pod networking/SSH mechanics this builds on.
- The GPU/driver floor is
isaac-sim's, not restated here. Isaac Lab
runs inside Isaac Sim, so it inherits that skill's GPU requirement
verbatim — check the exact minimum/recommended GPU and VRAM numbers there,
don't re-derive or re-type them in this skill. Isaac Lab's own RL training
workloads (many parallel environments) also want more VRAM headroom than a
bare Isaac Sim scene; treat isaac-sim's stated floor as a minimum, not a
comfortable working point for large --num_envs runs.
- Start from a prebuilt task before writing a custom environment. List
and run an existing task first (see Quick start) to confirm the install
works end to end with zero environment-authoring risk, the same
"validate the pipeline before customizing" posture
lerobot takes with a
pretrained policy.
- Never write task IDs, script paths, or CLI flags from memory. Isaac
Lab's task registry and script layout change across releases (the top-level
scripts directory was itself reorganized into
reinforcement_learning and
imitation_learning subdirectories) — list the currently-registered
tasks instead of assuming a task name from a prior release still exists,
and re-verify script paths against isaac-sim/IsaacLab's main branch
before repeating one in a real project.
Quick start
Source: isaac-sim.github.io/IsaacLab's installation and quickstart docs,
and the isaac-sim/IsaacLab GitHub repo's scripts directory tree, fetched
directly on 2026-07-10.
1. Confirm the GPU floor — see the isaac-sim skill; do not proceed
until the target machine meets it.
2a. Cloud GPU (preferred): pull the prebuilt Isaac Lab image.
nvcr.io/nvidia/isaac-lab bundles a matched Isaac Sim + Isaac Lab, so there
is no separate Isaac Sim install and no version-pairing to reconcile. See
references/prebuilt-image-runpod.md for the RunPod provisioning specifics
(NGC auth, EULA env vars, the /workspace volume-shadow gotcha, the
entrypoint override, and the observed image tag/driver/Python versions).
2b. Workstation you own (alternative): install Isaac Sim via pip, then
Isaac Lab from source on top of it (per-release version pins matter —
verify the current recommended Isaac Sim version against the installation
docs before pinning it):
pip install "isaacsim[all,extscache]==5.1.0" --extra-index-url https://pypi.nvidia.com
git clone https://github.com/isaac-sim/IsaacLab.git --branch main
cd IsaacLab
./isaaclab.sh --install
3. List the registered tasks:
python scripts/environments/list_envs.py
4. Train on a prebuilt task with one of the shipped RL libraries
(rsl_rl, skrl, rl_games, sb3):
python scripts/reinforcement_learning/skrl/train.py --task=Isaac-Ant-v0 --headless
5. Watch progress and evaluate/export — see Usage patterns.
Usage patterns
Run a prebuilt task. Task IDs follow Isaac-<Name>-v0 (manager-based
workflow) or Isaac-<Name>-Direct-v0 (direct workflow) — list_envs.py
(Quick start) prints the full current table with entry points, rather than
guessing a name from a tutorial. --num_envs=<n> sets how many parallel
environments run (the GPU-parallel core of Isaac Lab's speed advantage);
drop --headless only for local interactive debugging on a machine with a
display, since it costs render throughput.
Train + monitor. Each RL library ships its own train.py under its own
subdirectory of the reinforcement-learning scripts tree, with a matching
play.py for evaluation and checkpoint loading:
python scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Cartpole-v0 --headless --num_envs=4096
Runs log to a timestamped directory under logs/<library>/<task>/; RSL-RL's
own agent config exposes a logger field (tensorboard by default, or
wandb/neptune — confirmed via direct fetch of isaaclab_rl's RL-library
config on 2026-07-10) — point tensorboard --logdir logs/rsl_rl at the run
directory to watch reward/loss curves live. --max_iterations overrides the
task's default training length for a short smoke run before committing to a
full one, the same small-scale-first posture lerobot uses for fine-tunes.
Verified Go2 locomotion walkthrough. A battle-tested RSL-RL run on the
Unitree Go2 (task Isaac-Velocity-Flat-Unitree-Go2-v0, PPO) — smoke,
full-training profile, reward/cost config, custom-robot scaffolding, and
checkpoint portability — lives in references/go2-rl-workflow.md. One trap
worth stating up front: RSL-RL writes checkpoints under the experiment
name, logs/rsl_rl/unitree_go2_flat/<timestamp>/, not the task ID, so
a smoke test asserting on a task-ID-shaped path fails even when training
succeeded. Reward and cost also live in config, not code (a cost is a reward
term with a negative weight) — the reference names the exact files and the
3-layer weight-override chain.
Evaluate and export a trained policy. play.py (same per-library
directory as train.py) loads a checkpoint and runs it in the environment;
for RSL-RL specifically, it also exports the policy to both TorchScript
(JIT) and ONNX under the checkpoint's exported/ directory automatically —
confirmed by direct fetch of the RSL-RL play.py source on 2026-07-10, which
calls export_policy_to_jit/export_policy_to_onnx (or the older
export_policy_as_jit/export_policy_as_onnx helpers on RSL-RL < 4.0). This
exported artifact is the sim-to-real hand-off point — deploying it onto real
hardware is outside this skill's depth once exported.
Imitation learning from simulated demonstrations. A separate
imitation_learning/ script tree (isaaclab_mimic, robomimic, and a
record_demos.py/replay_demos.py pair under the tools scripts directory)
records teleoperated or scripted demonstrations inside Isaac Sim and trains a
policy on them — this is the sim-side imitation-learning path, distinct from
lerobot's real-robot-dataset training (see When to use this skill). Treat
this as a pointer, not a full walkthrough — verify the current CLI against
the imitation_learning/ and tools/ directories before running it.
Hand-off from LeRobot. lerobot-eval --env.type=isaaclab_arena loads
Isaac Lab Arena through LeRobot's EnvHub mechanism (lerobot.envs.make_env)
rather than this skill's own scripts — that's lerobot's territory calling
into an Isaac Lab environment, not the reverse; see the lerobot skill's
eval-and-sim reference for that specific invocation.
Platform gotchas
- GPU floor is
isaac-sim's — don't re-derive it. No macOS, RTX-class
NVIDIA GPU required; see that skill for the exact minimum/recommended
numbers and how they were verified.
- Isaac Sim/Isaac Lab version pairing is narrower than "whatever's
newest." Isaac Lab's
main branch supports a specific Isaac Sim version
window (4.5/5.0/5.1 as of 2026-07-10, recommending 5.1.0) rather than
every Isaac Sim release — installing the two independently without
checking this pairing is a common source of import-time failures. Re-check
the installation docs' compatibility statement before pinning versions in
a real project.
- Headless is the default for real training runs, same as
isaac-sim.
--headless avoids paying render cost for a GUI viewport during a
training run with thousands of parallel environments; reserve the
non-headless mode for short interactive checks on a machine with a
display, per isaac-sim's own headless-first guidance.
Customization
- Different task or robot:
list_envs.py (Quick start) is the source of
truth for what's currently registered — pick an existing task close to the
target robot/behavior before authoring a new one. When you do author one,
a custom robot/task is an external project, not a fork of Isaac Lab:
./isaaclab.sh --new scaffolds a standalone repo that pip-installs Isaac
Lab and gym.registers the task. The in-repo "internal task" path is only
for upstreaming and is auto-disabled whenever Isaac Lab is pip-installed
(i.e. inside the prebuilt NGC container), so external-project is the only
path there. See references/go2-rl-workflow.md; Isaac Lab's own tutorials
(linked in References) cover task authoring in depth this skill does not
duplicate.
- Different RL library: swap which library's subdirectory of the
reinforcement-learning scripts tree you invoke (
rsl_rl, skrl, rl_games,
sb3) — each wraps the same underlying Isaac Lab environment with that
library's own agent config and CLI flags, so a task that works under one
library isn't a guaranteed drop-in for another's config shape.
- No local GPU meeting the floor: don't try to run Isaac Lab without it
— route to
lerobot's own sim/eval tooling (per architect's
manipulation-vertical guidance) or provision a remote GPU host meeting
isaac-sim's floor first.
References
references/prebuilt-image-runpod.md — the prebuilt nvcr.io/nvidia/ isaac-lab image (observed tag 3.0.0-beta2-post1) and its RunPod
provisioning specifics: NGC auth, EULA env vars, the /workspace
volume-shadow gotcha, and the entrypoint override + stop→start. Points to
the environments skill for the general pod networking/SSH mechanics.
references/go2-rl-workflow.md — the verified Unitree Go2 RSL-RL run:
task IDs, smoke and full-training profile, the experiment-name log-path
trap, reward/cost-in-config layout and 3-layer override chain, the
external-project route for custom robots, and checkpoint/script
portability on a fresh pod.
- Upstream: Isaac Lab documentation
(installation, quickstart, and task/training concepts — primary source for
this skill, fetched directly on 2026-07-10), isaac-sim/IsaacLab GitHub
repo (the reinforcement-learning,
imitation-learning, tools, and environments scripts subdirectories, fetched
directly via the GitHub Contents API and raw file URLs this
session — source of the exact script paths, task-ID convention, and
export-format claims above). Sibling skills:
isaac-sim (GPU floor,
install, and the Isaac Sim instance this skill runs on top of), lerobot
(alternative manipulation ML path; owns real-robot-dataset imitation
learning and the isaaclab_arena EnvHub hand-off), data (data-sourcing
strategy, including how much this skill's own demo-generation tools should
contribute), simulation (simulator selection before Isaac Sim is
chosen), architect (routes here, GPU-gated, decides isaac-lab vs.
lerobot).
Changelog
- 1.1.1 (2026-08-01): anchor IDs added to claim-bearing items (learning-engine Phase 1); no content changes.
- 1.1.0 (2026-07-31): hardened from the go2-locomotion RunPod L4 run (2026-07-26..28) — added the prebuilt-image-runpod and go2-rl-workflow references, made the prebuilt
nvcr.io/nvidia/isaac-lab image the preferred cloud path, and surfaced the experiment-name log-path trap and external-project custom-robot route.
- 1.0.1 (2026-07-12): skill-refiner run 1 — provenance claims date-stamped ('this session' → 2026-07-10, the authoring session) so the staleness sweep can age them.
1---2name: isaac-lab-53description: NVIDIA Isaac Lab: reinforcement-learning and imitation-learning workflows on top of Isaac Sim — prebuilt environments and tasks, training runs, and exporting policies. Use when: 'isaac lab', 'GPU RL for robots', 'train in isaac', sim-to-real policy training in the NVIDIA stack. Load after isaac-sim basics are settled (same GPU requirements apply — RTX-class NVIDIA GPU, no macOS). Alternative ML path to lerobot; the architect skill decides between them. Not for: Isaac Sim setup itself (isaac-sim) or imitation learning on real-robot datasets (lerobot).4---56# isaac-lab78The GPU-parallel RL/IL training layer of robium's NVIDIA stack, built on top9of an already-running Isaac Sim: prebuilt environments and tasks10(`isaaclab_tasks`), training entry points for several RL libraries, an11imitation-learning path for generating and training on simulated12demonstrations, and exporting a trained policy. Isaac Lab13(`isaac-sim/IsaacLab`, current release **v3.0.0-beta2.patch1**, published142026-07-02 — verified via direct fetch of the GitHub releases API this15session) is NVIDIA's own framework layered on Isaac Sim, not a separate16product to install independently. Its main branch's own installation docs17state support for Isaac Sim 4.5/5.0/5.1 and recommend the latest 5.1.018release specifically (verified via direct fetch of the installation docs19on 2026-07-10) — that may trail the newest Isaac Sim release the `isaac-sim`20skill cites, so confirm the current supported-version pairing before21installing rather than assuming the two always track together.2223## When to use this skill2425- Running a prebuilt Isaac Lab task, training a policy with an RL library on26 top of a working Isaac Sim install, generating/training on simulated27 demonstrations, or exporting a trained policy for deployment.28- The trigger phrases in the description: 'isaac lab', 'GPU RL for robots',29 'train in isaac', sim-to-real policy training in the NVIDIA stack.30- Cross-references — go to the sibling skill instead when the question is:31 - **Isaac Sim itself is not installed/working yet** (GPU floor, container,32 USD scene, robot/sensor import, ROS 2 bridge) → `isaac-sim`. This skill33 assumes Isaac Sim is already running; it only adds the training layer on34 top.35 - **Imitation learning on datasets recorded from a real robot** (the36 LeRobotDataset format, `lerobot-train`/`lerobot-record`) → `lerobot`.37 This skill's own imitation-learning path (see Usage patterns) starts38 from demonstrations recorded *inside Isaac Sim*, not real hardware —39 that distinction is the actual boundary, not "imitation learning" as a40 category.41 - **Whether to use the NVIDIA stack (Isaac Sim/Lab) at all vs. LeRobot's42 own sim/eval tooling** → `architect` decides this, gated on the GPU43 floor (see Platform gotchas).44 - **Which simulator to use in general**, before Isaac Sim is chosen →45 `simulation`.46 - **Deciding data-sourcing strategy** (how much sim-generated vs. real47 data a project needs) → the `data` umbrella skill. This skill only48 covers the mechanics of Isaac Lab's own demonstration-generation and49 training tools, not the sourcing decision.5051## Key directives5253- **Delegation posture: embed + links.** The install-on-top-of-Isaac-Sim54 sequence, task-ID convention, and the RL/IL/export commands below are55 embedded because no single upstream page walks a new robium project56 through all three together — but every command is sourced from57 `isaac-sim.github.io/IsaacLab`'s own docs or the `isaac-sim/IsaacLab`58 GitHub repo, fetched directly on 2026-07-10, rather than retyped from an59 older Isaac Lab release's memory. See References.60- **On a cloud GPU, prefer the prebuilt Isaac Lab image over a source61 install.** <!-- id: prefer-prebuilt-image --> `nvcr.io/nvidia/isaac-lab` (latest tag observed62 3.0.0-beta2-post1 on the NGC catalog 2026-07-26..28) bundles a matched63 Isaac Sim + Isaac Lab in one container, which sidesteps the version-64 pairing trap (below) and the multi-step source install. This is the65 battle-tested path from the go2-locomotion app on RunPod; the pip+source66 route in Quick start remains valid for a workstation you own. See67 `references/prebuilt-image-runpod.md` for the provisioning specifics68 (NGC auth, EULA env vars, the `/workspace` volume-shadow gotcha, and the69 entrypoint override), and the `environments` skill's GPU-and-remote70 reference for the general pod networking/SSH mechanics this builds on.71- **The GPU/driver floor is `isaac-sim`'s, not restated here.** <!-- id: gpu-floor-inherited-from-isaac-sim --> Isaac Lab72 runs inside Isaac Sim, so it inherits that skill's GPU requirement73 verbatim — check the exact minimum/recommended GPU and VRAM numbers there,74 don't re-derive or re-type them in this skill. Isaac Lab's own RL training75 workloads (many parallel environments) also want more VRAM headroom than a76 bare Isaac Sim scene; treat `isaac-sim`'s stated floor as a minimum, not a77 comfortable working point for large `--num_envs` runs.78- **Start from a prebuilt task before writing a custom environment.** <!-- id: start-from-prebuilt-task --> List79 and run an existing task first (see Quick start) to confirm the install80 works end to end with zero environment-authoring risk, the same81 "validate the pipeline before customizing" posture `lerobot` takes with a82 pretrained policy.83- **Never write task IDs, script paths, or CLI flags from memory.** <!-- id: no-task-id-facts-from-memory --> Isaac84 Lab's task registry and script layout change across releases (the top-level85 scripts directory was itself reorganized into `reinforcement_learning` and86 `imitation_learning` subdirectories) — list the currently-registered87 tasks instead of assuming a task name from a prior release still exists,88 and re-verify script paths against `isaac-sim/IsaacLab`'s `main` branch89 before repeating one in a real project.9091## Quick start9293Source: `isaac-sim.github.io/IsaacLab`'s installation and quickstart docs,94and the `isaac-sim/IsaacLab` GitHub repo's scripts directory tree, fetched95directly on 2026-07-10.9697**1. Confirm the GPU floor** <!-- id: confirm-gpu-floor --> — see the `isaac-sim` skill; do not proceed98until the target machine meets it.99100**2a. Cloud GPU (preferred): pull the prebuilt Isaac Lab image.** <!-- id: cloud-gpu-prebuilt-image-step -->101`nvcr.io/nvidia/isaac-lab` bundles a matched Isaac Sim + Isaac Lab, so there102is no separate Isaac Sim install and no version-pairing to reconcile. See103`references/prebuilt-image-runpod.md` for the RunPod provisioning specifics104(NGC auth, EULA env vars, the `/workspace` volume-shadow gotcha, the105entrypoint override, and the observed image tag/driver/Python versions).106107**2b. Workstation you own (alternative): install Isaac Sim via pip, then108Isaac Lab from source on top of it** <!-- id: workstation-pip-source-install --> (per-release version pins matter —109verify the current recommended Isaac Sim version against the installation110docs before pinning it):111112```bash113pip install "isaacsim[all,extscache]==5.1.0" --extra-index-url https://pypi.nvidia.com114git clone https://github.com/isaac-sim/IsaacLab.git --branch main115cd IsaacLab116./isaaclab.sh --install117```118119**3. List the registered tasks:** <!-- id: list-registered-tasks -->120121```bash122python scripts/environments/list_envs.py123```124125**4. Train on a prebuilt task** <!-- id: train-prebuilt-task-command --> with one of the shipped RL libraries126(`rsl_rl`, `skrl`, `rl_games`, `sb3`):127128```bash129python scripts/reinforcement_learning/skrl/train.py --task=Isaac-Ant-v0 --headless130```131132**5. Watch progress and evaluate/export** — see Usage patterns.133134## Usage patterns135136**Run a prebuilt task.** <!-- id: run-prebuilt-task-ids --> Task IDs follow `Isaac-<Name>-v0` (manager-based137workflow) or `Isaac-<Name>-Direct-v0` (direct workflow) — `list_envs.py`138(Quick start) prints the full current table with entry points, rather than139guessing a name from a tutorial. `--num_envs=<n>` sets how many parallel140environments run (the GPU-parallel core of Isaac Lab's speed advantage);141drop `--headless` only for local interactive debugging on a machine with a142display, since it costs render throughput.143144**Train + monitor.** <!-- id: train-monitor-tensorboard --> Each RL library ships its own `train.py` under its own145subdirectory of the reinforcement-learning scripts tree, with a matching146`play.py` for evaluation and checkpoint loading:147148```bash149python scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Cartpole-v0 --headless --num_envs=4096150```151152Runs log to a timestamped directory under `logs/<library>/<task>/`; RSL-RL's153own agent config exposes a `logger` field (`tensorboard` by default, or154`wandb`/`neptune` — confirmed via direct fetch of `isaaclab_rl`'s RL-library155config on 2026-07-10) — point `tensorboard --logdir logs/rsl_rl` at the run156directory to watch reward/loss curves live. `--max_iterations` overrides the157task's default training length for a short smoke run before committing to a158full one, the same small-scale-first posture `lerobot` uses for fine-tunes.159160**Verified Go2 locomotion walkthrough.** <!-- id: go2-checkpoint-path-trap --> A battle-tested RSL-RL run on the161Unitree Go2 (task `Isaac-Velocity-Flat-Unitree-Go2-v0`, PPO) — smoke,162full-training profile, reward/cost config, custom-robot scaffolding, and163checkpoint portability — lives in `references/go2-rl-workflow.md`. One trap164worth stating up front: RSL-RL writes checkpoints under the **experiment165name**, `logs/rsl_rl/unitree_go2_flat/<timestamp>/`, **not** the task ID, so166a smoke test asserting on a task-ID-shaped path fails even when training167succeeded. Reward and cost also live in config, not code (a cost is a reward168term with a negative weight) — the reference names the exact files and the1693-layer weight-override chain.170171**Evaluate and export a trained policy.** <!-- id: export-policy-jit-onnx --> `play.py` (same per-library172directory as `train.py`) loads a checkpoint and runs it in the environment;173for RSL-RL specifically, it also exports the policy to both TorchScript174(JIT) and ONNX under the checkpoint's `exported/` directory automatically —175confirmed by direct fetch of the RSL-RL `play.py` source on 2026-07-10, which176calls `export_policy_to_jit`/`export_policy_to_onnx` (or the older177`export_policy_as_jit`/`export_policy_as_onnx` helpers on RSL-RL < 4.0). This178exported artifact is the sim-to-real hand-off point — deploying it onto real179hardware is outside this skill's depth once exported.180181**Imitation learning from simulated demonstrations.** <!-- id: sim-imitation-learning-path --> A separate182`imitation_learning/` script tree (`isaaclab_mimic`, `robomimic`, and a183`record_demos.py`/`replay_demos.py` pair under the tools scripts directory)184records teleoperated or scripted demonstrations *inside Isaac Sim* and trains a185policy on them — this is the sim-side imitation-learning path, distinct from186`lerobot`'s real-robot-dataset training (see When to use this skill). Treat187this as a pointer, not a full walkthrough — verify the current CLI against188the `imitation_learning/` and `tools/` directories before running it.189190**Hand-off from LeRobot.** <!-- id: lerobot-isaaclab-arena-handoff --> `lerobot-eval --env.type=isaaclab_arena` loads191Isaac Lab Arena through LeRobot's EnvHub mechanism (`lerobot.envs.make_env`)192rather than this skill's own scripts — that's `lerobot`'s territory calling193into an Isaac Lab environment, not the reverse; see the `lerobot` skill's194eval-and-sim reference for that specific invocation.195196## Platform gotchas197198- **GPU floor is `isaac-sim`'s — don't re-derive it.** No macOS, RTX-class199 NVIDIA GPU required; see that skill for the exact minimum/recommended200 numbers and how they were verified.201- **Isaac Sim/Isaac Lab version pairing is narrower than "whatever's202 newest."** <!-- id: version-pairing-narrower --> Isaac Lab's `main` branch supports a specific Isaac Sim version203 window (4.5/5.0/5.1 as of 2026-07-10, recommending 5.1.0) rather than204 every Isaac Sim release — installing the two independently without205 checking this pairing is a common source of import-time failures. Re-check206 the installation docs' compatibility statement before pinning versions in207 a real project.208- **Headless is the default for real training runs, same as `isaac-sim`.** <!-- id: headless-default-training -->209 `--headless` avoids paying render cost for a GUI viewport during a210 training run with thousands of parallel environments; reserve the211 non-headless mode for short interactive checks on a machine with a212 display, per `isaac-sim`'s own headless-first guidance.213214## Customization215216- **Different task or robot:** `list_envs.py` (Quick start) is the source of217 truth for what's currently registered — pick an existing task close to the218 target robot/behavior before authoring a new one. When you do author one,219 a custom robot/task is an **external project, not a fork of Isaac Lab**:220 `./isaaclab.sh --new` scaffolds a standalone repo that pip-installs Isaac221 Lab and `gym.register`s the task. The in-repo "internal task" path is only222 for upstreaming and is auto-disabled whenever Isaac Lab is pip-installed223 (i.e. inside the prebuilt NGC container), so external-project is the only224 path there. See `references/go2-rl-workflow.md`; Isaac Lab's own tutorials225 (linked in References) cover task authoring in depth this skill does not226 duplicate.227- **Different RL library:** swap which library's subdirectory of the228 reinforcement-learning scripts tree you invoke (`rsl_rl`, `skrl`, `rl_games`,229 `sb3`) — each wraps the same underlying Isaac Lab environment with that230 library's own agent config and CLI flags, so a task that works under one231 library isn't a guaranteed drop-in for another's config shape.232- **No local GPU meeting the floor:** don't try to run Isaac Lab without it233 — route to `lerobot`'s own sim/eval tooling (per `architect`'s234 manipulation-vertical guidance) or provision a remote GPU host meeting235 `isaac-sim`'s floor first.236237## References238239- `references/prebuilt-image-runpod.md` — the prebuilt `nvcr.io/nvidia/240 isaac-lab` image (observed tag 3.0.0-beta2-post1) and its RunPod241 provisioning specifics: NGC auth, EULA env vars, the `/workspace`242 volume-shadow gotcha, and the entrypoint override + stop→start. Points to243 the `environments` skill for the general pod networking/SSH mechanics.244- `references/go2-rl-workflow.md` — the verified Unitree Go2 RSL-RL run:245 task IDs, smoke and full-training profile, the experiment-name log-path246 trap, reward/cost-in-config layout and 3-layer override chain, the247 external-project route for custom robots, and checkpoint/script248 portability on a fresh pod.249- Upstream: [Isaac Lab documentation](https://isaac-sim.github.io/IsaacLab/)250 (installation, quickstart, and task/training concepts — primary source for251 this skill, fetched directly on 2026-07-10), [isaac-sim/IsaacLab GitHub252 repo](https://github.com/isaac-sim/IsaacLab) (the reinforcement-learning,253 imitation-learning, tools, and environments scripts subdirectories, fetched254 directly via the GitHub Contents API and raw file URLs this255 session — source of the exact script paths, task-ID convention, and256 export-format claims above). Sibling skills: `isaac-sim` (GPU floor,257 install, and the Isaac Sim instance this skill runs on top of), `lerobot`258 (alternative manipulation ML path; owns real-robot-dataset imitation259 learning and the `isaaclab_arena` EnvHub hand-off), `data` (data-sourcing260 strategy, including how much this skill's own demo-generation tools should261 contribute), `simulation` (simulator selection before Isaac Sim is262 chosen), `architect` (routes here, GPU-gated, decides `isaac-lab` vs.263 `lerobot`).264265## Changelog266267<!-- One dated line per battle-tested change, added by skill-author hardening sessions. -->268269- 1.1.1 (2026-08-01): anchor IDs added to claim-bearing items (learning-engine Phase 1); no content changes.270- 1.1.0 (2026-07-31): hardened from the go2-locomotion RunPod L4 run (2026-07-26..28) — added the prebuilt-image-runpod and go2-rl-workflow references, made the prebuilt `nvcr.io/nvidia/isaac-lab` image the preferred cloud path, and surfaced the experiment-name log-path trap and external-project custom-robot route.271- 1.0.1 (2026-07-12): skill-refiner run 1 — provenance claims date-stamped ('this session' → 2026-07-10, the authoring session) so the staleness sweep can age them.