Replaces manual H264/TCP stereo streaming with NVIDIA CloudXR for
higher-quality stereoscopic rendering and lower latency.
Changes:
- teleop_xr_agent.py: add --cloudxr flag (enables Isaac Sim XR mode,
disables manual StreamingManager)
- deps/cloudxr/: NVIDIA CloudXR.js SDK (Early Access) with Isaac Lab
teleop React web client
- deps/cloudxr/Dockerfile.wss.proxy: HAProxy WSS proxy for PICO 4 Ultra
HTTPS mode (routes wss://48322 → ws://49100)
- deps/cloudxr/isaac/webpack.dev.js: disable file watching to avoid
EMFILE errors with large node_modules
- deps/cloudxr/INSTALL.md: full setup guide
Usage:
# Start CloudXR Runtime + Isaac Lab
cd ~/IsaacLab && ./docker/container.py start \
--files docker-compose.cloudxr-runtime.patch.yaml \
--env-file .env.cloudxr-runtime
# Run teleop with CloudXR
~/IsaacLab/isaaclab.sh -p teleop_xr_agent.py \
--task Isaac-MindRobot-2i-DualArm-IK-Abs-v0 --cloudxr
# Serve web client
cd deps/cloudxr/isaac && npm run dev-server:https
33 lines
14 KiB
HTML
33 lines
14 KiB
HTML
<!DOCTYPE html><html class="default" lang="en" data-base=".."><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Overview | CloudXR.js SDK Documentation - v6.0.0-beta</title><meta name="description" content="Documentation for CloudXR.js SDK Documentation"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">CloudXR.js SDK Documentation - v6.0.0-beta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">CloudXR.js SDK Documentation</a></li><li><a href="Overview.html">Overview</a></li></ul></div><div class="tsd-panel tsd-typography"><a id="nvidia-cloudxrjs" class="tsd-anchor"></a><h1 class="tsd-anchor-link">NVIDIA CloudXR.js<a href="#nvidia-cloudxrjs" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1><p>CloudXR.js is a JavaScript Client SDK that enables developers to build enterprise web applications for streaming high-performance VR and AR content from the CloudXR Runtime. Built on NVIDIA's CloudXR technology, this library provides seamless integration between web browsers and remote rendering systems, allowing users to experience immersive 3D applications directly in their browser.</p>
|
|
<p>The SDK offers a complete solution for <a href="https://immersiveweb.dev/">WebXR</a> streaming, featuring automatic session management, optimized network protocols, and cross-platform compatibility. You can create rich VR/AR experiences that leverage the power of remote servers while maintaining the accessibility and ease of deployment that web applications provide. While we provide examples for WebGL and React Three Fiber implementations, CloudXR.js is a generic solution that can be integrated with any WebXR-compatible frameworks, making it suitable for a wide range of use cases from simple 3D visualizations to complex interactive applications.</p>
|
|
<blockquote>
|
|
<p><strong>Note</strong>: This is an early access beta release of CloudXR.js. Features and APIs may change in future releases.</p>
|
|
</blockquote>
|
|
<a id="🖥️-compatible-server-applications" class="tsd-anchor"></a><h2 class="tsd-anchor-link">🖥️ Compatible Server Applications<a href="#🖥️-compatible-server-applications" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>CloudXR.js works with any OpenXR-compatible application running on a local or remote server with the CloudXR Runtime, including:</p>
|
|
<ul>
|
|
<li><a href="Show_Cases.Isaac_Lab_Teleop.html"><strong>NVIDIA Isaac Lab</strong></a> - A unified and modular framework for robot learning that aims to simplify common workflows in robotics research.</li>
|
|
<li><strong>OpenXR applications</strong> - Any OpenXR-compatible application running with the CloudXR Runtime.</li>
|
|
</ul>
|
|
<a id="🥽-compatible-client-devices" class="tsd-anchor"></a><h2 class="tsd-anchor-link">🥽 Compatible Client Devices<a href="#🥽-compatible-client-devices" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Our current release is optimized for Meta Quest 3.</p>
|
|
<a id="🚀-getting-started" class="tsd-anchor"></a><h2 class="tsd-anchor-link">🚀 Getting Started<a href="#🚀-getting-started" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>We provide several web examples to integrate with CloudXR.js. Please follow our <a href="Getting_Started.html">Getting Started Guide</a>.</p>
|
|
<a id="📚-documentation" class="tsd-anchor"></a><h2 class="tsd-anchor-link">📚 Documentation<a href="#📚-documentation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="client-configuration" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Client Configuration<a href="#client-configuration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Learn how to configure your client device and web application hosting. Includes browser setup for Meta Quest 3, HTTP vs HTTPS hosting modes, and connection architecture. See <a href="Client_Setup.html">Client Setup Guide</a> for configuration examples and best practices.</p>
|
|
<a id="session-api" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Session API<a href="#session-api" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Learn how to manage CloudXR streaming sessions, including connection lifecycle, configuration options, and event handling. See <a href="Session_API.html">Session API Guide</a> for comprehensive API documentation.</p>
|
|
<a id="networking-setup" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Networking Setup<a href="#networking-setup" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Configure your network for optimal CloudXR streaming performance. We provide example configurations for firewall rules, WiFi optimization, and WebSocket proxy deployments. See <a href="Networking_Setup.html">Networking Setup Guide</a> for sample configurations and recommendations.</p>
|
|
<a id="troubleshooting" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Troubleshooting<a href="#troubleshooting" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Resolve common issues with CloudXR.js applications, including connection problems, streaming issues, and performance optimization. See <a href="Troubleshooting.html">Troubleshooting Guide</a> for solutions to common problems.</p>
|
|
<a id="📄-licenses" class="tsd-anchor"></a><h2 class="tsd-anchor-link">📄 Licenses<a href="#📄-licenses" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><a id="open-source-dependencies" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Open Source Dependencies<a href="#open-source-dependencies" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>CloudXR.js incorporates third-party open source libraries. The following dependencies require attention for license compliance:</p>
|
|
<a id="third-party-libraries-bundled-within-cloudxrjs" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Third-Party Libraries Bundled within CloudXR.js<a href="#third-party-libraries-bundled-within-cloudxrjs" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><ul>
|
|
<li><strong><a href="https://github.com/webrtchacks/adapter">webrtc-adapter</a></strong> - WebRTC compatibility shim for cross-browser support. Licensed under <a href="https://github.com/webrtcHacks/adapter/blob/main/LICENSE.md">BSD 3-Clause License</a>.</li>
|
|
<li><strong><a href="https://github.com/open-telemetry/opentelemetry-js">opentelemetry-js</a></strong> - An observability framework for creating and managing application telemetry including traces, metrics, and logs. Licensed under <a href="https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE">Apache License 2.0</a>.</li>
|
|
</ul>
|
|
<a id="peer-dependencies" class="tsd-anchor"></a><h4 class="tsd-anchor-link">Peer Dependencies<a href="#peer-dependencies" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><ul>
|
|
<li><strong><a href="https://github.com/toji/gl-matrix">gl-matrix</a></strong> - Mathematics library for graphics programming. Licensed under <a href="https://github.com/toji/gl-matrix/blob/master/LICENSE.md">MIT License</a>.</li>
|
|
<li><strong><a href="https://github.com/dcodeIO/long.js">long.js</a></strong> - A Long class for representing a 64-bit two's-complement integer value. Used for accurate handling of uint64 fields in protobuf messages. Licensed under <a href="https://github.com/dcodeIO/long.js/blob/master/LICENSE">Apache License 2.0</a>.</li>
|
|
</ul>
|
|
<p>For a complete list of all dependencies and their licenses, refer to the <code>package.json</code> file in the root directory.</p>
|
|
<a id="cloudxrjs-license" class="tsd-anchor"></a><h3 class="tsd-anchor-link">CloudXR.js License<a href="#cloudxrjs-license" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>This project is licensed under the <a href="../media/LICENSE">NVIDIA CloudXR License</a>.</p>
|
|
<blockquote>
|
|
<p><strong>Important</strong>: This is an evaluation license for internal test and evaluation purposes only. For commercial use, please contact NVIDIA for appropriate licensing terms.</p>
|
|
<p>Please review the license terms before using this SDK in your projects.</p>
|
|
</blockquote>
|
|
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#nvidia-cloudxrjs"><span>NVIDIA <wbr/>CloudXR.js</span></a><ul><li><a href="#🖥️-compatible-server-applications"><span>🖥️ <wbr/>Compatible <wbr/>Server <wbr/>Applications</span></a></li><li><a href="#🥽-compatible-client-devices"><span>🥽 <wbr/>Compatible <wbr/>Client <wbr/>Devices</span></a></li><li><a href="#🚀-getting-started"><span>🚀 <wbr/>Getting <wbr/>Started</span></a></li><li><a href="#📚-documentation"><span>📚 <wbr/>Documentation</span></a></li><li><ul><li><a href="#client-configuration"><span>Client <wbr/>Configuration</span></a></li><li><a href="#session-api"><span>Session API</span></a></li><li><a href="#networking-setup"><span>Networking <wbr/>Setup</span></a></li><li><a href="#troubleshooting"><span>Troubleshooting</span></a></li></ul></li><li><a href="#📄-licenses"><span>📄 <wbr/>Licenses</span></a></li><li><ul><li><a href="#open-source-dependencies"><span>Open <wbr/>Source <wbr/>Dependencies</span></a></li><li><ul><li><a href="#third-party-libraries-bundled-within-cloudxrjs"><span>Third-<wbr/>Party <wbr/>Libraries <wbr/>Bundled within <wbr/>CloudXR.js</span></a></li><li><a href="#peer-dependencies"><span>Peer <wbr/>Dependencies</span></a></li></ul></li><li><a href="#cloudxrjs-license"><span>CloudXR.js <wbr/>License</span></a></li></ul></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">CloudXR.js SDK Documentation - v6.0.0-beta</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|