Skip to Main Content

Barrierefrei

Built at Meta Global AI Developer Hackathon · Oct 26, 2026 · Remote

Barrierefrei — Demo video

Barrierefrei: step-free train trips, checked live. It plans walks without stairs, and only trains whose lifts Deutsche Bahn reports as working right now. The problem: journey planners show a lift icon at a station, but they don't tell you whether that lift works. If it's broken, a wheelchair user is stuck on the platform. Walking directions have the same blind spot: they send people over stairs and high kerbs. Checking all of this by hand before every trip takes so long that many people stop travelling spontaneously. What it does: Barrierefrei plans a door-to-door trip for wheelchair users, parents with strollers and travellers with heavy luggage, currently between central Darmstadt and central Frankfurt. 1. A step-free walk to a station on OpenStreetMap paths. It never uses segments tagged as steps, and avoids rough surfaces and places where street photos show a barrier. 2. Live departures from Deutsche Bahn's Timetables API, Deutschlandticket trains by default. 3. Every lift the trip needs (boarding, changing, arriving) is checked against DB's live elevator status (FaSta). A trip through a broken lift is never recommended. 4. A step-free walk to the destination. The result is a map page with both walks (the shortest next to the step-free one), the ride, every lift and its status, when to leave and when you arrive, and why this trip was chosen. When a lift can't be checked live, the page says so instead of guessing. Example from the demo: near the Zeil, the shortest walk takes a 34-step stairway down to the U-Bahn; the planner walks around it. With the lift at Taunusanlage out of service, it rejects the usual route and recommends Konstablerwache instead. How it is built: Python 3.11. The OSM walking network and Mapillary photo metadata are cached in SQLite, with per-profile routing costs (wheelchair, stroller, suitcase). The transit layer uses DB Timetables, then db.transport.rest, then a static fallback; FaSta lift checks use a short cache. Output is Leaflet map pages plus a static demo site on GitHub Pages. 146 offline tests, ruff and CI on every pull request; all keys go through one typed config, and the site build is checked so no key reaches the output. Challenges: FaSta lists lifts per track, but Frankfurt Hbf's main-hall tracks need no lift, and VGF (the Frankfurt U-Bahn operator) publishes no live lift data; the planner models both honestly ("level access" and "can't be checked"). Against OpenStreetMap tags, the photo model flagged only about 29% of photos of tagged steps as not passable, so photos only add penalties while map tags decide. Ranking: a fully verified trip that arrives later should beat a faster one we can't verify. Next: more cities, lift data from more operators, journeys with U-Bahn and tram changes, and a hosted planner. Demo site: https://aritra-mukhopadhyay.github.io/barrierfrei/

Team