Skip to content

Car Camera Route Studio

See where your dashcam went. Replay the drive on a map, with speed and sensor charts.

Free and open source. It runs on your own computer, with no database and no npm dependencies on the server. Drop in your files and open it in the browser.

Copy
git clone https://github.com/TheTechBasket/route-studio.git
cd route-studio
# copy .txt, .gpx or .geojson files into data/input/
pnpm start   # http://127.0.0.1:4173

What it reads and shows

One import step turns your files into a per-day cache, and the app draws any day or date range from it.

Input formats
3
dashcam TXT, GPX, GeoJSON
Chart metrics
8
speed, heading, altitude, sensors
Replay speeds
4
1x, 5x, 20x and 60x
Speed ceiling
130 km/h
default, set with MAX_SPEED_KMH

Source: public/index.html, docs/formats.md and app.ts in the repo, checked 2026-09-21.

What it looks like

Route Studio showing a 30 km drive on a map with the replay position marked and a speed chart along the bottom
A drive on the map, mid replay, with the speed chart underneath. Demo route.

What you get

  • Map and replay

    A Leaflet map with start and end markers. Replay the drive at 1x, 5x, 20x or 60x with the map following, and the stretches where the car sat still are compressed.

  • Pick a day or a range

    Choose a day from a list, or set From and Until dates. The readout shows points, distance, peak speed and the length of the window.

  • Three views of speed

    Cleaned, raw device and calculated speed, in km/h or mph. Cleaned speed replaces implausible spikes with speed worked out from the coordinates.

  • Stops and highlights

    It detects stops along the route and lists them. Pin places by searching for a name or clicking the map, and sort your pins into your own categories.

  • Exports

    Export the loaded route as GPX or GeoJSON. Trip Report builds a printable page that you can save as a PNG or print to PDF.

  • Built for growing logs

    Dashcam TXT files import incrementally, so when a log grows only the new bytes are read. GPX and GeoJSON files are read again in full when they change.

One bad GPS fix does not ruin the chart

Dashcams store speed in hundredths of km/h, and a bad fix can produce a wild spike. Route Studio keeps the device value and also works out speed from consecutive coordinates.

The cleaned view uses the device speed, and falls back to the calculated one when the device value is missing, negative, above the ceiling or far from the calculated speed. The default ceiling is 130 km/h. Raise it for a faster vehicle:

Copy
MAX_SPEED_KMH=250 pnpm import -- --force

Trying it with your own files

  1. Check Node.js. You need Node.js 22.6 or newer. It runs the TypeScript files directly, so there is no build step.
  2. Add your data. Copy .txt, .gpx, .geojson or .json files into data/input/. Subfolders are fine.
  3. Start it. Run pnpm start, then open http://127.0.0.1:4173. It indexes new files first, then serves the app.
  4. Rebuild if you need to. Run pnpm import -- --force to wipe the generated cache and build it again from your files.

Good to know

  • The server listens on 127.0.0.1 only, so other machines on your network cannot reach it.
  • The page loads Leaflet and Tailwind from CDNs and map tiles from OpenStreetMap, so the map needs an internet connection.
  • Place search and place names use OpenStreetMap Nominatim. The optional Snap route to roads setting sends your route to the public OSRM server, so leave it off for a private route.
  • It was built and tested against a 70mai Dash Cam 4K A810. Other cameras that write the same $V02 lines should work as is.

Questions

What is Car Camera Route Studio?
A local web app that reads GPS data from dashcam logs, GPX files and GeoJSON files, then shows the drive on a map with speed, heading, altitude and sensor charts.
Which dashcams work?
It was built and tested against a 70mai Dash Cam 4K A810. Any camera that writes the same `$V02` comma separated GPS lines should work, and so should any GPX or GeoJSON export. If yours does not parse, open an issue with a sample.
Does it upload my files?
No. The app runs on your computer and reads your files from disk. It does call OpenStreetMap for map tiles and place lookups, and the public OSRM server only if you turn on road snapping.
What do I need to run it?
Node.js 22.6 or newer and pnpm. There is no database, no build step and no npm dependency on the server.
Can I export a route?
Yes. You can export the loaded route as GPX or GeoJSON, and Trip Report makes a page you can save as a PNG or print to PDF.
Is it free?
Yes. It is free to download and run, and the source is on GitHub.

Load one day of your drive

Issues and stars on GitHub help other people find it.