A desktop app that ties recorded cycling video — or a generated 3D world — to live power from your smart trainer. Push harder and the road speeds up. Ease off and it slows. Every hill is felt.
The same engine drives both. Your trainer sets the pace; the scenery just changes.
Load a recorded ride and the playback rate tracks your virtual speed in real time — so the video always matches where you'd actually be on the route.
A 3D world generated from public elevation and map data, ridden on-rails by your distance — real terrain, real grades, a full peloton, no video required.
Everything reacts to what your legs are doing — not a fixed script.
Reads power, cadence, speed and heart rate over Bluetooth FTMS, straight from your smart trainer and sensors.
Speed, power, grade, distance and elapsed time in a clean overlay — plus a live route map with your position.
Ride with a pack that paces to your watts — sit in, get gapped, or chase back on. Tuned for real riders, not just pros.
Import GPX, TCX or FIT files. Elevation is filled from public terrain data so any route gets real grades.
The road pitches with the terrain, and the video (or world) responds — climbs bite, descents fly.
A single-file Python + Qt app. Runs offline on your machine. Free to read, run and tinker with.
Pair your BLE smart trainer (and heart-rate strap) — the app finds them automatically.
Choose a recorded video route or a generated world, or import your own GPX/TCX/FIT.
Start pedaling. The scene speeds and slows with your power — hills and all.
macOS. Double-clicking shows "Apple could not verify 'Ride Sim' is free of malware" with only Move to Trash / Done. Click Done (don't trash it). Then open System Settings → Privacy & Security, scroll to Security, and click Open Anyway — authenticate, then Open Anyway once more. You only do this once. Advanced alternative: run xattr -dr com.apple.quarantine "/Applications/Ride Sim.app" in Terminal, then double-click normally.
Windows. SmartScreen shows "Windows protected your PC." Click More info → Run anyway.
Both warnings are expected — this beta isn't code-signed/notarized yet. It's fully open source, so you can read every line on GitHub before running it.
v0.1.0-beta · all releases · report an issue