How WakeRoute works

WakeRoute turns your GPX files into interactive, animated maps. You can use it for almost any GPS-based activity: running, cycling, driving, boating, skiing, hiking, or multi-person races.

This page walks through: how to export GPX, upload tracks, understand the animation, combine overlapping routes, and share or revisit runs later.

At a glance
  • Upload one or more GPX files.
  • WakeRoute detects when tracks overlap in time.
  • Overlapping tracks are grouped into a single "run".
  • Everyone shares the same run link; new uploads can update the same link.
  • The animation shows speed, timing, and (optionally) distances to reference points.

1 What is a GPX file?

A GPX file is a standard format for GPS tracks. Most tracking apps and devices can export your activities as GPX:

  • Sports watches / wearables (Garmin, Apple Watch via 3rd party apps, etc.).
  • Fitness apps (Strava, Komoot, Runkeeper, many bike computers).
  • Navigation tools (loggers on boats, car trackers, custom hardware, etc.).

GPX files typically contain a series of points with:

  • Latitude / longitude.
  • A timestamp for each point.
  • Optionally, speed, elevation, and other data.
Example: You finish a 45-minute bike ride tracked in Strava, tap "Export GPX", and save the file to your computer. That file can be uploaded directly to WakeRoute.

2 Upload page: creating a new animation

Fields on the upload form

  • Track title (optional): A short name for your track, e.g. "Morning ride" or "Boat 3". If you leave it blank, WakeRoute uses the GPX's internal name or the filename.
  • Page title (optional): A label for the whole run, e.g. "Saturday 10k with friends" or "Weekend road trip day 1".
  • GPX file: The file exported from your app or device.

What happens when you click "Generate animation"

  1. WakeRoute saves your GPX file and reads all the GPS points and timestamps.
  2. It detects the local timezone from the coordinates.
  3. It calculates:
    • Start and end times of the track.
    • Speed between each pair of points.
  4. It checks whether this track overlaps in time with any existing tracks (more on that below).
  5. It creates (or updates) a run: an HTML page with an interactive map and animation controls.
Example: You upload "Morning Run.gpx". WakeRoute creates a new run and gives you a link like /sail/abc123. That link is your "home base" for that activity.

3 How overlapping tracks are grouped into a single run

WakeRoute is designed to handle situations where multiple people record overlapping activities at roughly the same time. For example:

  • Two cyclists ride the same route together but upload their GPX files separately.
  • A group drive with several cars, each with its own tracker.
  • Multiple boats, skiers, or runners moving at the same time in the same area.

Overlap detection

For each upload, WakeRoute:

  1. Computes the local start time and end time of the track.
  2. Compares that time window with all existing tracks in its index.
  3. If the new track's time range overlaps an existing track's time range (even partially), it considers them part of the same run.

Run IDs and shared links

Internally, each run has a run ID, e.g. abc123. All overlapping tracks share the same run ID, so they share the same URL:

Example:
1. You upload a walk at 9:00–9:30 and get /sail/run42 with just your track.
2. A friend uploads a bike ride from 9:10–9:45. WakeRoute detects overlap and connects that track to run42.
3. Now /sail/run42 shows both tracks animated together.

If someone else opens the original link after additional overlapping tracks are added, they'll see the updated, combined animation.

4 The animation view: controls & features

Timeline & play/pause

  • A slider at the bottom represents time from the earliest track point to the latest.
  • Moving the slider manually scrubs through time, updating all markers on the map.
  • A play / pause button advances the slider automatically, replaying the run as an animation.
  • A small time display shows the current time point in local time.

Colored tracks by speed

Each track is drawn on the map with segments colored by speed. For example:

  • Slow segments appear in cooler colors.
  • Fast segments appear in warmer colors.

A legend shows the speed scale in knots for sailing data, or km/h for other activities.

Markers for current position

Each track has a small marker (dot) that moves along as the animation progresses. Tooltips or labels on these markers can show:

  • The track name (e.g. "Runner A", "Car 2").
  • The current distance to the next reference point (if marks are configured).
  • Other context like time and speed at that moment.
Example: In a multi-car road trip, each car's marker moves along the route. You can watch who is ahead, who stopped longer, and how speeds differ on highways vs city streets.

5 Optional: distance to "marks" or reference points

WakeRoute can optionally use a list of marks or reference points along your route. These are just named coordinates: they could be turns on a course, checkpoints, intersections, buoy locations, parking lots, etc.

For each track, WakeRoute can:

  • Infer which marks were actually used (based on closest approach).
  • Determine which mark a point is "heading to" next.
  • Calculate the distance from the current position to that next mark.

During the animation, you can see:

  • Each track's current distance to the next mark.
  • The differences in distance between multiple tracks (e.g., who is 0.15 units ahead/behind relative to the leader).
Example: You define marks at important intersections in a city. During the animation, WakeRoute shows that Car A is 0.3 km from the next intersection, while Car B is 0.5 km away, making it easy to see who is "ahead" in practical terms.

If your deployment has a "marks & cities" configuration page, you can define different sets of marks per city and reuse them across runs.

6 Recent runs & sharing links

Recent runs page

The Recent runs page lists recently generated runs (based on their creation time and metadata). For each run you'll usually see:

  • Run title (e.g. "Saturday Group Ride").
  • Approximate date and time window.
  • Number of tracks included in the run.

Clicking a run entry opens the animation view for that run.

Sharing

The URL of a run (something like /sail/<run_id>) is sharable with others. Anyone with the link can see the map and animation in their browser, without needing to re-upload GPX files.

