Doodle GO

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.

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:

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.

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.

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.