Skip to content

Working in an instance


Access your instance

After creating your instance, there are several ways to access it.
You can also find all of the methods listed here in the README inside your instance workspace.

VS Code Web IDE

The easiest way is to use the web-based VS Code interface. You can open it using the corresponding button in your instance tile in the Instance Overview.

Virtual Desktop

A graphical desktop environment via noVNC is also available. You can access it using the corresponding button in your instance tile in the Instance Overview.

You can also access your EXPLORE instance via SSH — both through a classic terminal and through the Remote Explorer extension for VS Code (or other IDEs). The required command, which already contains all necessary information, can conveniently be copied from the bottom section of your instance tile in the Instance Overview.

Isaac Sim Viewer

Once you have started Isaac Sim, the graphical interface is provided through the Isaac Sim Viewer by default. The viewer can be accessed using the corresponding button in your instance tile in the Instance Overview.


File handling

Important: Please also make sure to read the notes regarding files in the Instance Lifecycle overview!

File sharing between Instances

Files are not shared between different instances by default. An exception is the shared persistent volume:

  • Mount Path: /workspace/shared
  • Access Mode: ReadWriteMany (RWX) - multiple instances can read and write simultaneously

File copying via scp/rsync

To copy files into your instance (and back out again), you can use scp (or rsync).
You can find the SSH port and your node DNS name in the SSH command shown at the bottom section of your instance tile in the Instance Overview.

scp -p <SSH_PORT> <local_file> <username>@<node-hostname>:/workspace/shared
scp -p <SSH_PORT> <username>@<node-hostname>:/workspace/shared/<remote_file> <local_path>

Git

You can also use Git to quickly and conveniently make files available inside your EXPLORE instance. Simply clone your repository into your instance workspace.


Isaac Usage

Isaac Sim and Isaac Lab are directly available in your instance if you use the default instance template.

Running Isaac Sim

Open a terminal (using one of the methods described above) and enter or paste the following command:

/isaac-sim/isaac-sim.streaming.sh
/isaac-sim/isaac-sim.sh $STREAM_ARGS

This starts Isaac Sim with the correct streaming options. When you see the output Isaac Sim Full App is loaded., the application is ready for streaming, and you should be able to access the graphical interface using the Isaac Sim Viewer described above.

Running Isaac Sim (Virtual Desktop)

If you want to use Isaac Sim through the virtual desktop, you can start the script without $STREAM_ARGS:

/isaac-sim/isaac-sim.sh

Running Isaac Lab

You can run Isaac Lab scripts with the streaming Isaac Sim viewer:

/isaaclab/isaaclab.sh -p "isaaclab/scripts/tutorials/00_sim/create_empty.py" --kit_args="${STREAM_ARGS}"

To run any other Isaac Lab commands, simply append them as shown above.

Running IsaacSim SimulationApp

Here is a minimal example of how to use the Standalone Python workflow and enable streaming.

import os
from isaacsim import SimulationApp

CONFIG = {
    "headless": True,
    "hide_ui": False,  # Prevent SimulationApp from auto-hiding the UI when headless
}

# Start the omniverse application
simulation_app = SimulationApp(launch_config=CONFIG)

from isaacsim.core.utils.extensions import enable_extension

# Apply settings before enabling the extension
simulation_app.set_setting("/exts/omni.kit.livestream.app/primaryStream/publicIp", os.environ["NODE_IP"])

# Enable Livestream extension
enable_extension("omni.kit.livestream.webrtc")

# Run until closed
while simulation_app._app.is_running() and not simulation_app.is_exiting():
    simulation_app.update()

simulation_app.close()
from isaacsim import SimulationApp

CONFIG = {
    "headless": True,
    "hide_ui": False,  # Prevent SimulationApp from auto-hiding the UI when headless
}

# Start the omniverse application
simulation_app = SimulationApp(launch_config=CONFIG)

from isaacsim.core.utils.extensions import enable_extension

# Apply settings before enabling the extension
simulation_app.set_setting("/app/livestream/ipversion", "ipv6")
simulation_app.set_setting("/app/livestream/publicEndpointAddress", "nucleus-1.omniverse.techfak.de")

# Enable Livestream extension
enable_extension("omni.kit.livestream.webrtc")

# Run until closed
while simulation_app._app.is_running() and not simulation_app.is_exiting():
    simulation_app.update()

simulation_app.close()

Using the Isaac Sim WebRTC Streaming Client

The following instructions only apply to Isaac Sim 6. Before you can use the streaming client, you need to establish a WireGuard connection between your machine and your instance. You can find instructions for that here.

Then you can simply start Isaac Sim with streaming enabled in your instance and the Isaac Sim WebRTC Streaming Client locally, as instructed here. Insert the WireGuard IP of your instance (10.14.<n>.1, see the tunnel IP table in the WireGuard instructions) in the "Server" field of the client.


Others

Background Processes

Processes started in any remote terminal will pause when you close the terminal. To run processes in the background, use tools like tmux or screen.

Software Installation

Users have sudo permissions and can install packages using:

sudo apt update
sudo apt install <package-name>