April 28, 2026
Ken Suzuki
Technology

Setting Up Remote Access to Isaac Sim — From WebRTC Dead Ends to NoMachine + Tailscale

Attempted browser-based access via WebRTC, only to find it unsupported on Mac. A walkthrough of how I landed on combining Tailscale for VPN and NoMachine for remote desktop to securely operate Isaac Sim from a Mac anywhere.

Isaac SimTailscaleNoMachineRemote AccessUbuntu
Setting Up Remote Access to Isaac Sim — From WebRTC Dead Ends to NoMachine + Tailscale

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 | sh install 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 .dmg from 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.

Setting Up Remote Access to Isaac Sim — From WebRTC Dead Ends to NoMachine + Tailscale | Shirokuma.online