Previous Product · Applied Engineering

Phaedo Route.

Two hundred parcels. One photo each.
One solved route — straight into Google Maps.

Scroll
The problem

A courier's morning is
chaos in a van.

130–250 parcels a day. Route numbers assigned at random. Addresses scattered across three cities. Every wrong turn is unpaid time — and the clock starts at the warehouse door.

UniUni · Neighbour · gig last-mile, Metro Vancouver
01 · Scan

Point. Shoot.
It reads.

Photograph labels straight from the phone — camera or gallery, dozens at a time. RapidOCR lifts the postal code off every label in under a second, and a position-aware corrector repairs what the lens gets wrong: V3H IR5 → V3H 1R5.

0.9 s / label on CPU · postal auto-filled, everything else stays yours to edit
🚚 送货助手 手机版
📷 拍照/选图
🧪 测试200
🗑 清空
识别中 37/200 …
#35V3B 6W1
#36V3C 1M1
#37V3H 1R7
#38
📦 包裹清单(200件)▾ 点击展开编辑
1
2
3
native inputs — the keyboard always pops
02 · Verify

Machines read.
You decide.

Every parcel lands in a manifest built for one thumb: collapsible so it never blocks the road view, route numbers pre-filled in scan order — write that same number on the box and you never edit at all. Real inputs, real keyboard, quick-fill for a whole day's numbers in one line.

Route# = scan order by default · quick-fill: “55 12 - 93”
03 · Solve

One tap.
Watch it think.

Geocoding runs against a local BC postal database — 200 parcels in a third of a second, offline. Then the solver: same-street chaining, nearest-neighbour seed, 2-opt refinement, right-turn bias, and an exact DP for which end of each street to enter. A real progress bar, because waiting blind is a UX crime.

solve = chain → nn → 2-opt → orientation DP · ~9 s for a full day
📦 包裹清单(200件)▾
定位地址 8/200 … 4%
🧭 按顺序送 剩 185 站
🚗 Google连导接下来 10 站
#118V5J 5K5🧭
#144V5J 3P5🧭
The whole day, at a glance

185 stops. One line.

Every stop pinned with its marker number, the route flowing along real streets — depot to last door.

live capture · the direction flow animates along every street

Road-true

Minutes you can
bill against.

Distances aren't crow-flight guesses — OSRM drives the sequence over the real road network, one-ways included, and prices every leg in minutes. The manifest becomes a schedule: per-stop drive time, total distance, honest ETA with 30 seconds per door.

stress run: 185 stops · 285.5 km real roads · 9 h 27 m driving · ETA before you leave the depot
Real route manifest: 185 stops with per-leg driving minutes
Google Maps with 9 stops loaded from Phaedo Route
04 · Navigate

No add-a-stop.
Ever.

One tap hands the next ten stops to Google Maps, in order, ready to drive. Deliver, check off, and the list refills itself — you always face the next twenty, never the pile. The day's state lives on your phone: switch apps, lock the screen, it's still there.

9 waypoints + destination per batch — the same handoff pattern the paid apps sell
On the road

Check off.
It refills.

Done stops fold away into a single undo-friendly bar. The window slides forward on its own. Watch it work — this is the live behaviour, not a mock.

always the next 20 · state survives app switches
✅ 已送 3 站(点错想撤销就点开)
Measured honestly · 200-parcel stress test
0geocode 200 parcels
local DB · offline
0full route solve
185 stops
0distance vs unsorted
1,228 km → 123 km
0dirty data quarantined
never silently mapped

Hypothesis. Test.
Ship what survives.

Built with open components — RapidOCR, GeoNames, OSRM, FastAPI — assembled and stress-tested the same way we build trading systems.