ByteScope

GPX & FIT Viewer

Read a watch or bike computer's GPX or FIT recording: summary, track and charts in one place, FIT to GPX and CSV export, all inside your browser. The file never leaves your machine.

Your GPX and FIT files are parsed here, in a worker on your own machine — no upload, no account, and no map tile request that could reveal where the route is.

Drop .gpx or .fit files here

One or several recordings from a watch, bike computer or app — or click to browse.

Dropping more files adds them to the list; switch between them on the left.

Limits

  • Climb and descent count an elevation change only once it reaches 3 m from the last counted point, so GPS jitter does not add up to a mountain. Strava and Garmin Connect use their own elevation source and smoothing, so a different total is normal.
  • Moving time adds up the time between points where you were going at least 0.5 m/s.
  • Distance is shown twice when the file allows: what the device recorded and what the coordinates add up to.
  • Manufacturer-private FIT messages are listed by number in the advanced section; their contents are not decoded.
  • There is no map under the track. Any tile service would receive the area your route covers.
  • FIT → GPX drops laps, device events, developer fields, the device's speed and distance, and power unless you tick the option.
  • FIT times are UTC and are shown in your browser's timezone with UTC alongside. A GPX time without a timezone is marked Timezone unknown rather than guessed.

About this tool

A sports watch or bike computer records your ride as a .fit file; most route sites and apps trade in .gpx. Drop either one here and it is parsed in the page: a summary of distance, elapsed and moving time, climb and descent, average and maximum speed or pace, heart rate, power and the device that recorded it, followed by the track drawn to scale with a scale bar and north arrow, and charts of elevation, speed, heart rate, cadence, power and temperature wherever the file carries them. Several files can be opened at once and switched from the list on the left.

Nothing leaves your browser. A GPS track is a diary of exactly where you were and when, which is not something to hand to a server just to look at it — parsing runs in a Web Worker on your own machine, there is no upload endpoint, and closing the tab leaves nothing behind. That is also why the track is drawn on a blank background rather than a map: any tile service would receive the area your route covers just to draw the roads underneath it.

Convert FIT to GPX or CSV

FIT to GPX writes a GPX 1.1 track with heart rate, cadence and temperature in the Garmin TrackPointExtension that Strava, Komoot, Garmin Connect and most route tools read. GPX has no place for laps, device events, developer fields, device-measured speed or device distance, so those are dropped and the page lists exactly what was lost. Power has no standard GPX element; it can be written as a non-standard <power> child if you tick the option, which is off by default because it makes the file fail schema validation. Both FIT and GPX also export to CSV — one row per record point, units in the column names (ele_m, speed_mps, hr_bpm) — with a link to open it straight in the CSV Explorer.

How the numbers are computed

Climb and descent count only elevation changes of at least 3 m from the last counted point, so GPS jitter does not add up to a mountain; Strava and Garmin Connect use their own smoothing and their own elevation source, so expect a different total. Moving time counts the seconds between consecutive points where you were going at least 0.5 m/s. Distance is shown twice when the file allows it: what the device recorded (a wheel sensor or its own GPS filtering) and what the raw coordinates add up to.

What the parser admits it does not know

FIT files carry manufacturer-private messages that only the vendor's software understands. The advanced section lists every message type with its count and field names, developer fields with their names and units, and the numbers of the unknown ones — without pretending to decode them. A corrupt record does not throw the whole file away: the points that parsed are shown and the skipped count is reported underneath. Times in a FIT file are UTC and are shown in your browser's timezone with the UTC value alongside; a GPX time with neither a trailing Z nor a +hh:mm offset is marked as timezone-unknown rather than guessed.

Frequently asked questions

Is my GPX or FIT file uploaded anywhere?

No. The file is read from your disk and parsed in a Web Worker inside the page; the summary, the track drawing, the charts and the converted files are all produced locally. There is no server, no account, and no map tile request that could leak where the route is.

Why is the elevation gain different from Strava or Garmin Connect?

Because there is no single correct answer. Every platform picks its own elevation source — the barometer in the file, or a terrain model looked up from coordinates — and its own smoothing. This page uses the elevations in the file and counts a change only once it reaches 3 m from the last counted point, which is written on the page so you can compare like with like. A noticeably different total from another platform is normal, not a bug.

What does converting FIT to GPX lose?

Laps, device events (pauses, button presses), developer fields from Connect IQ apps, the device's own speed and distance values, and power unless you tick the non-standard option. Heart rate, cadence, temperature, elevation and time survive in the Garmin TrackPointExtension. The page lists the dropped fields for the file you opened, so keep the original .fit if any of them matter.

Why is there no map under the track?

Deliberately. Drawing roads under your route means asking a tile server for exactly the area you were in, which hands a third party the location of your home, your office or your training loop. The track is drawn to scale on a blank canvas with a scale bar and north arrow instead, which is enough to recognize the shape and spot a GPS glitch.

If I cut the points near my start, can Strava still see where I live?

This version does not trim tracks at all — that is planned for a later stage — and even a trimmed file is no guarantee. The platform still sees the time, the direction you left in and the point where the data starts, and can combine them with your other activities. Use the platform's own privacy zone (Strava, Garmin Connect and Komoot all have one), which hides the area from other users while keeping your own stats intact.

Why are there two different distances?

One is what the device recorded, usually from a wheel sensor or its own GPS filtering; the other is the raw coordinates added up point to point. A wheel sensor is more accurate on a bike, while GPS jitter at low speed inflates the coordinate sum. Both are shown so you can see which one the platform you upload to will be closer to.

Should I tick the power option when converting to GPX?

Only if the tool you are importing into is known to read it. GPX has no standard power element, and the <power> child written here sits in the GPX namespace, so a strict validator will reject the file. Leave it off for Strava and most route planners; if you need power, export CSV or keep the .fit.

The watch's FIT file will not open elsewhere — what is in it?

Open it here and scroll to the advanced section. It lists every message type with its count and fields, developer fields with their names and units, and the numbers of manufacturer-private messages the parser does not understand. Points that parsed are still shown even when part of the file is damaged, with the skipped count underneath.