No subscription, no account — pick a course and run

Virtual world for treadmill running

Your treadmill,
on real ground

Drop in a GPX from your watch. A banner tells you the speed and incline to dial into your console, so what you are doing matches the terrain your avatar is running — at constant effort, not constant speed.

01234567890123456789.01234567890123456789km
of Ventoux, imported
0123456789012345678901234567890123456789m D+
climbed indoors
0123456789records
400 m to marathon
0123456789subs
nothing to pay, ever

How it works

Three things,
then you run

Nothing to configure and nothing to sign up for. Your treadmill stays exactly as it is — the only thing that changes is that you now know what to set on it.

01
The course list, showing distance, climbing and course type for each route

Pick a course

A GPX straight out of Garmin Connect or Strava, a hand-written CSV, or the generated WaterTopia loop. Drop a file on the window and it joins the list.

Browse courses
02
The banner calling for 9.7 km/h at 5.5% incline, with the next setting riding in

Dial the console

The banner names one speed and one incline, handed to you about eight seconds before the stretch it belongs to — long enough to walk a hand to the console.

How pacing works
03
A road climbing through hills towards a mountain, rebuilt from a GPX track

Run the terrain

Whatever you actually set, your avatar moves at the speed that effort buys on the real gradient. Set less incline than the hill and you climb it slower.

See the courses

The coach

It asks for what
your machine
can actually give

A 22% wall on a 15% treadmill clamps the incline and pays the difference in speed. The banner says so, instead of asking for the impossible.

  • Effort, not speed

    Energy cost per metre as a function of gradient comes from Minetti et al. 2002. On a 6% climb the coach sets 6% incline and the belt speed that costs the same energy per second.

  • Stretches, not slopes

    A console is four button presses away from your hand, so the course is cut into stretches of a few hundred metres. A 12 km activity comes out as 33 instructions, not one every eight seconds.

  • A descent is run with the legs

    Past roughly −10% the limit stops being aerobic and becomes how hard the legs can brake, so the speed a descent buys you is capped. The effort maths is untouched.

The Wall course at 11.6% grade, the banner holding a steady speed and incline
The Wall · 0.61 km · 66 m D+ — the grade readout turns red once the course asks for more than the belt has.
Mont Ventoux imported from GPX, at 21.5 km with the climb profile along the bottom
Mont Ventoux par Sault · 25.44 km · 1222 m D+ — imported from a plain GPX off a watch.

Real courses

A GPX is not
a course. Yet.

GPS fixes bunch up wherever you slowed down, barometers drift, and a track that doubles back records the same road at two different heights. All of it is cleaned at import.

  • Re-spaced, averaged, measured along the path

    Even 5 m spacing, a 20 m elevation average, and grade taken along the road rather than as horizontal displacement — otherwise a turnaround reads as a 45% wall on flat ground.

  • Two passes over one road, reconciled

    An out-and-back is one road run twice. A stretch that comes back over ground it has covered is pulled onto the line it ran first, and the duplicate ribbon is never painted.

  • Scenery that belongs to your route

    The road is carved into the ground so you never float above it, a closed loop floods into a lake, and forest, rock and snow land where the terrain puts them. No two imports look alike.

Sample activity−45% … +22%−18% … +17%after cleaning

Courses

Every road you have
already run

Bring the roads you already know. The four below are real routes — and the lines you are looking at are their actual elevation, metre for metre.

Mont Ventoux

Ascension par Sault

25.44km1222m D+GPX · one-way

Bergerac SV2

VMA — 3×[4×40″/20″] + 3′

12.25km163m D+GPX · recorded

Hill Repeats

Hand-written CSV loop

1.18km30m D+CSV · loop

The Wall

A 22% ramp, on purpose

0.61km66m D+CSV · one-way

Drop a .gpx or .csv on the window and it is in the list.

The pacer

Race the runner
you were

A translucent pacer runs in the lane beside you. Set it to hold an effort, hold a speed — or load a run you already did and try to take it back.

  • Constant effort

    The pacer slows on the climbs and flies on the descents, the way a human pacer would.

  • Constant speed

    A metronome, for the days when that is exactly what you want chasing you.

  • My recorded run

    Your watch stamped a time on every point. The ghost replays that outing second for second.

Your records

The fastest 5 km
you ran inside a run

Not split times. A rolling window — wherever in the run it started — which is what a personal best actually is. Six of them, from 400 m to the marathon.

They are banked the moment a run ends and when you close the window, so a long run you abandoned half way still keeps the kilometres it ran. Your bests show on the course list and on the finish card, which tells you which ones the run just beat.

Personal bests
  • 400 m1:29.8
  • 1 km3:57.2
  • 5 kmnot set yet
  • 10 kmnot set yet
  • Half marathonnot set yet
  • Marathonnot set yet
Any treadmill
Tell it your top belt speed and your steepest incline. It never asks for more than that.
One number from you
The pace you could hold on the flat. Everything else is worked out from the terrain.
Your own routes
A GPX from Garmin Connect or Strava. Drop it on the window and it is in the list.
macOS, Windows, Linux
One native app. No account to make, nothing running in the background.

Nothing to pay, ever

Go run
something real

No subscription. No account. Pick a course, set your treadmill’s limits, and the first run starts in about a minute.