Some Resources to help manage CloudXR Servers

Hi Everyone. At GTC 2024 some NVIDIA employees presented their thoughts on tools and tips from experiences they’ve had deploying CloudXR in the wild availble here to stream: Because there’s lots of good stuff in there, @AndreusNvidius and I want to callout some of the resources in a clickable or copy-pasteable form:

For both securing connections and simplifying open ports, consider a VPN like WireGuard:

For keeping an up-to-date copy of SteamVR, consider using SteamCMD:

  • Download: SteamCMD - Valve Developer Community
  • Command-line tool (can be scripted)
  • Anonymous login allowed for SteamVR app id 250820
  • Microservice idea: check for SteamVR update once a [period], download, upload to private bucket, sync to instance images as needed

Consider the Parsec Cloud Prep Tool: A collection of PowerShell scripts that show how to do a number of needed tasks for CloudXR instances.

PowerShell. Because it’s always available on Windows, there’s tons of examples like the Parsec Cloud Prep Tool above, and you can do almost anything you need to in a readable and maintainable codebase.

USB over IP tools. If you’re trying to stream to a flight simulator rig or something else with a ton of USB peripherals that need to talk an application on your server, you can use USB over IP to accomplish this. It applies more to situations where you control the VR headset and its operating system, unless you do the significant amount of coding work to add the USB-over-IP stack to your client application.

Instance-local storage tools

Package managers to help when building/testing/maintaining servers/images

MDM - Mobile Device Management: if you manage Android based VR devices, an MDM will save considerable time managing them.

1 Like

Useful tools for CloudXR integration developers:

scrcpy - GitHub - Genymobile/scrcpy: Display and control your Android device
A tool for displaying and controlling Android devices. SideQuest, for example, uses this for its HMD-to-PC streaming.

OpenXR Explorer GitHub - maluoi/openxr-explorer: A cross-platform OpenXR capabilities explorer and runtime switcher with a CLI and GUI.
Allows you to inspect and control the OpenXR runtime you are using on WIndows and Linux. Useful if you do XR development with a lot of different target environments.

USB-C Ethernet - There are circumstances, particularly related to development and testing, where WiFi is not a realistic way to set up streaming. Many devices support USB-C ethernet adapters. There are even some power-over-ethernet (PoE) to USB-C dongles that will provide both power and data to devices. Recently tested streaming platforms that have supported this (no promises) include: iPad Pro (USB-C), Quest 2/3/Pro, Lenovo VRX, PICO 4, VIVE XR Elite.

Laptop USB-C Docks - Many devices can make use of USB-C laptop docks, which allow them to get ethernet internet and power. This is primarily useful for a headset that is dedicated to testing, or is being used by a developer. One particularly interesting case: carefully selected USB-C docks with display passthrough can be used in between the Lenovo A3 and its tethering phone, allowing for powering the headset and phone while still using/testing Motorola Spaces based APKs.