
The Short Version
裏路地 means "back alley", and that's the whole pitch: a nighttime Tokyo you can just walk around in. No quests, no score, no destination. You type a name, step into the streets, and wander — past konbini, vending machines, tiny bars with their lanterns on, a train rattling over a level crossing somewhere behind you.
It renders like a PlayStation 1 game on purpose: 320 pixels tall, a 15-bit palette, ordered dithering, wobbly low-poly everything. That look hides a lot, and it also happens to be exactly what Tokyo at 1am feels like in my memory.
Real Streets, Not Made-Up Ones
The interesting part is where the city comes from. Uraroji pulls real map data out of OpenStreetMap — building footprints, street geometry, how many floors a building has where someone mapped it, which ground floor is a convenience store and which is a ramen place — and builds the district from that.
The first real area is Ikebukuro's east exit. There are a few more — a low-rise housing pocket by the Kanda river in Nakano, bayside warehouses in Ōta, a riverside estate in Adachi — and dropping a new pin in the editor publishes that area for everyone to walk.
Getting from "polygons in a database" to "a street that feels like Tokyo" turned out to be most of the project. A konbini on the ground floor of a three-storey building is a tenant: it gets one floor of shelves, and the floors above become someone's flat or an office with its own furniture and its own window light. Corners have to bend around curved streets. Station entrances need to be where the actual stairs are. I ended up with a folder of research notes on Tokyo street widths, sign proportions, shopfront depth and crossing equipment, each one sourced, because "it looks about right" stops being good enough very quickly once you're standing in it.

You Can Go Inside
Windows aren't painted on. Every building is built with actual wall panels around real openings, so the bookshop you look into through the glass is the same bookshop you walk into: shelves, a counter, stock, a back room. There are 42 kinds of room — homes, offices, cafés, laundromats, arcades — each furnished at real-world sizes (tables at 72 cm, doors you can actually fit through). Look at a door and press E and it slides open. If there's room for a stairwell, there are real stairs up through the floor slabs.
It's Alive (A Bit)

On top of the static city there's a small simulation: commuter trains that stop at stations, cars that follow each other and stop at red lights and lowered crossing gates, and a few hundred pedestrians who cluster on shopping streets, wait for the green man and stop to window-shop. Traffic drives on the left. Every signalled junction runs its own light cycle.
There's weather and a night sky, and if you're an admin you can scrub the time of day or make it rain for everyone at once.
Other People
You're not necessarily alone. There are rooms you can join to walk the same streets as friends, with chat, and accounts so your name is yours. Doors you open, open for everyone in the room. It's a deliberately quiet sort of multiplayer — more "going for a walk together" than anything competitive.
Under the Hood
- Three.js + TypeScript, built with Vite. Around 25,000 lines so far.
- OpenStreetMap for geography; Clipper for the polygon maths that turns footprints into buildings and lots.
- Node + WebSockets for rooms and chat, SQLite for accounts, sessions and a shared cache of areas (gzip, ETags, the lot).
- Everything static is batched and merged into as few draw calls as possible, which is the only reason a full district with furnished interiors runs in a browser at all.
- Deployed as a single Docker container from my own Gitea through Portainer.
It started as "what if I could just walk around Tokyo at night again" and became the biggest thing I've built. Still very much in progress — the current focus is mood: darker streets, warmer pools of light, the kind of detail that rewards stopping to look.
Leave a comment