In the city
Stairs, quays, bridges, park mounds. Vert gets picked up in small pieces, and by running the climbs more than once.
iPhone and Android
Pick a start and a distance. TrailGen explores the paths around it and proposes the loops that climb the most.
And if one hill isn't enough, the route can repeat it.

Minneapolis, 4.6 mi for 425 ft of vert. Real screenshot.
The most common case
The steps up from a quay, a railway embankment, the ramp onto a bridge, the mound in a park. Each is worth a few dozen feet, and every one of them is in OpenStreetMap. What is left is stringing them together over the distance you want.
A flight of steps is a path like any other. TrailGen takes it when it gains elevation, and counts the vert.
Over six miles in a city, a single hill isn't enough. Mark it, choose how many times to run it, and the app shows the vert gained before you confirm.
Terrain is rarely right outside your door. TrailGen moves the start within the radius you allow, and looks for where the ground rises.

The same hill, ten times: 4.5 mi for 965 ft of vert, with most of the ground covered twice.
Three kinds of ground
Wherever you are, the app looks for the loop that climbs the most over the distance you asked for.
Stairs, quays, bridges, park mounds. Vert gets picked up in small pieces, and by running the climbs more than once.
Dirt tracks, hillsides, levees, woodland paths. Paths no road map will show you.
There is no shortage of terrain here. What is left is choosing the climbs that fit the distance you want.

“At least 300 ft”, then how much ground may be covered twice.
Training
A trail training plan is counted in feet of vert per week. In a city, those feet come in small doses, by repeating the climbs. Give the distance and the minimum gain: the app proposes the loops that make it, or explains what is in the way.
Before you go
A cursor runs along the map and the profile. Distance and cumulative vert climb with it, hill after hill.

2.0 mi covered out of 4.6, and 190 ft of vert out of the loop's 425.
Features
You drop a start and a distance. The app downloads the area's paths and terrain, explores the loops it can build, and keeps the ones that climb the most.
Running the same hill several times is the most direct way to add vert over a short distance.
Tap the map and the app follows the paths from one point to the next. Distance and vert update with every point you add.
Trails, tracks and roads are set separately: allowed, avoided or excluded.
A closed path, private land: exclude the segment once, and later searches won't use it.
The app can look for a better start within the radius you set, where the ground rises.
Elevation profile, the real share of trail and road, how much of it overlaps. A cursor moves along the map and the profile, and the vert climbs with it.
Export GPX to your watch. An image or a video of the route, map and profile included, ready to send.
Enter what you're carrying, the distance and your target time. The app works out the quantities, places each feed on the route and reminds you at the right time on race day.
A downloaded area stays on the phone. Later searches there are instant, even offline.
No profile and no online history. To build a route, the app downloads the paths and terrain of the area you're searching, with no identifier attached. The details are in the privacy policy.
Sources
Wrong elevation gain goes unnoticed. So the app uses the best survey available country by country, and never mixes two elevation models within one route.
the IGN's RGE ALTI
the national reference survey
the USGS 3DEP at 10 m
the US national survey, served from our own tiles
Natural Resources Canada surveys
the same chain as in the US, on the country's own data
AWS Open Data Terrain Tiles
a worldwide model, less precise, which tends to overstate gain on flat ground
Paths come from OpenStreetMap, which knows trails that road maps leave out. Some may have disappeared, been closed, or cross private land. Check the route before you set off.
FAQ
Yes. The app downloads the area's paths and terrain on the first search, then keeps them. Later searches there are instant, even offline.
Anywhere OpenStreetMap describes paths, which is nearly everywhere. Elevation gain is most accurate in France, the United States and Canada, where the app reads the national surveys. Elsewhere it uses a worldwide model, which is coarser.
No. An area you've already downloaded stays on the device. On Apple Watch, the map is drawn from the route itself, with no network and no phone needed.
TrailGen has an Apple Watch app, included in the unlock: routes saved on the iPhone arrive on it automatically, and you follow them from your wrist. For other watches, the GPX export is read by sports watches. An existing GPX can also be imported and measured.
The route, the paths around it, and an arrow showing your heading. If you leave the route, a marker points back to it. Distance and vert appear underneath. The run is saved as a workout in Health; the app reads nothing from Health, so no heart rate is shown.
The app is free on iPhone: two searches a day, the map, hand-drawn routes and GPX import. One purchase unlocks unlimited searches, GPX export, the Apple Watch app and nutrition plans. No subscription.
Free on iPhone. One purchase unlocks it all.