CloudXR.js#

CloudXR.js enables developers to build enterprise web applications for streaming high-performance VR and AR content from OpenXR compatible server applications (built with CloudXR Runtime). Built on NVIDIA CloudXR technology using the WebRTC stream protocol, this library provides seamless integration between web browsers and remote rendering systems, allowing users to experience immersive 3D applications directly in their browser.

CloudXR.js offers a complete solution for immersive web (WebXR) streaming, featuring session lifecycle management, optimized networking, and cross-platform compatibility. You can create rich VR/AR experiences that leverage remote rendering while maintaining the accessibility and deployment model of modern web applications. While we provide samples for WebGL and React Three Fiber implementations, CloudXR.js is framework-agnostic and can be integrated with any WebXR-compatible stack.

As of CloudXR 6.1.0, CloudXR.js is generally available and compatible with CloudXR Runtime 6.x.

Requirements#

Refer to CloudXR.js Requirements for supported devices, development requirements, and hosting requirements.

CloudXR.js works with any OpenXR-compatible application built with CloudXR Runtime, including NVIDIA Isaac Lab, NVIDIA Omniverse, LÖVR, and custom OpenXR applications.

Important

Server Configuration: CloudXR.js requires CloudXR Runtime to be configured with device profile set to auto-webrtc mode. Refer to Network Setup for port configuration and firewall requirements.

Getting Started#

For a step-by-step workflow for your first CloudXR.js application, refer to Getting Started with CloudXR.js.

Tip

The easiest first server path is the LÖVR sample. Start with Quick Start Guide and use the End-to-End Example server setup instructions as needed.

Key Capabilities#

  • Session API: Manage connection lifecycle, signaling, media configuration, and stream events. Refer to Session API.

  • WebXR Integration: Native integration with the WebXR Device API for immersive VR/AR experiences in the browser.

  • Flexible Deployment: Run in HTTP mode for local development or HTTPS mode for production and headset validation. Refer to Client Setup Guide and WebSocket Proxy Setup.

  • Networking Controls: Configure NAT, proxy routing, STUN/TURN, and firewall settings. Refer to Network Setup and Session API.

  • Performance Tuning: Tune frame timing, resolution, foveation, and bitrate for your target devices. Refer to Performance Guide.

  • Troubleshooting: Diagnose signaling, media, and device issues with practical fixes. Refer to Troubleshooting.

  • Telemetry: Optional anonymous telemetry collection for service improvement. Refer to CloudXR.js Telemetry.

  • Client Framework Agnostic: Works with vanilla WebGL, Three.js, React Three Fiber, or any WebXR-compatible framework.

  • Cross-Platform: Single codebase runs on Meta Quest 2/3/3S, Pico, and desktop browsers without modification.

HTTP and HTTPS Modes#

CloudXR.js supports two connection modes:

HTTP Mode (Development):

  • Simplest setup for local development

  • Direct WebSocket connection to CloudXR Runtime

  • Requires browser flag on Quest to allow insecure origins

  • Not supported on Pico 4 Ultra

HTTPS Mode (Production):

  • Required for production deployments

  • Requires WebSocket SSL proxy (HAProxy, nginx, etc.)

  • Works on all supported devices including Pico 4 Ultra

  • Uses TLS certificates for secure communication

See WebSocket Proxy Setup for WebSocket proxy setup and Network Setup for general network requirements.

Sample Applications#

Sample applications are available on GitHub:

  • Simple WebGL Sample: Minimal implementation showing CloudXR.js integration with vanilla WebGL. Refer to Simple WebGL Sample Workflow.

  • React Three Fiber Sample: Advanced sample using React and Three.js with UI components for connection management. Refer to React Sample Workflow.

See Sample Applications for implementation details.

Resources#

Licensing#

CloudXR.js includes third-party open source dependencies.

  • Bundled dependencies include components such as WebRTC compatibility and telemetry libraries.

  • Peer dependencies include graphics/math support libraries used by host applications.

Refer to the CloudXR.js package metadata and license files in your release artifact for the authoritative dependency and license list.

Note

The public sample repository is intentionally lightweight. Each sample contains a concise README with links back to this documentation site for full setup and workflow guidance.

Documentation Contents#