Hi all! DESIGN OFFICE NINE here, a small web studio in Japan. This is NINE LOOPS: SUBWAY, a loop-escape game built with three.js.
Play: NINE LOOPS: SUBWAY|NINE CITY
Free, no install, PC + mobile, English / Japanese.
The rules
You’re stuck in a subway tunnel that keeps repeating.
See an anomaly? Turn back. Nothing wrong? Keep going.
Get it right 9 times in a row to find OCHIYO, the girl in the red hood. Get it wrong and you start over.
It’s inspired by The Exit 8, but the anomalies here are mostly the residents of the tunnel. NINE CITY is a city made from discarded emotions, and its residents are echoes of animals that were hurt by people. Some of them are friendly, some aren’t, and telling them apart is the game.
How it’s built
- Plain three.js + ES modules, no framework. One HTML file and a folder of GLB assets.
- The tunnel is a fixed track of segments: a sign straight, S-curves, then a 42 m “anomaly straight”. Each lap swaps in a new encounter. Turn around and walk back far enough, and it counts as “turned back”.
- While you walk the current lap, the next encounter and its characters load in the background, so laps switch without a loading screen.
- Characters and props were built in Blender, Tripo and Mixamo, and animated with AnimationMixer.
- A custom ShaderPass gives it the CRT / camcorder look.
- There’s an online leaderboard. The server checks every lap, so posting a fake time with curl won’t work

Initial load is about 17–20 MB, so it may take a few seconds on mobile data.
The music is an original track by SEVEN, the main character: “Click-Clack Snap feat. OCHIYO”.
I’d love feedback, especially on performance on your devices and whether the anomalies feel fair. Happy to answer questions about any part of it!