# CloudXR.js SDK Documentation - v6.0.0-beta

# NVIDIA CloudXR.js

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.

The SDK offers a complete solution for WebXR 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.

> Note: This is an early access beta release of CloudXR.js. Features and APIs may change in future releases.

## 🖥️ Compatible Server Applications

CloudXR.js works with any OpenXR-compatible application running on a local or remote server with the CloudXR Runtime, including:

- NVIDIA Isaac Lab - A unified and modular framework for robot learning that aims to simplify common workflows in robotics research.
- OpenXR applications - Any OpenXR-compatible application running with the CloudXR Runtime.

## 🥽 Compatible Client Devices

Our current release is optimized for Meta Quest 3.

## 🚀 Getting Started

We provide several web examples to integrate with CloudXR.js. Please follow our Getting Started Guide.

## 📚 Documentation

### Client Configuration

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 Client Setup Guide for configuration examples and best practices.

### Session API

Learn how to manage CloudXR streaming sessions, including connection lifecycle, configuration options, and event handling. See Session API Guide for comprehensive API documentation.

### Networking Setup

Configure your network for optimal CloudXR streaming performance. We provide example configurations for firewall rules, WiFi optimization, and WebSocket proxy deployments. See Networking Setup Guide for sample configurations and recommendations.

### Troubleshooting

Resolve common issues with CloudXR.js applications, including connection problems, streaming issues, and performance optimization. See Troubleshooting Guide for solutions to common problems.

## 📄 Licenses

### Open Source Dependencies

CloudXR.js incorporates third-party open source libraries. The following dependencies require attention for license compliance:

#### Third-Party Libraries Bundled within CloudXR.js

- webrtc-adapter - WebRTC compatibility shim for cross-browser support. Licensed under BSD 3-Clause License.
- opentelemetry-js - An observability framework for creating and managing application telemetry including traces, metrics, and logs. Licensed under Apache License 2.0.

#### Peer Dependencies

- gl-matrix - Mathematics library for graphics programming. Licensed under MIT License.
- long.js - 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 Apache License 2.0.

For a complete list of all dependencies and their licenses, refer to the `package.json` file in the root directory.

### CloudXR.js License

This project is licensed under the NVIDIA CloudXR License.

> Important: This is an evaluation license for internal test and evaluation purposes only. For commercial use, please contact NVIDIA for appropriate licensing terms.

> Please review the license terms before using this SDK in your projects.