Pedestrian simulator

Walky

Draw walls, mark a goal, paint a crowd, and watch it find its way.

A 2016 Java and Swing school project by Pascal Andermatt and Jan Huber, rebuilt twice over: a native iOS app, and a page that runs the whole simulation in your browser with no backend behind it.

Coming to the App Store Soon Try it in your browser

Built with love in Zurich, Switzerland 🇨🇭

Live — 160 pedestrians, routing themselves, right now.

What it does

A room, a crowd, and no instructions.

Every pedestrian routes itself. Nothing is scripted, and nothing is sent anywhere.

Draw the world

Walls, borders and goals, placed with a pointer or a finger. Routes come from Dijkstra over a visibility graph, rebuilt from the geometry every time you change it.

Paint a crowd

Each pedestrian picks its own next step and takes the colour of the goal it is heading for. It turns black when it arrives — the way the 2016 original drew it.

Share the map as a link

The whole scenario is deflated into the URL fragment. A fragment is never sent in the request, so no backend sees your map — because there is no backend.

On iPhone

Draw it, measure it, or import it.

  • Walky on an iPhone, blueprint theme: a pale crowd streaming through a gap between a blue and a cyan wall on a navy ground, heading for a yellow goal below.

    Draw a room, paint a crowd, and watch two hundred people find the gap.

  • Walky on an iPhone showing Zurich's main station imported from OpenStreetMap. An orange line runs across the map between two marked points and a blue line loops the long way around the station, labelled 276 metres on foot against Apple 522 metres, 1.89 times.

    Price the walk between two points: 276 m across the map, against Apple Maps' 522 m on real pavements.

  • Walky on an iPhone showing Apple Park: the ring campus in Cupertino, with the surrounding buildings imported from OpenStreetMap as coloured walls and a crowd of green pedestrians spread across the courtyard.

    Type One Apple Park Way, Cupertino — or any address — and walk a crowd through it.

The Swift model is checked against the TypeScript one bit for bit — the same crowd, the same arithmetic, on both. How that works