bw_audio on the web

A spatial audio engine built for wasm, running the desktop two-thread model.

Cross-origin isolatedchecking
SharedArrayBufferchecking
Secure contextchecking
Service worker controlling this pagechecking

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.