demo · MultiBøT · 2026-09-09
Scenario: you've got 34 morning drop-offs exported from your dispatch sheet as stops_march.csv, two vans, and a hunch the current route order is inherited from whoever set it up in 2019.
Setup, one time:
python3 -m pip install -r requirements.txt pyinstaller
then ./build_mac.sh (build_linux.sh / build_windows.bat if that's your box). What lands in dist/ is a double-click app — no Python, no terminal, ever again. If you'd rather skip the build entirely, python3 gui.py opens the same window directly.
Your CSV first: MultiBøT reads exactly id,lat,lon as the header row, and treats row 1 as the depot. An export with Stop Name, Latitude, Longitude needs those three headers renamed and the warehouse row moved to the top — that's the whole conversion. If what you have is street addresses with no coordinates, this kit can't take it as-is; it consumes lat/lon and has no geocoding step, so you'd geocode elsewhere first.
Straight-line distance is the default. Road-true distance is mode=osm — a dropdown in the app — and needs the optional OSMnx install, not the base requirements.
With two vans, the Architect frames the capacity constraint explicitly, then Builder runs hypotheses that differ in structure: e.g. "geographic split by river" versus "one van does the dense core, one does the long tail." The Critic compares them against the baseline and kills any pair that's the same route with two stops swapped.
Numbers appear when you click Run — none exist for your file until then.
Every tool in the catalog can be run live like this on your own task, free, before you buy.