I love riding GPS routes on my Tacx trainer, but I wasn't happy with the built-in functionality for changing the elevation profile of a ride. The built-in smoothing is very slow and still leaves a lot of spikes in elevation. It is next to impossible to remove steep downhill grades that I don't want as part of my indoor training.
The GPX Smoother lets you load a GPX file and apply a few different "smoothing" algorithms
to the elevation. The resulting GPX file can be saved to a file and then imported back into
your Tacx trainer software.
Smooth - uses simple box-score smoothing to smooth the elevation over 5 points.
Set Range - lets you set the maximum and minimum slope.
Flatten - lets you set the maximum change in slope between any two points.
Slide the triangular handles on the smaller graph to select only a portion of the ride to smooth. This allows you create a ride similar to a Slope-Distance Catalyst ride.
The code for the GPX Smoother is now on github at https://github.com/brenzy/gpx-smoother.
This is a work in progress. Drop me a line at to request changes or report issues.
Bug Fix (February 16, 2019):
Fix the tooltips and upgrade to d3.js v5.
Bug Fix & Remove Google Maps functionality (February 2, 2019):
Fix for adding the previous elevation to a point. Google Maps elevation is no longer available free of charge, so the functionality to add elevation has been removed.
Functionality Change(January 21, 2019):
When an elevation tag is missing, the GPX Smoother will add an elevation tag containing the same value as the previous point. If there is no elevation in the GPX file an arbitrary value of 100 metres will be used for elevation.
New Functionality (January 1, 2015):
Added elevation profile and changed slope to a step chart.
New Functionality (November 1, 2014):
Added a Distance vs. Slope graph for Kostya, added "Hide Original" checkbox, swap order of min and max slope boxes.
New Functionality (September 13, 2014):
Added the ability to adjust the number of points to smooth over and the ability to shift the slope upwards or downwards. Marcel, thanks for sending along these two changes!
New Functionality (March 8, 2014):
Add ability to add elevation from Google Maps Elevation Service.
New Functionality (January 26, 2014):
Added zoom to the selected portion of the ride.
New Functionality (January 12, 2014):
Use the drag handles to select the portion of the ride to be smoothed.
Bug Fix (January 7, 2014):
Trying to download large files will crash the browser. Added a message to use the copy and paste method instead. Thanks Guy!