A spatial audio engine built for wasm, running the desktop two-thread model.
| Cross-origin isolated | checking |
|---|---|
| SharedArrayBuffer | checking |
| Secure context | checking |
| Service worker controlling this page | checking |
Open the playground Open it in VR Open the minimal example
The playground is the engine's demo scenes with three.js visuals: localization, the 26-speaker channel walk, occlusion, directivity, the underwater boundary and a blind A/B/X test. The XR page is the same scenes with your head in them: in an immersive-vr session the viewer pose becomes the engine's listener pose every frame, so a source stays where it is in the room while you turn. It needs a headset, and it says so and sends you back here if it finds none. The minimal example is one source orbiting your head and nothing else. Headphones for all three.
The engine needs SharedArrayBuffer, which every browser gates behind cross-origin
isolation. GitHub Pages cannot send the two headers that grant it, so a service worker adds them
to every response it serves. The cost is one automatic reload on your first visit, which is why
the answers above can flip a moment after the page opens.