Skip to content

Project Overview

XRXP is an open-source XR experiment platform for teams that need both reliable data capture and operational control.

What the platform does

XRXP combines:

  • a Unity SDK to record sessions and stream telemetry
  • a WebSocket ingestion service for live device traffic
  • a PostgreSQL data store for durable history
  • a dashboard for experiment operations, review, and control

Core concepts

Experiment

An experiment is the top-level container used to group sessions, participants, devices, and analysis.

Session

A session is one recorded run of an experience. Sessions accumulate log events, internal events, media events, questions, and statistics.

Device

A device is a connected runtime, usually a Unity build. Devices can report metadata, stream exchange status, and receive control instructions.

Operator

An operator uses the dashboard to approve users, create tokens, inspect data, and control active devices.

End-to-end flow

  1. A Unity app starts a session and writes traces locally.
  2. If online mode is enabled, the app also streams messages to the WebSocket service.
  3. The ingestion service buffers messages in Redis.
  4. Batched workers persist data into PostgreSQL.
  5. The dashboard reads history from the REST API and listens to live updates over WebSocket.

Real-time versus historical data

  • Historical data lives in PostgreSQL and is shown through the API: experiments, sessions, event logs, exports, users, scenes, and stored exchange state.
  • Real-time data arrives through WebSocket subscriptions: connected device status, live charts, exchange status, and in-flight control activity.

Why teams self-host XRXP

Most teams deploy XRXP close to their lab or study environment so they can:

  • keep ownership of participant data
  • run on local infrastructure when internet quality is variable
  • customize tokens, endpoints, and retention policies
  • integrate their own Unity builds and workflows