Skip to main content
Demonstrations / 03 Pale Signal
Proving ground for a cross-platform WebXR framework

Write the product once. Add platforms to the framework.

A WebXR discovery game that runs in the browser on a standalone headset with nothing to install. It was built to prove the Reality Collective WebXR framework, not to be a product. The point of pride is how little code the game needs to run on every platform the framework supports.

Solution overview

What it is and how it was delivered.

The player wakes in a featureless void. Motion generates energy, energy unlocks understanding, and understanding reveals the world in stages until enough machinery is fabricated to scan the surroundings. Hands and controllers are equals, and the guide and status panels sit in the world rather than on a screen. A playable vertical slice, tuned on device.

Built by ZenithMoon Studios as a proving ground for the Reality Collective WebXR packages. The Reality Toolkit, grown from its beginnings in the Microsoft MRTK 2 (also architected and built by Simon Jackson), gave a leading game engine a truly cross-platform XR architecture: an application is written once against a service framework, and each platform is a provider plugged in underneath. The Reality Collective applies the same architecture to WebXR, and this game is the evidence that it holds on a real title.

  • The framework carries the platformThe service framework and the input, interactions, environment and UI extensions packages absorb every platform difference. The project holds only the game.
  • Portable by measurementWith the principle of building content, not an engine, the project is measured by how little platform-specific code it contains.
  • Tested on the deskAll game state lives in plain services on the framework. The test suite runs with no headset, emulator or browser.
  • Seconds from commit to headsetNo build, install or app store between a code change and a play test on real hardware.
  • Published for anyone to build onThe five packages proven here are open sourced under Reality Collective.
Published

Open it yourself.

Deployed by continuous integration on every release, so the link always carries the current build.

Screens

As it looks.

Captured from the running system.

Goals

What it set out to do.

  1. 01Prove the Reality Collective WebXR framework on a real title, all of its packages together and on device.
  2. 02Keep the product small. Every line of game logic free of engine code, so it can be tested on the desk and run on another host without change.
  3. 03Make adding a platform a framework task, never a product task.
  4. 04Ship to one headset first and judge the release on real hardware.
  5. 05Measure portability rather than assert it, and keep the number in the repository.
  6. 06With WebXR, put a code change on a headset in seconds, with no build, install or app store between a commit and a play test.
  7. 07Treat the story and the economy as designed systems with their own documents, not as side effects of the code.
Capabilities

What it does.

01

A discovery loop built on motion

Movement generates energy. Energy unlocks understanding. Understanding reveals the world in stages, until the player fabricates enough machinery to scan their surroundings.

02

Hands and controllers as equals

Ray and poke soft buttons (near and far interaction by default), a scripted reveal of the player’s own hands, and a heads-up display that stays readable in stereo, all through the framework’s input and interactions packages.

03

A spatial interface

Guide and status panels placed in the world, driven from authored markup rather than compiled screens, on the framework’s UI extensions package.

04

Framework underneath, game on top

Eight services hold all game state with no engine imports. Seven thin bridges connect them to the host through the framework’s contracts.

05

Add a platform, not a port

A new engine or headset is a new provider inside the framework. The game is not rebuilt, rewritten or forked to reach it.

06

Seconds from commit to headset

A development tunnel with a short code and a QR for the headset, then static hosting through continuous integration. On-device logs stream to a local relay.

07

Designed, not accreted

Numbered requirements with acceptance criteria, a narrative design, an economy design with its own safety laws, and an audit of where the code breaks its own architecture.

How it fits together

Build the product against the framework. Add platforms to the framework.

The product talks only to the framework’s contracts. Each platform is a provider beneath them.

  1. ProductGame state, rules, story, economy, tests
  2. Framework contractsService framework, input, interactions, environment, UI extensions
  3. Platform providersOne binding per engine or headset, inside the framework
  4. Light-up featuresPassthrough, hand tracking, layers, when present

A required capability is never hidden behind an interface with one implementation. An optional one always is, and is gated at runtime. Either way, the game never names a platform.

Delivered

What it delivers.

Capabilities and measurements only.

Portability

Host-free, by measurement

The lines that name a host are counted, not estimated, and the report lives with the code. The framework carries everything else.

73 of 5,112 lines touch the host
Testing

Tested on the desk

Every service is exercised by unit tests that need no headset, emulator or browser.

62 tests, no headset needed
Framework

Five packages proven and published

The service framework and the input, interactions, environment and UI extensions packages proven here are published under Reality Collective for anyone to build their own title on.

Reality CollectiveReality Collective on GitHub
Deployability

A proven delivery platform

All example projects built on the framework include a robust deployment pipeline. Shipping to various platforms is streamlined and automated.

Automated deployment pipeline, with staging and production environments
Solutions

Where this sits in the practice.

The practice pages that describe the offers behind it.

Other demonstrations

More to see.

Pale Signal

See it running.

The current build is published and opens in a headset browser. A guided session can be arranged by email.