Isaac Launchable offers a simplified approach to installing and using Isaac Lab and Isaac Sim.
Through this project, users can interact with Isaac Sim and Isaac Lab purely from a web browser, with one tab running Visual Studio Code for development and command execution, and another tab providing the streamed user interface for Isaac Sim.
Launchables are provided by NVIDIA Brev, using this repo as a template. Launchables are preconfigured, fully optimized compute and software environments. They allow users to start projects without extensive setup or configuration.
Isaac Lab is built upon Isaac Sim, the NVIDIA simulation framework for robotics. Isaac Sim can both be launched alone, or from the context of Isaac Lab to enable robot learning.
The installation steps for Isaac Lab are automated via Docker, such that it can be used locally, or be deployed on services such as NVIDIA Brev and run with cloud resources.
The project includes:
- a Visual Studio Code container
- Isaac Lab pre-installed
- Isaac Sim pre-installed
- an Omniverse Kit App Streaming client, based on the web-viewer-sample project.
This guide will get you started with a Visual Studio Code instance with Isaac Lab preinstalled, and an in-browser user interface provided by Kit App Streaming.
Note
Please note that Brev instances are pay-by-the hour. To make the best use of credits, stop instances when they are not in use. Stopped instances have a smaller storage charge.
- Click this Deploy Now button
- Click the Deploy Launchable button to spin up the instance.
- Wait for the instance to be fully ready on Brev: running, built, and the setup script has completed (first launch can take a while)
- On the Brev instance page, scroll to the TCP/UDP ports section.
- Click the link for port 80 (HTTP) to open Visual Studio Code Server.
- The default password is
password
. This can be modified. - Inside Visual Studio Code, continue with the README.md instructions. A summary is provided below.
- Now you're in the Visual Studio Code dev environment!
In short, the commands to run Isaac Lab and Isaac Sim are similar to workstation installs, except when you need the UI. Then we add a few arguments for streaming to the normal commands.
The top-level README.md file in the dev environment contains a shortened version of the instructions below.
- Run the following command:
./isaaclab/_isaac_sim/isaac-sim.sh --no-window --enable omni.kit.livestream.webrtc
Note how this is similar to the workstation command for launching Isaac Sim, but uses additional arguments for streaming.
- Wait for application to be ready. Look for the
app ready
message in the console. - Open a new browser tab to view the UI.
- In this tab, paste the same address as the Visual Studio Code server, changing the end of the URL to:
/viewer
- Example: if VSCode is at
ec2.something.amazonaws.com
, then the Isaac Sim UI can be accessed atec2.something.amazonaws.com/viewer
- After a few seconds you should see the UI in the viewer tab. The first launch may take much longer as shaders are cached.
- On subsequent relaunches, simply refresh this tab to see the UI.
To run an Isaac Lab command, first consider if it requires the UI. If it doesn't, such as during policy training, simply run the command as normal.
If you need to see the Isaac Sim UI, just append these additional arguments to the Isaac Lab command: --kit_args="--no-window --enable omni.kit.livestream.webrtc"
.
Let's try out the Ant walking task as a demo. We chose this task because it trains quickly.
- Run this command to begin headless training without a viewport:
python isaaclab/scripts/reinforcement_learning/skrl/train.py --task=Isaac-Ant-v0 --headless
This is essentially the same command you would run for a workstation install of Isaac Lab.
- Once the training script is complete, test the policy behavior by running:
python isaaclab/scripts/reinforcement_learning/skrl/play.py --task=Isaac-Ant-v0 --kit_args="--no-window --enable omni.kit.livestream.webrtc"
This will launch Isaac Sim. Note how we added the --kit_args
since we'll want to view the behavior using the Isaac Sim viewport.
- Wait for application to be ready.
- Look for a message saying
Simulation App Startup Complete
in the console.
- Open a new tab in your browser, if you don't have a viewer tab yet.
- Example: if VSCode is hosted at
ec2.something.amazonaws.com
, then the Isaac Sim UI can be accessed atec2.something.amazonaws.com/viewer
- note the/viewer
addition.
Note
If you already have a viewer tab open, simply refresh it when the app is ready.
- Wait a few seconds for the stream to start. The first launch may take much longer as shaders are cached.
- To stop the process, press CTRL+C in the terminal.
Important
This setup is only intended to be used with one viewer instance. Please only keep one viewer tab open at a time for best results.
If you're new to Isaac Lab, here are some ideas to try:
- Run the Showroom Demos from Isaac Lab.
- Take the introductory Isaac Lab courses: "Train Your First Robot With Isaac Lab" and "Train your Second Robot With Isaac Lab" available here
- Explore the Isaac Lab Walkthrough
If you'd like a Launchable with more compute, or other custom features, you can fork this repo and / or use this repo but configure a custom Launchable for your projects.
These instructions describe how to create a customized Launchable, similar to the one linked at the beginning of this guide.
- Log in to the Brev website.
- Go to the Launchables category.
- Click the Create Launchable button.
- Choose the "I don't have any code files" option.
- Choose VM Mode - Basic VM with Python installed, then click Next.
- On the next page, add a setup script. Under the Paste Script tab, add this code:
#!/bin/bash
git clone https://github.com/isaac-sim/isaac-launchable
cd isaac-launchable/isaac-lab
docker compose up -d
- Click Next.
- Under "Do you want a Jupyter Notebook experience" select "No, I don't want Jupyter".
- Select the TCP/UDP ports tab.
- Expose the following ports (for Visual Studio Code Server and Kit App Streaming). You can choose to limit these ports to be accessible only from certain IPs as well.
80
1024
47998
49100
- Click Next.
- Choose your desired compute.
Note
GPUs with RT cores are required for Kit App Streaming. The compute specs and driver versions provided also need to be compatible with Isaac Sim. The available drivers are not exposed on this Brev page currently.
Important
The project is not currently compatible with Crusoe instances. AWS has been tested and is used for the example launchable.
- Choose disk storage, then click Next.
- Enter a name, then select Create Launchable
Congratulations! You now have a custom launchable.
This project can also be used to run a containerized version of Isaac Sim and Isaac Lab.
To use this project locally, you'll need a workstation that meets Isaac Sim's requirements.
- Install the NVIDIA Container Toolkit:
sudo install nvidia-container-toolkit
- Inside this docker-compose file, change the
ENV=brev
line toENV=localhost
. - Inside the folder
isaac-lab
, rundocker compose up -d
. - Access the VSCode instance via
localhost
.
If you run into issues or can't make the web viewer connect, the first thing to check is that all containers are running.
If using Brev, view your GPU Instance page and find the command to open a terminal on your instance.
Once you have a terminal to the instance running the containers, run docker ps
and note if the following containers are running:
- isaac-lab-nginx
- isaac-lab-vscode
- isaac-lab-viewer
To restart the containers:
- From the terminal connected to your Brev instance, run
docker compose down
- Now run
docker compose up -d
- Confirm containers mentioned above are all running using
docker ps
By clicking the "Deploy Launchable" button, you agree to the NVIDIA Isaac Sim Additional Software and Materials License Agreement found here https://www.nvidia.com/en-us/agreements/enterprise-software/isaac-sim-additional-software-and-materials-license/.