Free tool
View any .gpx or .fit file in your browser - instantly.
Open and view any FIT, GPX, or TCX activity file in your browser. The route renders on a Mapbox map, the elevation profile draws underneath, and every available stream - heart rate, power, cadence, speed, temperature - is plotted alongside distance, time, and pace. No signup, no upload, no install - the file decodes locally on your device using the official Garmin FIT SDK.
Free · no signup · your file stays on your device
How it works
- 1
Drop your file
GPX, TCX, or FIT - straight from your Garmin, Wahoo, Polar, Suunto, Coros, or any phone app that exports activity files.
- 2
Decode locally
FIT decoding runs through the official Garmin JavaScript SDK, in your browser. GPX and TCX go through the built-in XML parser. Nothing is sent to a server.
- 3
See your route
The trackline is rendered on a Mapbox outdoor map, fit to your activity's bounds, with start and finish pins and per-kilometre ticks.
- 4
Read the full breakdown
Distance, duration, moving time, ascent/descent, HR/power/cadence averages and peaks, sport, device, and where you started.
The math
Two formulas do almost all the work in a GPS viewer.
Distance: the haversine formula
Given two lat/lon points (φ₁, λ₁) and (φ₂, λ₂) on a sphere of radius R = 6,371,000 m:
d = 2R · asin(√a)
We sum d between every consecutive pair of trackpoints to get total distance. Earth is not a perfect sphere, so haversine over-states distance by about 0.1-0.5% versus a Vincenty ellipsoidal calculation - close enough for athletic use.
Elevation gain: positive deltas
For consecutive elevations e₀ and e₁, we add (e₁ − e₀) to the running total only when e₁ > e₀. This is "total ascent" - every up counted, no downs subtracted.
Worked example
A 50-km ride with 8000 trackpoints contains about 7999 segments. For each, you compute haversine distance and the elevation delta. The whole loop is O(n) - fast enough to run in real time on a phone.
How to use this in training
- Preview a new route. Before you ride a route someone sent you, drop the GPX here to check the profile, total ascent, and the actual geography of the climbs.
- Triage a corrupted activity. If a sync fails, drop the local file to confirm the data is intact before you spend an hour fighting your platform's UI.
- Compare two route options. Open one GPX in this tab, another in a second tab. Side-by-side stats let you pick which route fits the day.
- Plan elevation for race recon. The elevation profile is the same one your goal race director publishes - checking it before race day removes surprises in pacing strategy.
- Verify before sharing. If you are sending a route to a group ride, drop your own GPX first to confirm the file is what you think it is.
Common mistakes & misconceptions
Trusting raw GPS elevation
Phone-derived elevation is noisy and routinely off by 5-20 meters. For accurate gain, use a barometric-altimeter device, or accept a 5-15% margin of error on phone tracks.
Assuming GPX captures everything
GPX commonly drops heart rate, power, cadence, and lap structure when re-exported. If you need full data, keep the original FIT and only convert when you have to.
Comparing platforms naïvely
Different services smooth elevation differently. Most platforms can report different gain for the same file. Pick one source of truth.
Ignoring GPS dropouts
Tunnels, urban canyons, and dense forest cause GPS to fall back to dead-reckoning or skip points entirely. A jagged elevation profile in a known-flat section is usually GPS noise, not real terrain.
Re-saving GPX files in third-party apps
Every conversion can re-quantize coordinates and lose precision. Always work from the original file the device wrote.
Related tools
More from utilities
See all toolsHeart Rate Zone Calculator
Karvonen and LTHR-based zones.
OpenActivity Share Card Generator
1080x1920 PNG, ready for stories.
OpenGPX Privacy Stripper
Trim the start and end, scrub the metadata.
OpenRoute Simplifier
Fewer points. Same route.
OpenExplore the FIT toolkit
14 free tools to view, edit, fix, and convert your Garmin FIT files.
Open the toolkitFAQ
What is a GPX file?
GPX (GPS Exchange Format) is an open XML format for storing track points - latitude, longitude, optional elevation, optional timestamps. It is the universal interchange format for ride and run data between platforms.
What is a FIT file?
FIT (Flexible and Interoperable Data Transfer) is a compact binary format developed by Garmin. It encodes much more than GPX - heart rate, power, cadence, temperature, lap markers, and device metadata. Most modern bike computers and watches record in FIT.
What is a TCX file?
TCX (Training Center XML) is Garmin's older XML format. It carries more data than GPX (heart rate, cadence, lap structure) but less than FIT. Most modern Garmin devices still emit TCX as an export option.
Does my file get uploaded anywhere?
No. FIT, GPX, and TCX files are decoded entirely in your browser - FIT through the official Garmin JavaScript SDK, GPX and TCX through the built-in XML parser. The bytes never leave your machine.
How is elevation gain calculated?
We sum all positive elevation deltas between consecutive trackpoints. This is the standard "total ascent" method. Note that raw GPS elevation is noisy - barometric altimeters in dedicated devices smooth it; phones often do not.
Why is my distance slightly different from my watch?
We use the haversine formula on point-to-point lat/lon pairs. Watches typically apply Kalman filtering and may interpolate over GPS dropouts. Differences of 1-2% are normal and not a parser bug.
Can I view multi-day or multi-track GPX files?
The viewer renders all track points in a single GPX as one route. If your file contains multiple <trk> blocks, they will be joined in document order. For multi-day tours, this usually does what you want.
What if the parser fails?
Most parser failures are malformed XML - usually because a third-party app added unescaped characters. Re-export from the original platform, or open the file in a text editor and validate it.
How big a file can I load?
Browser memory is the only limit. Files up to about 50,000 trackpoints (roughly 5-8 hours of one-second recording) render smoothly on most laptops. Larger files may lag in the map view.
Save your training to a real log
A viewer shows you one ride. A training log shows you the whole season - every climb, every PR, every block. Domestique reads the data for you.
Join the waitlist