Setup Tips#
Isaac Sim Modes
Isaac Sim Full App
This is the main windowed Isaac Sim application.
This mode includes all Isaac Sim extensions and most of them are enabled by default.
Isaac Sim Full Streaming App (using Isaac Sim WebRTC Streaming Client)
This is a headless version of Isaac Sim. It can be run remotely on a workstation with an RTX GPU and accessed from the Isaac Sim WebRTC Streaming Client app available for Linux, Windows and macOS, or from a web-based viewer deployed via Docker Compose.
This mode includes all Isaac Sim extensions and most of them are enabled by default.
Isaac Sim Python
This is a mini app to run the Python samples.
See Python Environment.
Isaac Sim Launch Scripts
Script |
Description |
|---|---|
|
Isaac Sim full app |
|
Isaac Sim headless full app with Isaac Sim WebRTC Streaming Client service |
|
Isaac Sim full app with Fabric enabled |
|
Isaac Sim base app with XR and VR enabled |
|
Isaac Sim Jupyter Notebook executable |
|
Isaac Sim Python executable |
|
Isaac Sim Python environment setup |
|
Isaac Sim Conda environment setup |
|
Script to clear local caches |
|
Script to be run once after install |
|
Script to warm up the shader cache |
Script |
Description |
|---|---|
|
Isaac Sim full app |
|
Isaac Sim headless full app with Isaac Sim WebRTC Streaming Client service |
|
Isaac Sim full app with Fabric enabled |
|
Isaac Sim base app with XR and VR enabled |
|
Isaac Sim Python executable |
|
Isaac Sim Python environment setup |
|
Script to clear local caches |
|
Script to be run once after install |
|
Script to warm up the shader cache |
Script |
Description |
|---|---|
|
Script to run Isaac Sim as a windowed app |
|
Script to run Isaac Sim headless with Isaac Sim WebRTC Streaming Client service |
|
Isaac Sim Jupyter Notebook executable |
|
Isaac Sim Python executable |
|
Isaac Sim Python environment setup |
|
Isaac Sim Conda environment setup |
|
Script to clear local caches |
|
Script to warm up the shader cache |
Script |
Description |
|---|---|
|
Script to run Isaac Sim as a windowed app |
|
Isaac Sim Python executable |
|
Isaac Sim Python environment setup |
|
Isaac Sim Conda environment setup |
|
Script to clear local caches |
|
Script to warm up the shader cache |
Isaac Sim CLI Launch flags
Flag |
Description |
|---|---|
|
instruct to supersede configuration key with given value. |
|
Clear $cache folder before starting. |
|
Clear $data folder before starting. |
|
Do not startup any extensions, only load them. |
|
Enable extension (short hand to add extension to enabled list). |
|
execute a console command on startup |
|
Add extension folder to look extensions in. |
|
Add direct extension path (allows adding single extension). |
|
Only resolve and download all extensions, exit right after. |
|
this help message |
|
show info log output in console |
|
List all local extensions and quit. |
|
List all registry extensions and quit. |
|
merge configuration file. |
|
Enable portable mode. Portable root defaults to ${kit} path. |
|
Enable portable mode and place data/cache/logs folders there. |
|
Publish extension to the registry and quit. |
|
Allow overwriting extension in registry when publishing. |
|
Do not load persistent settings from user.config file. |
|
Unpublish extension from the registry and quit. |
|
Look for latest versions in extension registry and update for all enabled extensions. |
|
show verbose log output in console |
|
Suspend execution and wait for debugger to attach. |
Kit Extension Registry
Kit Extension Registry
Note
As of Isaac Sim 6.0, Kit extension registries are now managed automatically by the Kit SDK. If you have custom .kit files or configuration overrides that specify Kit registry settings, you should remove them.
Migration for Isaac Sim 6.0 and later: If you have custom .kit configuration files or user configuration overrides that include Kit registry settings under [settings.exts."omni.kit.registry.nucleus"], we recommend removing them for compatibility.
Kit SDK now handles registry configuration automatically, and custom registry overrides are no longer needed. Removing these settings ensures compatibility with Isaac Sim 6.0 and later versions.
To add custom registries, go to Window > Extensions and add the new custom registry in the Extension Registries section.
Differences Between Workstation And Docker
Differences Between Workstation And Docker
There are two methods to install Isaac Sim:
Workstation Installation is recommended for Workstation users.
Container Installation is recommended for remote headless servers or the Cloud using a Docker container.
Note
Here are the main differences between Workstation and Docker installations:
The Isaac Sim Docker container does not include Nucleus and will access assets directly from the Cloud by default.
The recommnded root folder of the workstation package is at ~/isaacsim or C:\isaacsim, while the root folder in the Docker container is /isaac-sim.
See Location for Isaac Sim app for differences in common paths.
Common Path Locations
Location for Isaac Sim app
~/isaacsim
C:\isaacsim
/isaac-sim
Location for Isaac Sim logs
~/.nvidia-omniverse/logs/Kit/Isaac-Sim
%userprofile%\.nvidia-omniverse\logs\Kit\Isaac-Sim
/root/.nvidia-omniverse/logs/Kit/Isaac-Sim
Location for Isaac Sim shader cache
~/.cache/ov/Kit
%userprofile%\AppData\Local\ov\cache\Kit
/root/.cache/ov/Kit
Location for Isaac Sim configs
~/.local/share/ov/data/Kit/Isaac-Sim
%userprofile%\AppData\Local\ov\data\Kit\Isaac-Sim
/root/.local/share/ov/data/Kit/Isaac-Sim
Multi-GPU
Multi-GPU
Multi-GPU support and specific GPU settings can be activated using the usual configurations methods, either by command line …
./isaac-sim.sh --/renderer/multiGpu/enabled=true
…or by kit configuration in Python…
import carb.settings
settings = carb.settings.get_settings()
# set different types into different keys
# guideline: each extension puts settings in /ext/[ext name]/ and lists them extension.toml for discoverability
settings.set("/renderer/multiGPU/enabled", True)
Some useful settings include, but are not limited to….
/renderer/multiGpu/Enabled=trueenables multiple GPUs for rendering/renderer/multiGpu/autoEnable=trueenables multi GPU rendering if available/renderer/multiGpu/maxGpuCount=2sets the maximum number of GPUs to be allocated for rendering/renderer/activeGpu=0sets the active GPU according to nvidia-smi
Assets
Local Assets Packs
Isaac Sim Local Assets Packs are available to be used locally and in an air-gapped environment.
Download the Isaac Sim Assets Complete Pack from the Latest Release section. The example below shows using Aria2 to download the complete assets zip file.
sudo apt install aria2
cd ~/Downloads
aria2c "https://downloads.isaacsim.nvidia.com/isaac-sim-assets-complete-5.1.0.001.zip"
aria2c "https://downloads.isaacsim.nvidia.com/isaac-sim-assets-complete-5.1.0.002.zip"
aria2c "https://downloads.isaacsim.nvidia.com/isaac-sim-assets-complete-5.1.0.003.zip"
winget install --id=aria2.aria2 -e
cd %USERPROFILE%/Downloads
aria2c "https://downloads.isaacsim.nvidia.com/isaac-sim-assets-complete-5.1.0.001.zip"
aria2c "https://downloads.isaacsim.nvidia.com/isaac-sim-assets-complete-5.1.0.002.zip"
aria2c "https://downloads.isaacsim.nvidia.com/isaac-sim-assets-complete-5.1.0.003.zip"
Unzip packages to a folder.
mkdir ~/isaacsim_assets
cd ~/Downloads
cat isaac-sim-assets-complete-5.1.0.001.zip isaac-sim-assets-complete-5.1.0.002.zip isaac-sim-assets-complete-5.1.0.003.zip > isaac-sim-assets-complete-5.1.0.zip
unzip "isaac-sim-assets-complete-5.1.0.zip" -d ~/isaacsim_assets
mkdir C:\isaacsim_assets
cd %USERPROFILE%/Downloads
copy /b isaac-sim-assets-complete-5.1.0.001.zip + isaac-sim-assets-complete-5.1.0.002.zip + isaac-sim-assets-complete-5.1.0.003.zip isaac-sim-assets-complete-5.1.0.zip
tar -xvzf "isaac-sim-assets-complete-5.1.0.zip" -C C:\isaacsim_assets
Note
All three assets packs are required and they need to be combined into a single root folder (for example, ~/isaacsim_assets/Assets/Isaac/5.1).
This root folder (~/isaacsim_assets/Assets/Isaac/5.1) must contain both the NVIDIA and Isaac folders.
Follow the instructions to setup Isaac Sim, then edit the isaacsim.exp.base.kit file.
Edit the /home/<username>/isaacsim/apps/isaacsim.exp.base.kit file and add the settings below:
[settings]
persistent.isaac.asset_root.default = "/home/<username>/isaacsim_assets/Assets/Isaac/5.1"
exts."isaacsim.gui.content_browser".folders = [
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/Robots",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/People",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/IsaacLab",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/Props",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/Environments",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/Materials",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/Samples",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/Sensors",
]
Edit the C:/isaacsim/apps/isaacsim.exp.base.kit file and add the settings below:
[settings]
persistent.isaac.asset_root.default = "C:/isaacsim_assets/Assets/Isaac/5.1"
exts."isaacsim.gui.content_browser".folders = [
"C:/isaacsim_assets/Assets/Isaac/5.1/Isaac/Robots",
"C:/isaacsim_assets/Assets/Isaac/5.1/Isaac/People",
"C:/isaacsim_assets/Assets/Isaac/5.1/Isaac/IsaacLab",
"C:/isaacsim_assets/Assets/Isaac/5.1/Isaac/Props",
"C:/isaacsim_assets/Assets/Isaac/5.1/Isaac/Environments",
"C:/isaacsim_assets/Assets/Isaac/5.1/Isaac/Materials",
"C:/isaacsim_assets/Assets/Isaac/5.1/Isaac/Samples",
"C:/isaacsim_assets/Assets/Isaac/5.1/Isaac/Sensors",
]
Run Isaac Sim with the flag below to use the local assets.
./isaac-sim.sh --/persistent/isaac/asset_root/default="/home/<username>/isaacsim_assets/Assets/Isaac/5.1"
.\isaac-sim.bat --/persistent/isaac/asset_root/default="C:/isaacsim_assets/Assets/Isaac/5.1"
Note
The persistent.isaac.asset_root.default setting can either be set in the .kit settings file (Step 3) or using the commandline (Step 4). The default is set to https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1
The persistent.isaac.asset_root.default setting is used in the Python code that calls the get_assets_root_path_async` or get_assets_root_path` functions.
The exts.”isaacsim.gui.content_browser”.folders setting is used in the Content Browser.
Assets Check
In the Isaac Sim app, to verify the access to the assets, go to the Utilities menu. Then click Check Default Assets Root Path.
If manually downloading the assets pack from the previous section, the logs should show:
[139.213s] Checking for Isaac Sim Assets...
[139.218s] Isaac Sim assets found: /home/<username>/isaacsim_assets/Assets/Isaac/5.1
[139.213s] Checking for Isaac Sim Assets...
[139.218s] Isaac Sim assets found: C:\isaacsim_assets\Assets\Isaac\5.0
By default, the logs should show:
[139.213s] Checking for Isaac Sim Assets...
[139.218s] Isaac Sim assets found: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1
Docker
Save Isaac Sim Configs on Local Disk
To keep Isaac Sim configuration and data persistent when running in a container, use the flags below when running the Docker container.
-v ~/docker/isaac-sim/cache/main:/isaac-sim/.cache:rw #For cache
-v ~/docker/isaac-sim/cache/computecache:/isaac-sim/.nv/ComputeCache:rw #For cache
-v ~/docker/isaac-sim/logs:/isaac-sim/.nvidia-omniverse/logs:rw #For log files
-v ~/docker/isaac-sim/config:/isaac-sim/.nvidia-omniverse/config:rw #For config files
-v ~/docker/isaac-sim/data:/isaac-sim/.local/share/ov/data:rw #For data
-v ~/docker/isaac-sim/pkg:/isaac-sim/.local/share/ov/pkg:rw #For apps
-u 1234:1234 #To set user permissions
$ sudo docker run --name isaac-sim --entrypoint bash -it --gpus all -e "ACCEPT_EULA=Y" --rm --network=host \
-v ~/docker/isaac-sim/cache/main:/isaac-sim/.cache:rw \
-v ~/docker/isaac-sim/cache/computecache:/isaac-sim/.nv/ComputeCache:rw \
-v ~/docker/isaac-sim/logs:/isaac-sim/.nvidia-omniverse/logs:rw \
-v ~/docker/isaac-sim/config:/isaac-sim/.nvidia-omniverse/config:rw \
-v ~/docker/isaac-sim/data:/isaac-sim/.local/share/ov/data:rw \
-v ~/docker/isaac-sim/pkg:/isaac-sim/.local/share/ov/pkg:rw \
-u 1234:1234 \
nvcr.io/nvidia/isaac-sim:6.0.0-dev2
Note
These flags will use the use Home folder to save the Isaac Sim cache, logs, config, and data.
Problem Connecting to Docker Container
To resolve some problems connecting to a Docker container, try using the –network=host flag when running the Docker container.
$ sudo docker run --gpus all -e "ACCEPT_EULA=Y" --rm --network=host nvcr.io/nvidia/isaac-sim:6.0.0-dev2
Note
This flag is needed to connect to a Nucleus server.
Reading the Logs in a Container
To ensure NVIDIA Isaac Sim is running in a container, you can read the logs:
1. If the NVIDIA Isaac Sim container is on a remote machine, SSH into the Docker host using a terminal.
Run this command from where your pem key folder is; replace the <public_ip_address> with your
instance or remote host IP address:
$ ssh -i "yourkey.pem" ubuntu@<public_ip_address>
Access the running container as follows:
$ docker exec -it <container_id_or_name> bash
$ cd /root/.nvidia-omniverse/logs/Kit/Isaac-Sim/<version_number>
Restarting the Container
The steps below are used to restart a headless container.
SSH into the host machine or AWS instance running the NVIDIA Isaac Sim Container.
$ ssh -i "<ssh_key_name>.pem" ubuntu@<public_ip_address>
List all running containers and find the container ID running NVIDIA Isaac Sim.
$ sudo docker ps
CONTAINER ID IMAGE
823686a7036d nvcr.io/nvidia/isaac-sim...2021.2.1
Restart the container.
$ sudo docker restart [CONTAINER ID]
View the Docker logs.
$ sudo docker logs [CONTAINER ID]
Restart NVIDIA Isaac Sim inside Docker
If you want to restart NVIDIA Isaac Sim while keeping Docker running, you must start the Docker with Bash as the entrypoint so that you can manually start or stop NVIDIA Isaac Sim.
Start the Docker with Bash, and start NVIDIA Isaac Sim manually.
$ sudo docker run -it --entrypoint bash --gpus all -e "ACCEPT_EULA=Y" --rm --network=host nvcr.io/nvidia/isaac-sim:6.0.0-dev2
$ ./runheadless.sh
Proceed to Isaac Sim WebRTC Streaming Client to connect the native streaming client and view NVIDIA Isaac Sim remotely. See Livestream Clients for all streaming options.
3. When you need to exit, in a separate terminal start an interactive bash session inside the same container that’s running the headless server and kill the NVIDIA Isaac Sim related processes.
$ docker exec -it <container_id> bash
$ pkill omniverse-kit
Restart NVIDIA Isaac Sim.
$ ./runheadless.sh
Save Docker Image
If you made significant changes inside the Docker, for example, installed ROS or other libraries, you may want to save the Docker image so that you can restart the Docker without having to reinstall everything.
Find the container’s ID and commit it.
$ docker ps
$ docker commit <CONTAINER ID> <new docker name>
To reload a specific Docker:
$ docker run -it --entrypoint bash --gpus all -e "ACCEPT_EULA=Y" --rm --network=host -d <new Docker name>
Create a Cached Docker Image
Creating a local cached image of Isaac Sim will help improve the load times of running Isaac Sim in a container as well as having custom pre-installed dependencies.
To create this cached image, first pull and run the latest Isaac Sim container from NGC.
$ docker pull nvcr.io/nvidia/isaac-sim:6.0.0-dev2
$ docker run --name isaac-sim --entrypoint bash -it --rm --gpus all --network=host \
-e "ACCEPT_EULA=Y" -e "PRIVACY_CONSENT=Y" \
nvcr.io/nvidia/isaac-sim:6.0.0-dev2
Install any dependencies (for example, ROS or other libraries) and warm up the shader cache.
$ ./python.sh -m pip install stable-baselines3 tensorboard
$ ./python.sh standalone_examples/api/isaacsim.simulation_app/hello_world.py -v
$ ./runheadless.sh -v --/app/quitAfter=1000
Create the cached Docker image.
$ docker commit isaac-sim isaac-sim-cached
Save the Docker image to a compressed archive to transfer it to another machine, if needed.
$ docker save isaac-sim-cached | gzip > isaac-sim-cached.tar.gz
Load the compressed archive as a Docker image.
$ docker load -i isaac-sim-cached.tar.gz isaac-sim-cached
Run this cached image.
$ docker run --name isaac-sim-cached --entrypoint bash -it --gpus all --rm --network=host \
-e "ACCEPT_EULA=Y" -e "PRIVACY_CONSENT=Y" \
isaac-sim-cached
Setting up Docker
After you have Docker on Linux installed, follow the instructions at Post-installation steps for Linux to set it up so that you would not need to use sudo to run a Docker container.
Mount a Folder to the Container
To add data from the host machine to a container, you must mount a folder.
$ sudo docker run --gpus all --rm -e "ACCEPT_EULA=Y" -v ~/docker/isaac-sim/documents:/root/Documents:rw nvcr.io/nvidia/isaac-sim:6.0.0-dev2
Note
Can now copy files to docker/isaac-sim/documents in your Home folder and it will show up in the Isaac Sim container at /root/Documents.
Cloud
Getting IP Addresses of AWS EC2 Instance
To get the public and private IP addresses of an AWS EC2 instance, go to the Instances section of the EC2 Dashboard and select the instance. Refer to the image below for an example of the Private and Public IPs:
SSH into the AWS EC2 Instance
If you need to directly access an AWS EC2 instance that was created from the deployment above, run these steps to SSH into the instance:
$ ssh -i "<ssh_key_name>.pem" ubuntu@<public_ip_address>
Creating AWS Access Key
Create an AWS Access Key by following the instructions here:
Creating SSH Key
On Linux
Run:
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen -t rsa
Enter your passphrase twice.
Your public key is at .ssh/id_rsa.pub in your home folder and private key at .ssh/id_rsa.
On Windows
Download PuTTYgen.
Launch PuTTYgen, and click on “Generate a public/private key pair”.
Click on Save public key and name the file “${ssh_key_name}.pub”. This is your Public Key file.
From the Conversions menu, select Export OpenSSH key and name the file “${ssh_key_name}.pem”. This is your Private Key file.
Edit the properties of the “${ssh_key_name}.pem” file.
Go to security settings, click Advanced
Remove inheritance
Set current user as owner of the file and full permissions to only that user
This is to prevent permission errors when trying to SSH into the instance
Nucleus
Assets on Nucleus
To access the Isaac Sim assets, access to the Internet is required.
Note
The Isaac Sim assets are also available in the main /NVIDIA/Assets/Isaac folder in every Nucleus server.
Setting the Default Nucleus Server
To set the default Nucleus server when running natively, open the
user.config.jsonfile for editing and locate the following line:
"persistent": {
"isaac": {
"asset_root": {
"default": "omniverse://localhost/NVIDIA/Assets/Isaac/5.1",
}
},
},
Change
localhostto the IP address of the Nucleus server.
Note
Location of
user.config.jsonfile:Linux:
~/.local/share/ov/data/Kit/Isaac-Sim/5.0/user.config.jsonWindows:
C:\Users\{username}\AppData\Local\ov\data\Kit\Isaac-Sim\5.0\user.config.json
The folder in the persistent/isaac/asset_root/default setting should contain both the Isaac and the NVIDIA folder.
You could also run Isaac Sim with this flag:
--/persistent/isaac/asset_root/default="omniverse://<ip_address>/NVIDIA/Assets/Isaac/5.1"
To set the default Nucleus server when running in Docker, use the flag
-e "OMNI_SERVER=omniverse://<ip_address>/NVIDIA/Assets/Isaac/5.1", where<ip_address>is the IP address of the Nucleus server.
$ sudo docker run --gpus all -e "ACCEPT_EULA=Y" -e "OMNI_SERVER=omniverse://<ip_address>/NVIDIA/Assets/Isaac/5.1" --rm --network=host nvcr.io/nvidia/isaac-sim:6.0.0-dev2
Setting the Default Username and Password for Connecting to the Nucleus Server
Use the following commands to set the default credentials when running natively:
$ export OMNI_USER=<username>
$ export OMNI_PASS=<password>
To set the default credentials when running in Docker, use the flag
-e "OMNI_USER=<username>" -e "OMNI_PASS=<password>"(the default is “admin” for each).
$ sudo docker run --gpus all -e "ACCEPT_EULA=Y" -e "OMNI_USER=<username>" -e "OMNI_PASS=<password>" --rm --network=host nvcr.io/nvidia/isaac-sim:6.0.0-dev2