Repository navigation
Home
Graham Barber edited this page Oct 19, 2026
·
4 revisions
The people's indoor ride: open source, built by riders, for riders. — velopopuli.com

VeloPopuli turns any GPX route into a 3D world built from OpenStreetMap and open elevation data, drives your smart trainer from the real gradient, and makes a game of it with ghosts, pace riders, timed climbs, workouts and a season goal. It's free, open source (GPLv3) and runs on Windows, macOS and Linux.
- Installing — get the app onto your computer
- Connecting your trainer — Bluetooth and ANT+, and what to do when it won't connect
- Your first ride — import a route, pick a mode, ride
- Routes and the map — importing and finding routes; how the 3D world is built (buildings, surfaces, road widths, bridges)
- Riding — the HUD, cameras, gradient and ERG, pace riders, ghosts, climbs, time of day and weather
- Workouts — built-in sessions, importing .zwo/.erg/.mrc
- Virtual gears — shift with keys or a remote instead of your bike's gears (optional)
- Progress and goals — power curve, FTP, training load, streaks, badges and the season goal
- Strava — connect, upload, segments and friends' rides as ghosts
- Group rides and self-hosting — ride together; run your own relay
- Fan and lights — Home Assistant, Shelly, Tasmota and webhooks
- Reporting problems — the diagnostics report and how to send it
- Contributing — how to help, and the full project handoff notes
- Building from source — developing, testing and the automated checks
- Architecture — how the code is organised
- FAQ
Status: VeloPopuli is young. The 3D world, physics, workouts and progress tracking are tested; real trainers and sensors are only now being tried. If something doesn't work with your hardware, a diagnostics report is the quickest way to get it fixed.
Getting going
Using the app
- Routes and the map
- Riding
- Workouts
- Virtual gears
- Progress and goals
- Strava
- Group rides and self-hosting
- Fan and lights
Help
Developers