A vole-rescue puzzle game set in Stockholm. Guide a crowd of sorkar — small, round Swedish voles in knitted hats — from the entry hatch to the exit by assigning skills that reshape the terrain. Save the required percentage before the timer runs out.
Built with Three.js on top of a fully deterministic, fixed-step simulation.
The game is a static web app. Run it locally:
npm install
npm run devThen open the printed URL in your browser.
| Hotkey | Skill | What it does |
|---|---|---|
| 1 | Climber | Scales vertical surfaces indefinitely |
| 2 | Glider | Deploys a leaf; nullifies fall damage |
| 3 | Sentinel | Plants and blocks; reverses any sork that touches it |
| 4 | Bridger | Lays 12 planks at a 45° rise |
| 5 | Basher | Tunnels horizontally |
| 6 | Miner | Tunnels diagonally down |
| 7 | Digger | Tunnels straight down |
| 8 | Sapper | 5-second fuse, then detonates, removing terrain and itself |
Global controls: pause, spawn-rate ±, nuke-all, 1×/2×/4× time scale, and full deterministic rewind.
Ten levels across Stockholm, each with its own palette, ambience, and a mechanic unique to it — from the alleys of Gamla Stan to the top of Kaknästornet.
- Terrain is an authoritative 1-bit CPU bitmask (
Uint8Array, one bit per pixel). All collision, walking, digging, and destruction resolve against it. - Simulation runs at a fixed 60 Hz, fully deterministic, integer-only state — which is what makes rewind and replay validation possible.
- Rendering is Three.js with an orthographic camera; the mask is composited with material maps on the GPU, with partial texture uploads on destruction.
- Every level ships with a recorded replay that provably completes it; the replays run headless in CI.
npm run dev # dev server
npm run build # production build
npm run test # headless sim tests: determinism, rewind, fuzz, replaysThis game was generated from a single build prompt, preserved verbatim in PROMPT.md. Feel free to reuse or remix it for your own build.
See CREDITS.md. Released under the MIT License.