Setting Up Remote Access to Isaac Sim — From WebRTC Dead Ends to NoMachine + Tailscale
Introduction
The goal was simple: operate the Isaac Sim machine (Ubuntu 24) at the office from a Mac while away. This post is a record of that setup journey.
I started by chasing the idea that "Isaac Sim supports WebRTC browser streaming," but ultimately landed on a completely different approach. Hopefully this saves someone else the same detours.
Environment
- Remote host: Ubuntu 24 / NVIDIA GPU / Isaac Sim (pip install, conda environment)
- Client: macOS
- Goal: Full GUI control of Isaac Sim over the internet
Step 1: Choosing the VPN Layer — Why Tailscale
Remote access starts with a VPN. Here's a quick comparison of the candidates:
| Option | Notes |
|---|---|
| OpenVPN | Battle-tested, but configuration is complex |
| WireGuard | Fast and lightweight, but requires router-level setup |
| Tailscale | WireGuard-based. Works with just an account — no router changes needed |
Three things sold me on Tailscale: no static IP required, automatic NAT traversal, and setup that takes minutes.
Under the hood, each device registers its public key with Tailscale's coordination server, then connects directly to other devices via WireGuard P2P. Your actual traffic never passes through Tailscale's servers.
# Ubuntu side (official install script)
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
Security note: With any
curl | shinstall script, it's good practice to inspect the script contents before running it. You can also download the package directly from tailscale.com/download if you prefer.
# Mac side (Homebrew install, then start the service)
brew install tailscale
brew services start tailscale
tailscale up
If you use the Mac App Store version or the
.dmgfrom tailscale.com, just launch the app and sign in — no CLI needed.
Once both devices are signed into the same account, they each get a virtual IP in the 100.64.x.x range and can reach each other as if they're on the same LAN, regardless of location.
Step 2: Attempting WebRTC Streaming in Isaac Sim
Isaac Sim (Kit-based) has WebRTC streaming built in, and I expected to connect to it directly from a browser.
2-1. Finding the kit file
In the pip-installed version, Isaac Sim is launched via the isaacsim command, and you need to specify a .kit experience file explicitly.
find ~/miniconda3/envs/env_isaacsim -name "*.kit" 2>/dev/null
The one streaming-related file I found:
isaacsim.exp.full.streaming.kit
2-2. Launching it — turns out it's for NVCF
isaacsim --experience /path/to/isaacsim.exp.full.streaming.kit
A server came up on port 8011. Hitting it in the browser returned {"detail":"Not Found"}. Opening /docs revealed it was a FastAPI-based REST API server called Kit services core.
This is a service API intended for NVIDIA Cloud Functions (NVCF) — not a browser-viewable video stream.
2-3. Manually enabling the WebRTC extension
find ~/miniconda3/envs/env_isaacsim -name "*webrtc*" 2>/dev/null
The omni.kit.livestream.webrtc extension existed, so I tried enabling it with --enable:
isaacsim \
--experience /path/to/isaacsim.exp.full.kit \
--enable omni.kit.livestream.webrtc \
--/app/streaming/enabled=1
Port 49100 opened up, but the browser returned a 501 error. No UDP ports opened and no WebRTC media stream appeared to be running.
2-4. Verdict: This WebRTC build doesn't support Mac
After digging further, omni.kit.livestream.webrtc is designed for the Omniverse Streaming Client — NVIDIA's official desktop client — which is Windows and Linux only. Browser-based access from Mac is not supported in this configuration.
Step 3: Switching to NoMachine + Tailscale
For GPU application remote desktop, I went with NoMachine.
Why NoMachine
| Tool | Mac support | GPU rendering | Ease of setup |
|---|---|---|---|
| NoMachine | ✓ | ◎ | ◎ |
| NICE DCV | ✓ | ◎ | △ (complex config) |
| VNC | ✓ | △ | ◎ |
Ubuntu setup
# Download the .deb from nomachine.com
sudo dpkg -i nomachine_*.deb
sudo systemctl enable nxserver
sudo systemctl start nxserver
Mac setup
Download and install the macOS client from nomachine.com.
Connecting
Open NoMachine → New → Protocol: NX / Host: <Ubuntu's Tailscale IP (100.64.x.x)> / Port: 4000 → log in with Ubuntu credentials.
Isaac Sim's full GUI was immediately available and responsive.
Security note: Because the connection goes through Tailscale, there is no need to expose NoMachine's port 4000 to the internet. The default Ubuntu firewall configuration (port 4000 accessible only within LAN or Tailscale network) is sufficient.
Final Architecture
[Mac]
↓ Tailscale (WireGuard P2P encryption)
[Ubuntu 24 / Isaac Sim machine]
↓ NoMachine (GPU-rendered desktop stream)
[Isaac Sim GUI]
The same procedure works whether you're on the local network or connecting remotely over Tailscale — from a business trip, from home, anywhere.
Summary
| Item | Result |
|---|---|
| Isaac Sim WebRTC (browser) | Not supported on Mac — abandoned |
| NoMachine | Confirmed working ✓ |
| Tailscale | Confirmed working ✓ |
Isaac Sim's WebRTC streaming behavior varies significantly depending on the version and deployment target. With the pip-installed version, "view it in a browser" is not a valid assumption — be aware of this before going down that path.
Hopefully this helps someone working through the same setup.
