Simulation Mode
Ride real-world courses with gradient-based resistance, virtual gearing, and GPX route loading.
Simulation mode makes your trainer respond to terrain — the resistance changes based on the gradient, just like riding outdoors. Combined with a GPX route, you can pre-ride any race course.
Switching to Simulation Mode
On the Ride tab, when your session is stopped, you’ll see an ERG / SIM toggle at the bottom of the screen. Tap SIM to switch.
You cannot switch modes while a session is recording. Stop and discard first.
What You See
- Gradient display — large percentage at the top showing the current grade with a terrain descriptor:
| Grade | Descriptor |
|---|---|
| Below -8% | DESCENDING FAST |
| -8% to -3% | DESCENDING |
| -3% to 1% | FLAT |
| 1% to 5% | CLIMBING |
| 5% to 10% | STEEP CLIMB |
| 10%+ | WALL |
- Animated cyclist — a visual rider that responds to your real cadence and speed, tilts with the gradient, and shows effort indicators on steep climbs
- Data screens — same swipeable metric pages as ERG mode
- Elevation profile — route elevation graph with your current position (when a GPX file is loaded)
Loading a GPX Route
- In SIM mode with your session stopped, tap “Load GPX Route”
- The iOS file picker opens — select a
.gpxfile from your device, iCloud Drive, or any connected file provider - Once loaded, you’ll see:
- Elevation profile — a graph of the route’s elevation with an orange dot showing your current position
- Route summary — total elevation gain/loss, max elevation, and average gradient
- Route name with “Change” and “X” buttons to swap or clear the route
The app supports GPX files with either track points (<trkpt>) or route points (<rtept>).
Virtual Gearing
Simulation mode includes a virtual drivetrain. You shift gears to control your virtual speed and the resulting trainer resistance.
Default setup:
- Chainrings: 34/50T (compact double)
- Cassette: 11-13-15-17-19-21-24-28-32-36 (10-speed)
- Wheel: 2105mm circumference (700x25c)
How it works: Your cadence multiplied by the current gear ratio determines your virtual speed. That speed, combined with the current gradient, determines the resistance your trainer applies.
The gear display shows your current selection in “34x17” format (chainring x cog teeth).
Shifting with Zwift Ride Controller
| Button | Action |
|---|---|
| Right Shift Up | Harder gear (smaller cog) |
| Right Shift Down | Easier gear (larger cog) |
| Left Shift Up | Big chainring |
| Left Shift Down | Small chainring |
| Right Hood | 3 cogs harder at once |
| Left Hood | 3 cogs easier at once |
Each shift gives a light haptic tap. Without a Zwift Ride controller, set your preferred starting gear in Settings before riding.
Physics-Based Resistance
In Settings > Simulation Mode, there’s a “Physics-Based Resistance” toggle (on by default):
- ON — the app calculates exact power required based on gradient, rider weight, bike weight, rolling resistance, and air drag. Gear shifts directly change the resistance you feel. This is the recommended setting.
- OFF — the app sends the raw gradient directly to the trainer and lets its built-in firmware handle resistance. Some trainers may feel different in this mode.
GPX Smoothing
Raw GPX data from GPS devices contains noise — elevation stepping, GPS wander, and gradient spikes. Cyrace automatically cleans up your data when you load a file.
You can tune smoothing under Settings > GPX Smoothing:
| Setting | Default | What It Does |
|---|---|---|
| Elevation Sigma | 10 | How aggressively elevation is smoothed (4–16). Higher = smoother gradients. |
| GPS Epsilon | 3.0m | How much route path is simplified (2–5m). Higher = cleaner path. |
| Max Gradient | 30% | Caps maximum gradient sent to trainer (20–30%). Match to your trainer’s limit. |
| Power Smoothing | 0.4 | Filters real-time power output (0.1–0.9). Lower = smoother resistance changes. |
Important: Changes to Elevation Sigma, GPS Epsilon, and Max Gradient require you to reload the GPX file to take effect. Power Smoothing applies immediately.
Tuning Tips
- Start with defaults and ride a section you know well
- If gradients feel too spiky → increase Elevation Sigma by 2–4
- If gradients feel too “flat” → decrease Elevation Sigma by 2–4
- If you get sudden extreme resistance spikes → lower Max Gradient to match your trainer’s hardware limit (Wahoo KICKR: 20%, Tacx NEO: 25%)
- Adjust Power Smoothing in real-time while riding to find your preference