Introduction: The Rise of Collaborative XR on the Web
In the evolving world of extended reality (XR), the ability to collaborate in real-time within shared virtual or augmented environments is becoming essential—whether for remote work, design reviews, education, or interactive exhibitions. While platforms like Spatial and Mozilla Hubs offer hosted solutions, developers looking for a lightweight, self-hosted, and customizable alternative often run into complex architecture challenges.
That’s where Shared Spaces comes in—an open-source project that makes building WebXR multiplayer environments incredibly accessible. It provides a simple yet powerful framework that uses WebSockets, WebXR, and Three.js to sync headsets, hand tracking, and avatars between users in real-time, all directly in the browser.
I posted a small description on Quest browser's new experimental "shared spaces" feature: https://t.co/ylij2UAO3F
— @cabanier@arvr.social (@rcabanier) June 3, 2025
It automatically creates a shared coordinate space for headsets in the same room.
Here's a small recording that shows it in action: pic.twitter.com/qq05mVVhB6
What is Shared Spaces?
Shared Spaces is a WebXR-compatible, open-source multiplayer platform designed for collaborative XR environments. Created by Christophe Cabanier, a long-time contributor to web-based XR initiatives, this project allows multiple users to join a shared room and see each other’s position, orientation, and hand gestures in real time—all without installing anything beyond a browser.
Key features:
- Browser-based (no installs)
- WebXR support (VR headsets like Quest work out of the box)
- WebSocket-based server for low-latency data transfer
- Lightweight avatar and controller tracking
- Three.js for rendering 3D scenes
Why Shared Spaces Matters?
Shared Spaces fills a crucial gap in the ecosystem: lightweight, self-hosted WebXR multiplayer. Most WebXR demos focus on single-user experiences. Shared Spaces gives developers a practical foundation to explore use cases like:
- Virtual exhibitions
- Collaborative design sessions
- Remote team meetings
- Educational or museum AR/VR setups
You can host your own server or modify the codebase for deeper integrations—ideal for companies looking to build branded XR apps without relying on third-party platforms.
How It Works
Shared Spaces uses:
- WebXR for accessing XR hardware (e.g., Quest, Vive, browser-based AR).
- Three.js for rendering immersive 3D environments.
- WebSockets to send real-time updates (headset pose, hand position, etc.) to all connected clients.
- Node.js + Express to run the backend WebSocket server.
Each client tracks their own pose and sends it to the server, which rebroadcasts it to all others in the room. This keeps the system lightweight, fast, and suitable even for mobile devices or standalone headsets.
Developer Experience
For developers, getting started is surprisingly simple:
- Clone the repo:
git clone https://github.com/cabanier/shared-spaces.git
- Install dependencies:
npm install
- Start the server:
node server.js
- Open the app in your WebXR-supported browser
No Unity, Unreal, or heavy backend—just clean JavaScript and real-time 3D.
Use Cases and Applications
Shared Spaces can be the foundation for:
- Bespoke branded virtual rooms
- Training simulations
- Augmented reality tours using WebAR
- Virtual showrooms for products or real estate
- Art installations or collaborative storytelling
For XR agencies and indie developers alike, this is a practical project to explore or extend.
Conclusion: Lightweight Multiplayer XR is Here
Shared Spaces is a great example of how powerful web-based XR has become. By combining the simplicity of Three.js with the power of WebXR and WebSockets, it allows any developer to create immersive, shared experiences in minutes.
If you’re exploring XR for collaboration, prototyping, or brand engagement—Shared Spaces offers a perfect starting point that’s both developer-friendly and future-ready.