HALL PASS
Neon-noir twin-stick curse survival. Four students with distinct cursecraft, ten haunted rooms across one impossible school night, endless curses, and a signature Domain when pressure peaks. Three.js, zero external assets, plays on phones (twin virtual sticks), desktop (WASD + mouse) and gamepad.
npm install
npm run dev # http://127.0.0.1:8010
npm test
npm run build:prod # dist/index.html + dist/bundle.js, and dist-single/hallpass.html (single file, opens from disk; not deployed)
Controls: WASD move · mouse aim · Shift / right-click Flash Step · Space Domain · Esc pause · M mute · 1-2-3 pick techniques. Phone: left thumb moves, right thumb aims, tap the right side to Flash Step, on-screen Domain button.
Effects are baked from a licensed Envato Elements FX pack (source clips live in the git-ignored assets-src/). The current HD pipeline is scripts/bake-fx-hd.py; preserve the authored effects and read the current handoff before rebaking.
Working on this (humans and agents)
Start with the current session handoff
and the development checkpoint.
Gameplay contracts live in docs/MECHANICS.md; audio authoring starts with
docs/MUSIC-ENGINE.md. Graphics review pages are /showroom.html (cast and
environment) and /ladder.html (isolated graphics experiments).
Read in this order:
| File | What it is |
|---|---|
CLAUDE.md |
The rules. Auto-loaded into every agent session — non-negotiables, the traps that have actually bitten, and how to prove a change works here. Keep it short. |
docs/MECHANICS.md |
Systems reference. Each entry says what must stay true and why. Update it in the same commit that changes a system. |
test/invariants.test.js |
The enforcement. Pins the tuned constants that no other test guards, and fails with an explanation rather than a diff. |
HANDOFF.md |
History — architecture, asset pipeline, and what happened when. |
Docs drift and tests do not, so the split is deliberate: MECHANICS.md
explains the decision, invariants.test.js makes changing it deliberate.
Documentation
Everything in writing is published at https://hallpass.cc/docs/ — the
player FAQ, the full systems reference, the music engine notes, the 3D
pipeline, the dated session log, the ideas file, the briefs, and a gallery of
every capture in docs/. It is generated at build time by
scripts/render-docs.mjs from the markdown in this repo, so the site can
never drift from the files: edit the .md, build, and the page follows.
The in-game CREDITS screen has a DOCS & FAQ button that opens it.