← escapethebackrooms.us

// build log

Devlog

The open technical log for escapethebackrooms.us — a browser Backrooms game built in the open. This page tracks how it's actually made and what changed, in plain technical terms. No hype, no roadmap; just the build and the changelog.

The stack

Everything ships as hand-written HTML/CSS/JS with Three.js vendored in and loaded through an import map — there is no bundler, no framework, and no compile step. You can read every line that runs by viewing source. The whole site is static and deploys by pushing to main.

What's live right now

The Lobby live

The landing page (/) — a fluorescent VHS holding page for Level 0.

Level 0 prototype

/experience/ — an on-rails descent through instanced cell-grid corridors. The whole level renders in roughly four to six draw calls (floor, ceiling, void-facing walls, and light panels are each one InstancedMesh), with a single hand-written fused GLSL "VHS" pass on Three's stock EffectComposer. Textures are drawn to canvas at runtime, so the image payload is effectively zero. An early prototype.

Graybox sandbox testbed

/experience/sandbox/ — the deliberately-ugly movement testbed. A recursive-backtracker maze you free-walk: pointer-lock + WASD on desktop, a virtual stick + drag-look on touch, with per-axis grid-cell collision and wall-sliding. Walls are a single InstancedMesh, so it holds a high frame rate regardless of maze size.

CYOA spike parked

An unlinked choose-your-path interaction prototype (/experience/cyoa/), kept on disk for its drag-look code.

How it's built

Changelog

2026-07-12 — Repo cleanup
2026-06-14 — Sandbox fix
2026-06-10 — R1a: free-walk sandbox
2026-06-08 → 09 — Docs ↔ code reconciliation
2026-06-04 — Tooling + a parked spike
2026-05-31 — Level 0 rebuilt
2026-05-30 — Project start

Open source & licensing

This project is built in the open. The split is deliberate:

Short quotations from and descriptions of A24's Backrooms (2026) appear for criticism and commentary (fair use); that film remains the property of its rights holders. Full terms live in the repository's LICENSE and README.