The web console that watches the sickness metric
Glide Console
Summary
The console puts Glide's sickness metric on a map: a Glide Score for each of Seoul's 25 districts, the rides running right now, and the events as they land. In studies it doubled as the operator's screen for replaying scenarios.
- 25
- 6
- 27,763
Live: glide-saas.vercel.app · Main project: Glide
What it shows
- District scores – a weighted average for the whole city, 0–100, higher is safer, with all 25 districts sorted into safe, watch, rough and severe.
- Risk top five – the roughest districts right now, in order. This is the screen you route around.
- Active rides – current rides split across live, simulation, game and idle.
- Live events – hard braking, sharp turns, recovery actions and route comparisons, timestamped and tied to a participant code so a session can be replayed later.
The map
Six layers stack on the map: a sickness heatmap, district polygons, live road speeds, incidents, traffic signals and crosswalks.
Canvas instead of SVG, so everything can be on at once
Dark map, light panels
Data
One Supabase project holds seven tables: participants, sessions, events, the sickness time series, haptic firings, vehicle positions and district scores.
Every session carries a mode — live, simulation, game or idle — so real drives and simulated ones replay through the same screen. Without the sensor board, faked readings drive the same view.
Bringing it back
Four months after launch the screen was empty. Three things had gone wrong at once.
- The database was gone. A free-tier project that had sat idle was deleted — not unreachable, the hostname itself no longer resolved. The schema was still in the repo, so it went straight back up on a new project.
- The map provider changed its terms. The keyless tiles started arriving stamped "API KEY REQUIRED". Swapped for a provider that needs no key.
- One condition was inverted. The district panel had always read zero, not because of the data but because of
if (!cancelled || !data) return;— it bailed out even on a good response.