Mumbai Local: when the AI runs the trains, and you are the chaos

Community Article Published June 13, 2026

Mumbai Local on Hugging Face

⚠️ FAIR WARNING: You need HF Pro to be able to play the game. Free ZeroGPU quota wipes off in a couple of turns and the fall back code takes over - unmanaged.

What happens when AI runs real systems?

That's not a rhetorical question — it's the literal brief of the Thousand Token Wood track at the Build Small Hackathon: build an app where the AI isn't a sidekick or a chatbot bolted on the edge, but the thing that's actually load-bearing. Take it out and the whole thing falls down.

Mumbai Local does exactly that — and it does it by flipping a genre on its head.

CleanShot 2026-06-13 at 23.45.45@2x

If you grew up on Rollercoaster Tycoon, Airline Tycoon, or any of those gloriously fiddly strategy sims, you know the feeling: you are the operator, taming a system into order. Mumbai Local flips the script. Here, the AI is the player. A small NVIDIA Nemotron dispatcher is handed the keys to Mumbai's lifeline — the Western Railway local train network — and told to keep it running through a monsoon evening.

And you? You're the chaos goblin.

Throw cows onto the tracks. Fail the signals. Organize a festival right at rush hour. Wave a VIP special through and watch the timetable buckle. Then night falls, the monsoon comes down, and the platforms jam shut in Peak Rush. The AI has to survive 20 rounds of whatever pandemonium you can unleash, one turn at a time.

Defeat the dispatcher, young Padawan — or it's AI-pocalypse for the rest of us.

Why a train game?

Honestly? I've always wanted to build a game about the Mumbai train system. The Thousand Token Wood was the perfect excuse — a challenge that demanded something fun and engaging, but that also tested the real mettle of an AI.

But sit with it a little longer and it stops being just a game.

So many critical systems — the Mumbai local very much among them — run on people with deep, hard-won systems knowledge. The ones who understand the thing in their bones, who built the processes everyone else follows, who quietly bring order to a world that is always tipping toward chaos. They are rare. And they're getting rarer — which is exactly why, the world over, these systems struggle to find anyone to replace them.

AI offers a brighter, almost seductive alternative: learn that deep knowledge, and let the machine take the critical decisions.

It'll work — with trade-offs. The AI may never be as brilliant as the system-builders who taught it. But it will, reliably, beat mediocre. That's a real bargain, and a lot of the world will take it.

And then comes the part that keeps me up at night. One day the system-builders are gone. The new generation never bothered to learn the system, because the AI already runs it. And at some critical juncture, when it really matters — who audits the AI?

Mumbai Local is a small, playable way to feel the weight of that question. You're not just trying to win. You're stress-testing the thing we're all about to hand the controls to.

Under the hood

The "AI is load-bearing" promise had to be real, not theatre. So:

  • A deterministic Python rules engine owns the map, the train physics, the crowds, and the scoring. The AI never invents the railway — it only chooses from the legal moves the engine offers each turn. There's no hand-written fallback policy: if the model fails, the dispatch fails. The world continues to run... unmanaged.
  • The dispatcher is Nemotron-3-Nano — a 4B model — running on Hugging Face ZeroGPU. It runs fully on-GPU, server-side, attaching a GPU per turn and releasing it when idle. The game is turn-based, so nothing ever waits on model latency. Small model, real stakes.
  • The front end is a custom PixiJS pixel-art UI on a Gradio Server — not a stock Gradio layout, but a hand-built renderer for the entire Western Line. All the logic stays in Python; the browser just draws what it's told.
  • Every asset was generated with ChatGPT & Codex — the background plate, the sprites, the announcement voices.
  • The backend was built with Claude Code. Claude Code also orchestrated the deploy, and was the primary harness.
  • It runs entirely on the Space — fully local to ZeroGPU, no external API calls.

CleanShot 2026-06-13 at 23.46.10@2x

CleanShot 2026-06-13 at 23.46.16@2x

A balancing curiosity

Balance was tuned by hand, and pre-balance testing turned up my favorite story of the whole build.

I evaluated two dispatchers: MODEL A and Nemotron-3-Nano. In the automated headless test harness, it wasn't close — Model A kept winning, Nemotron kept losing. On paper, Model A was the obvious pick. Then I put a human on the other side of the board.

The script flipped completely. Nemotron started winning. The other model started losing The nano model read live human mischief — the improvised, spiteful, creative chaos a person brings — far better than the other model read a fixed script.

Play it

The dispatcher is waiting. The monsoon's coming. Go be the chaos goblin.

CleanShot 2026-06-13 at 23.46.56@2x

Tip: Try clicking the station names multiple times. ;)

Mumbai Local on Hugging Face

Community

Sign up or log in to comment