OPEN SPACE.EXE — software-rendered FPS engine
Author — from scratch, driving an AI
A DOOM-style (BSP) engine with no WebGL: two render backends (8-thread CPU via SharedArrayBuffer, WebGPU), voxel sprites, hand-authored levels.
CPU ↔ WebGPU pixel parity, measured
The problem
A DOOM-style engine in the browser, without WebGL, means rasterising everything yourself: projecting the geometry, mapping textures, depth-sorting, all in real time on a JavaScript CPU. Written naively, that pipeline can't keep up.
The approach
A real BSP pipeline: binary space partition, depth sorting with no z-buffer. Two interchangeable backends render the same world pixel-for-pixel, a measured parity: a CPU rasteriser spread over 8 threads via SharedArrayBuffer, and a WebGPU/WGSL backend. Voxel sprites, hand-made levels built through a RoomBuilder authoring layer.
Preview

Highlights
- Software BSP engine written from scratch, no WebGL
- Two backends: 8-thread CPU (SharedArrayBuffer) and WebGPU/WGSL
- CPU ↔ WebGPU pixel parity, measured
- Voxel sprites, hand-made levels
- RoomBuilder authoring layer: rooms, connections, automatic winding
Stack
- TypeScript
- WebGPU / WGSL
- Web Workers
- SharedArrayBuffer