Fleet Rebalancing 2D — Demand-Predictive Shuttle Repositioning
Top-down 2D simulator of an autonomous transit-shuttle fleet: a greedy demand-weighted rebalancing pass repositions idle vehicles toward predicted demand hotspots before requests arrive, versus a purely reactive fleet that waits. Live wait-time, coverage and true repositioning-distance readouts, pan and zoom the grid.
A grid of 36 city zones cycles through morning and evening demand peaks, spawning ride requests as a Poisson process weighted by each zone's live demand. A small fleet of autonomous shuttles serves those requests — but the way idle vehicles spend their downtime is the whole experiment: in Reactive mode a shuttle simply parks wherever its last trip ended and waits to be summoned; in Predictive mode a greedy demand-weighted assignment recomputed every few seconds drives idle shuttles toward the highest-scoring under-covered zone before the next surge of requests lands. Watch the live average wait time, coverage percentage and cumulative repositioning distance to see the trade-off between proactive driving cost and passenger wait — the same trade-off transit-network operators tune when they decide how aggressively to rebalance an on-demand shuttle or micromobility fleet. This top-down 2D rebuild also fixes an accounting bug in the original 3D version's repositioning-distance counter (see "How it works" below) and adds drag-to-pan / scroll-to-zoom over the zone grid.
Top-down 2D view of an autonomous transit-shuttle fleet serving ride requests generated from a live rush-hour demand map. Toggle between a reactive fleet that waits for requests and a predictive fleet whose greedy demand-weighted rebalancing pass repositions idle vehicles toward forecast hotspots before the next surge; drag to pan and scroll to zoom over the zone grid. Also fixes an accounting bug in the original 3D version, where the repositioning-distance counter only recorded a vehicle's last remaining step instead of the full distance driven.
2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install