Pro & Easy views
A map workbench with Explore / Design / Compare / Data modes, and a plain-language view that answers one question with a shareable link.
A digital twin of Bengaluru's transit, built to ask “what if”.
Glacies models Bengaluru's bus and metro network from open data, generates synthetic morning-peak demand, routes and assigns every trip, then compares any changed network against the baseline — travel time, waiting, transfers, crowding and access to jobs. It runs on a laptop.
Planners can't easily see what a timetable change, a route cut or a new corridor would do to commuters before they make it — city-scale models are expensive, closed and opaque.
6 stations · data → decision
BMTC and metro GTFS, OpenStreetMap, WorldPop population and a jobs proxy become one canonical network on H3 zones.
A Rust RAPTOR router, called from Python, builds zone-to-zone travel times for departures every minute across the morning peak.
The share of jobs reachable in 15 / 30 / 45 / 60 minutes, with inequality measured as a Gini coefficient.
A doubly-constrained gravity model produces work and education trips, calibrated against metro gate counts.
Trips are assigned with a crowding loop — fixed alternatives, a logit split and MSA averaging — giving loads per vehicle segment.
Scenario files change headways, remove routes or add corridors; NSGA-II searches headways trading waiting time against fleet hours.
A map workbench with Explore / Design / Compare / Data modes, and a plain-language view that answers one question with a shareable link.
Draw the draft network before running — removed routes dashed red, frequency changes amber, new routes ice.
A draggable before/after split across the map.
Queued jobs with stage progress, cancelling, caching and recovery when a worker drops.
Every figure is badged Observed, Estimated, Simulated or Assumed.
RAPTOR with range searches, a parallel matrix build and journey bundles, exposed to Python through PyO3.
A fixed choice set per trip, a logit split and method-of-successive-averages — no expensive re-routing every iteration.
NSGA-II was validated by brute-forcing a two-route toy network and recovering its exact Pareto front.
Same data, scenario, config and seed rewrite identical Parquet; provenance labels are enforced in code.