Build Your Own Isaac Lab External Project (Template Generator)
Build Your Own Isaac Lab External Project (Template Generator)

Build Your Own Isaac Lab External Project (Template Generator)

✨ Join as a member on Patreon to get more tutorials, resources and also access to my private Discord — where I’ll be also hosting live teaching sessions weekly. Patreon Get more from LycheeAI on PatreonPatreon Get more from LycheeAI on Patreon

✅ Prerequisites

📚 Overview

This guide walks through the Isaac Lab --new template generator, showing how to create modular, shareable environments in a clean and reproducible way. It captures every step, question, and important clarification for creating external or internal projects in Isaac Lab using the built-in CLI wizard.

✨ Why Use the Template Generator?

Traditionally, the workflow was to fork the Isaac Lab repository and build your custom environments directly within it. This internal method meant that anyone wanting to use or test your environment had to clone and manually install your entire forked repo — including all your changes, dependencies, and potential conflicts.

This approach made sharing, collaboration, and upgrades difficult.

Building with the Isaac Lab template generator lets you:

  • 🔗 Keep your work modular – No need to hack or modify the Isaac Lab source repo.
  • 🔄 Upgrade easily – External projects won’t break when Isaac Lab updates.
  • 📁 Organize projects clearly – Use a clean folder structure that suits your needs.
  • 📄 Version control – Each external project is Git-ready and can be shared or open-sourced.
  • 📢 Collaboration-friendly – Perfect for study labs, tutorials, or team projects.
  • Omniverse integration – Easily install and run your environments as proper Omniverse extensions.

🔧 What You'll Learn

  • How to generate a new Isaac Lab project or task
  • Differences between external and internal projects
  • How to install, register, and run your environments
  • How to handle folder structure, versions, and extensions

One example of an already made external project is the Leatherback - Community ProjectLeatherback - Community Project , which is already covered here on the LycheeAI Hub platform Isaac Lab ProjectsIsaac Lab Projects .

However, to explain the template in more detail, we’ll demonstrate it using the creation of a new project that I’m working on: the SO-100 robot manipulation project.

Embed GitHubEmbed GitHub

We won’t go into the project details here, as it serves as a practical example of generating a clean template. In that project, I’ll eventually import a URDF, adjust it in Isaac Sim, and train a robot in Isaac Lab to pick up a cube, record visual data, and fine-tune NVIDIA’s GR00T N1 foundation model. Stay tuned for that!

✅ Step-by-Step Tutorial

Step 1: Install Isaac Lab

Ensure you have Isaac Lab installed (preferably using Conda). Installation Guide: Isaac Sim & Isaac LabInstallation Guide: Isaac Sim & Isaac Lab

Step 2: Launch the Template Wizard

Navigate to the root of the Isaac Lab repo and run:

Linux

./isaaclab.sh --new

Windows

isaaclab.bat --new

Step 3: Choose Project Options in the Wizard

You'll be prompted to:

Step 4: Generated Structure

The template creates a project folder with only the relevant folders and files, including the project setup scripts, .git structure, and necessary configuration files.

This includes:

  • The workflow definition and task configuration files
  • Gym registry and environment registration setup
  • Model configuration with training hyperparameters
🔄 Note: If your robot uses custom USD files (not available from NVIDIA's Nucleus server), you'll need to import those manually into your project. 🛑 Important: Custom USD files are usually ignored by default. To include them, remove the line **/*.usd from your .gitignore. Otherwise you won’t share those on your public repository. ⚠️ You may see nested folders with repeated names. This is intentional to match Isaac Lab's internal structure. You can refactor it, but update your gym.register() entry point accordingly.

Step 5: Install the Project

Navigate to the root directory of the generated project and run:

python -m pip install -e source/your_project_name

This installs it in editable mode.

Step 6: List Available Environments

Use the following to view registered tasks:

python scripts/list_envs.py
🔹 Note: The default script filters by prefix (Template-). If your task name doesn't start with that, modify the filter logic in the script.

Step 7: Train or Test the Environment

Start training with the backend script:

python scripts/skrl/train.py --task=Template-YourTaskName

Run dummy agents:

python scripts/zero_agent.py --task=Template-YourTaskName
python scripts/random_agent.py --task=Template-YourTaskName

🔄 Version Management Best Practices

Concern: "What if Isaac Lab updates and breaks my project?"

  • You can add release branches/tags for version control. Check the Tags on their Github [Link].
  • git checkout tags/vX.X.X
  • Run the template from the same version to maintain compatibility.

Happy Developing!

I'm always looking for people to share their knowledge and contribute to this platform. Feel free to reach out: contact@lycheeai-hub.com.