How to make GPS art (a.k.a. Strava art): the full guide
GPS art — also called Strava art, GPS drawing or run art — means treating your run or ride as a pen stroke and drawing a shape with it on the city's street network. This page walks through the whole process, and — more usefully — what to adjust when the snapped route doesn't look like the shape you started with.
What GPS art actually is
Your watch records the path you ran as a line. Plan which streets to take beforehand and that line becomes a recognisable picture — a heart, a cat, a dinosaur, a number.
The hard part is that drawings are free curves and streets are not. A real road network is a grid with gaps, and not every direction has a road in it. So "drawing a shape on a map" and "a shape you can actually run" are two different things, with a snapping step in between.
Four steps
- Pick a shape. Use a built-in one-stroke figure (heart, star, cat, christmas tree, T-Rex, dachshund, bird, fish), upload an image to auto-trace, sketch one on the drawing pad, drag a stroke straight onto the map, or import a GPX track you already have.
- Place it. Drag the map to the area you want to run, or jump there by searching a place name. The shape can be rotated and mirrored — turning it so the outline lines up with the direction the streets run makes a bigger difference than anything else.
- Snap it to the streets. Hit snap and the route is recomputed to follow real roads, rescaling itself repeatedly until the real running distance lands near your target.
- Export a GPX. Download the file, load it into your watch or training app, and follow the navigation while you run.
All of it runs in the browser with nothing to install. The first three steps need no account; exporting a GPX, saving a route, or making a share card does.
Choosing a distance and a mode
The counter-intuitive part: more waypoints is not better. Past a point the router starts detouring to hit every single one, which makes the route longer and adds backtracking. Unless the fine detail really matters, Perfect is usually the right answer.
- Simple (18 waypoints) — bigger roads, fewest turns, cleanest run, but only the rough silhouette survives.
- Perfect (26 waypoints) — the default, and the balance point between likeness and runnability.
- Fine (60 waypoints) — hugs the shape closely, at the cost of more turns, possible out-and-back sections, and a distance that overshoots the target by more.
Why the route doesn't look like the drawing
Almost always because the shape's detail is finer than the city block. Downtown blocks run roughly 100–200 m, or 300–650 ft (measured at about 150 m in central Taichung, and over 400 m in rural areas). If your shape needs two corners 60 m — 200 ft — apart and there are no lanes that dense, the street network simply cannot draw that turn.
That is why a feasibility check runs before snapping: it counts the shape's corners and their spacing and compares them against the actual road density around the placement. When it won't work you get a dialog and a suggested set of settings you can apply with one click.
Four things that genuinely help:
- Increase the distance. Double the size and every detail doubles its spacing too. This is the most effective fix by far.
- Simplify the shape. Uploaded images have a detail slider that removes vertices. Simpler line work snaps better.
- Turn on gridify. It replaces curves with a staircase along an axis-aligned grid, which helps enormously in grid-plan cities (most Taiwanese downtowns, Kyoto, Manhattan).
- Rotate the shape. Aligning the outline's main axis with the direction the streets run costs you no detail at all.
Back lanes and hills
"Prefer back lanes" is on by default. It pulls the waypoints onto residential streets, footpaths and service roads before routing, and it excludes anything tagged as a bridge, tunnel or elevated layer — which is exactly what an elevated expressway looks like in the map data, so no elevation data is needed to spot one.
Why it has to work this way: the public routing service will not accept an "avoid these road classes" instruction, but it always snaps each waypoint to the nearest road. Put the waypoints in the lanes and the route follows the lanes. The result shows up as a main-road percentage — how much of the route runs alongside a major road.
Hills are a separate problem, because no map tag expresses them. Once a route exists, elevation is sampled along it from a 90 m Copernicus digital elevation model to give total ascent and maximum gradient; anything steeper than 8% raises a warning. Both numbers are computed after the route and don't change it.
Uploading your own image
Uploads are classified automatically as silhouette or line art. A silhouette gives its outer contour; line art gives the centreline of the stroke, so a drawn line doesn't get traced as a long thin there-and-back loop.
Photos are detected automatically and get AI background removal in the browser, so the subject can be traced cleanly. The model downloads the first time you upload a photo, and the photo itself never leaves your device.
What works: clear outlines, few lines, drawable in one stroke. What doesn't: busy photographs, text that needs more than one stroke (most text does), and shapes made of separate pieces. The model is a single continuous stroke — a closed loop, or an open path if you switch off "close the loop" on the drawing pad, which is how you write something like "2026".
Importing a GPX you already have
Already have a GPX? Import it — one your own watch recorded, one someone shared, or one you exported from here earlier. The route is drawn straight onto the map with its distance, turn count and total ascent.
An imported track is shown as recorded and is never re-snapped: the path you ran is the path you ran, and handing it to the router would just produce a different route. To change it, open node editing and drag a node — only the stretches you touch get recalculated along the roads.
- Dense recordings are thinned automatically. A 10 km run logged at 1 Hz is over five thousand points; at most 3000 are kept, and thinning changes the total length by under 3%.
- If a file holds several tracks, the longest one is used. Several usually means several different activities, and joining them would invent a leg you never ran. Pause splits inside one track are rejoined — that was always a single run.
- A file with only waypoints can't be a route. Those are places, not a path; joining them in order gives you a fake line straight through the buildings.
An imported route has no drawing behind it, so there is no similarity figure and it can't be re-snapped from the original shape. Everything else is the same — export the GPX, make a share card, save it to your account, publish a public link.
Getting it onto a watch
Menu locations move between app versions, so the above stays deliberately general. Searching your brand's name plus "import GPX route" is usually the fastest way in.
- Garmin — import it in Garmin Connect as a Course, then send it to the watch and start navigation with your run.
- Coros / Suunto / Polar — each companion app can import a route and sync it to the watch.
- Apple Watch — the built-in Workout app cannot import GPX routes; you need a third-party app that does route navigation.
- Phone only — any GPX-capable running or navigation app works. A watch isn't required.
Before you run it
A generated route is a suggestion derived from public map data, not a surveyed path. It doesn't know about roadworks, a pedestrian underpass that bans running, a broken pavement, or a lane with no lighting after dark. Stop at the junctions the navigation tells you to run straight through.
Also: a shared route picture shows where the route is. Think twice before sharing one that starts at your front door.