Guide
How to read what you see
What the dots on the maps mean, what each page lets you do, and what its numbers measure. How the engine behind them works is on how it works.
Reading the map
The live demo and the replay draw the same map of Manhattan: drivers and riders as small marks, over map tiles that follow the site's light or dark theme. Drag to move, scroll or pinch to zoom. The counts under the map are what's on it at that moment.
- Waiting for a driver
- A rider who has asked and has no driver yet.
- A driver on the way
- A pickup a driver is heading to, joined to that driver by a thin line. The line is the match: watch how long they are.
- Driver with a rider
- On a trip, from pickup to drop-off.
- Idle driver
- Online and free, waiting where the last trip ended.
Drivers move between the positions the engine logged, on straight lines, so a car may seem to cut a corner. The routes hermod times follow the streets.
The live demo
Live streams a simulation running now on hermod's server: the morning of 13 January 2010, 07:00 to 10:00, with 6,000 drivers matched in 10-second batches, played ten times faster than it happened. A run lasts about 18 minutes, then the next starts with a new seed; there are five, played in turn.
- The check. On your first visit, Cloudflare asks you to prove you're a person, usually without a click. It lasts an hour in this browser.
- The status. Live means events are arriving. Connecting means the page is reaching the server. Offline means it can't, or the demo is showing as many viewers as it can; the replay works without the server.
- The clock is the simulated 2010 time, not yours. It moves ten seconds a second.
- Recent runs are finished runs, each checked by the invariant checker and then stored. Their numbers cover the whole run, the quiet start included.
The replay
Replay plays ten recorded minutes, 07:30 to 07:40, of the same 2010 morning with only 2,000 drivers, well short of what it needed. The two runs have the same seed and the same riders; only the matching differs.
- Greedy or Batched every 10 s switches between the runs at the same moment. Watch the lines from drivers to pickups: greedy's are longer.
- Play and Pause, and 1×, 10×, 30× for how many seconds of the morning pass each second.
- The slider jumps to any moment in the ten minutes.
- If your system asks for reduced motion, the replay waits for you to press Play.
The results
Results has every number hermod measured, each with the command that produced it and the files that hold it. Simulated results are medians over 10 seeds at each number of drivers, measured after a 30-minute warm-up. Load results come from one laptop that also ran the load generator, so they say what one machine managed, not the most hermod can do.
Words on this site
- Request
- A rider asking for a ride, at the time and place a 2010 taxi trip started.
- Offer
- hermod asking one driver to take one request. The driver accepts, declines, or doesn't answer in 15 seconds.
- Greedy
- Matching each request the moment it arrives to the driver who can reach it soonest.
- Batched
- Holding requests for a window, 10 seconds here, then matching them all at once with the Hungarian algorithm.
- Served
- The share of requests that ended in a completed trip, rather than cancelled or expired.
- Wait
- From a rider's request to their pickup, for riders who were picked up. p50 is the median: half waited less.
- Pickup ETA
- How long the driver needed to reach the pickup, by road, when they set off.
- Drivers (N)
- How many drivers are online. It's a model, so results come as curves over N.
- Seed
- The number that fixes every random choice in a simulated run. The same seed gives the same run, byte for byte.
- Event log
- One line per thing that happened: an offer, an answer, a pickup. Everything checked, stored or shown is read from it.
- Invariant
- A rule every run must keep, such as a driver never holding two rides. The checker reads the log and fails a run that breaks one.
Questions
- Is this real traffic?
- No. The requests are real 2010 taxi trips, replayed; the drivers are a model, and the map has no traffic.
- Why 2010?
- It's the last year whose published New York taxi records still give exact pickup and drop-off points; later ones give only zones.
- Can I request a ride?
- No. The public API only reads: nothing on this site can create a ride or move a driver.
- Why does the live page check that I'm human?
- The demo runs on a small home server. The check keeps bots from holding its streams, and it sets one cookie, described on the privacy page.