The aim of this project is to create a new backend for Pi games that runs efficiently in modern web browsers and offers significant improvements over the standard piebiten backend:
📦 Smaller Binary Size
At least 2× smaller.wasm output
🔊 Better Audio
Minimal latency — as low as 20 ms (compared to 60 ms in piebiten)
Glitch-free playback — thanks to audio processing in a high-priority, separate audio thread
🧪 How It Works
These improvements are possible thanks to:
Audio Worklet API – the browser-native API for real-time, low-latency audio processing
SharedArrayBuffer - a high-performance way to exchange data between the main thread and audio processor in the browser.
Writing the code directly in JavaScript
Reducing the number of dependencies
🚧 Status
The project is ready to use. Most features are ready. Some platforms are not supported yet though:
graphics rendering using Canvas2D
keyboard support
gamepad support
mouse support
debug mode support
desktop web browsers - Chrome, Firefox, Edge, Safari etc.
mobile web browsers - virtual keyboard and gamepad support
audio support
3x smaller WASM binary - Snake game is 3 MB (0.9 MB after gzip) instead of 10 MB
customizable template - developer can change all static files - HTML, CSS, JS etc.