Example: After a weekend hike, you upload everyone's tracks. You then send the run link to the group chat so everyone can replay the hike and see where paths diverged or who took which shortcut.

7 For yacht clubs: recurring series with multiple fleets

WakeRoute is built for club racing: a recurring series where 3-5 fleets start a few minutes apart on the same course, and each fleet wants its own results. Many clubs call this a Wednesday night beer can race, but the same setup works for any recurring race night.

One event, many race nights

Create a single series event for the season. This event persists all season; you do not need a new website event for each week. Each race night creates one or more races inside the same season event as boats start recording and select the course in the iOS app.

Set the venue center latitude/longitude and the event area radius carefully. iOS nearby discovery uses that venue radius to decide whether a sailor sitting on a boat is close enough to see the event.

Define your fleets once

Add your fleet classes to the event — e.g. Cruising Spinnaker, J/105, PHRF Non-Spin, Jib & Main. These carry over from week to week. When sailors record with the WakeRoute iOS app, they pick their fleet at the start of recording.

How a typical race night works

  1. Before the season, the organizer creates the website event, links the club marks library, adds fleet classes, and creates preset course options.
  2. On race night, a sailor onboard opens the WakeRoute iOS app. The app uses the phone's location to find nearby planned events. The sailor chooses the season event, selects tonight's course, picks their fleet, and starts recording.
  3. WakeRoute creates a live recording event and bridges it back to the exact long-lived website event. The selected start time is interpreted in the venue's local date, so an evening race is not accidentally keyed to the next UTC day.
  4. Other sailors nearby join the same live event from their phones. They select their fleet and start recording.
  5. After racing, tracks upload automatically. WakeRoute groups each fleet's tracks into separate results — Cruising Spinnaker boats are compared only against other Cruising Spinnaker boats, J/105s only against J/105s, and so on.

Per-fleet results

Each fleet gets its own results page with speed plots, tack analysis, and animated replay showing only the boats in that fleet. The race hub page shows all fleets at a glance, with links to each fleet's results.

Tonight's course (and mid-evening swaps)

Most clubs have a fixed set of buoys (say ~9 permanent marks) and the race committee picks an ordered subset each race night — for example Start → M3 → M1 → M5 → Finish. WakeRoute lets the organizer pre-configure these as named preset courses, then any boat picks which one is in play from the iOS app a few minutes before the first start.

  1. Organizer (once per season, in the web editor): on the event's edit page, scroll to Preset Courses for Tonight. Click New preset course, name it (e.g. "North Loop"), check the club marks you want, reorder them with Up/Down, and save. Repeat for each course variant (e.g. "South Triangle", "Windward-Leeward Short"). Start-line ends can be pinged from iOS at race time or corrected later from the results page.
  2. Any sailor (race evening, in the iOS app): when starting or joining the recording, the wizard shows the list of preset courses with the mark sequence for each. Tap the one the race committee just announced and continue.
  3. Mid-evening swap: if the wind shifts and the RC changes the course between races, any boat can open the HUD menu, tap Change course, and pick the new one. Tracks uploaded after the swap are routed to a new race bound to the new course. Previous races keep their original course intact — no retroactive rewrites.
Example: Columbia YC pre-configures "North Loop" and "South Triangle" in April. On a given Wednesday, the race committee announces "North Loop" and boat A picks it in the app at 5:45 PM. After the first fleet finishes, the wind clocks and the RC calls "South Triangle" for the second race. Boat A taps Change course at 6:40 PM. WakeRoute produces two races for the evening — one scored on North Loop, one on South Triangle — automatically routing each fleet's tracks to the correct one by start time.

Uploading via the web (without the iOS app)

Sailors who record GPX tracks with other apps or devices can upload them on the web. On the upload form, select the event from the "Attach upload to existing event" dropdown, then choose the correct fleet class. WakeRoute will auto-match the track to the right week's race based on the track's timestamps and location.

Optional: passcode protection

A passcode protects the website edit page only. It is for organizers who should manage marks, preset courses, fleets, and later course corrections. Recording, joining, and uploading from iOS are not passcode-gated.

Example: Chicago Corinthian Yacht Club runs "Wednesday Night" all summer. They create one series event in April. Every Wednesday from May to September, 4 fleets (Cruising Spin, J/105, PHRF, Jib & Main) start 5 minutes apart. Sailors open the app, tap the event, pick their fleet, and hit record. After the race, each fleet's results appear automatically — no manual setup needed week to week.

8 Tips, examples, and troubleshooting

Good use cases

  • Running / walking: Compare pace and route choices on repeated runs.
  • Cycling: Overlay multiple riders' data from the same group ride.
  • Driving: Visualize a road trip day, compare different cars or routes.
  • Boating or water sports: Replay tacks, turns, or races across multiple boats.
  • Hiking / skiing: Understand how groups spread out over time on the mountain.

When tracks don't combine as expected

  • Make sure the activities actually overlap in time. If one track ends hours before another begins, they will be separate runs.
  • Check device time settings. If one device's clock is off by many hours, the time windows might not overlap correctly.
  • If you see multiple entries in the Recent page for what should be one run, it may be from older runs created before combination logic or cleanup were applied. New uploads should follow the consistent "shared run ID" behavior.

GPX export tips

  • Prefer exports that include timestamps and full GPS detail. If you see options like "route only" vs "full activity", pick the full one.
  • If the track looks very coarse (few points) the animation will still work, but speed and distance estimates may be less smooth.