GPX Replay

September 30, 2022 · app maps

Greetings! Here in this post I'm sharing a new web-based tool, GPX Replay. Its purpose is to transform a GPX track (e.g. from a route planner or fitness app) into an interactive map animation. I added quite a few customization options, including built-in documentation for anything that's not obvious, so I hope it is easy to use!

10-second example of GPX Replay


While working on my Eurovelo 6 video guide series, I received feedback to share the route for each segment within the video. I definitely agree; if I'm watching a video I would appreciate some geographic context to the visuals. Especially if the video calls itself a guide!

A couple years ago on my Oregon valley video I did make map animations, but I did that manually and that trip was only three days. Now for this 20+ day journey, that's too much work for me.

As I alluded to in my last post, the way I avoid work is by doing more work. I guess that's just the engineer mindset? At least, I think I'm not the only one who does this...

Selected examples of customization options

Why you ought to give it a try!


Well, I know that exists and does something similar, so why did I make this one instead? Actually there are so many reasons that I cannot understand how they maintain a 4.5+ star rating on the app stores (and even more puzzling, how they have 15 million users).

A few technical details

High level: it's built with the standard React + Typescript combo, and the repository is hosted on Github. In fact the page itself is also hosted by Github Pages, my domain is simply an alias.

Depending on how closely you follow me, you might have recognized that this app looks really similar to Streetwarp, except without the video generation part. And that's true! I started by porting (via cmd-c cmd-v) the map following from that project into this one, then converting it to React and adding more features.

During that process, the trickiest technical question to answer was how to scale the playback speed. When there's a video playing alongside, then obviously we should synchronize the map. Since there was no video now, I had to choose an animation speed that would work across a variety of track lengths. I settled on a default speed of 60 seconds per track, so regardless the length of the track it would take 60 seconds to play from start to end. With the playback rate slider that goes from 0.2 to 20, that means you can pick the best time yourself, anywhere between 3 seconds and 5 minutes.


Feedback is welcome; please leave any comment here or somewhere I'll see! By the way if you are commenting anonymously I have to manually approve it so I apologize in advance for any delays.

The next post from me will probably be the next part of Eurovelo 6, unless something else distracts me before that.

Previous: Just a Speedometer
Next: Guide to Eurovelo 6 (pt. 3)
View Comments