Extract
Browser pulls GPMF telemetry directly from MP4 — GPS, accelerometer, gyro — without uploading the video.
Piste extracts GPS telemetry from GoPro and other action-cam files in the browser, reconstructs runs, matches them to resort trails, and aggregates everything into a clean spatial dataset — queryable over REST, GeoJSON, and MCP.
live · last 60s
api.piste.fyi
→ 3 resorts indexed · 1,284 trails · 184 lifts · p95 312ms
/the pipeline
Browser pulls GPMF telemetry directly from MP4 — GPS, accelerometer, gyro — without uploading the video.
Server smooths the trace with Savitzky–Golay, segments it into runs / lifts / traverses / idle, and reconstructs vertical, distance, and speed envelopes.
Each run is matched against resort trail and lift geometry from OpenSkiMap with a confidence score, stored as PostGIS line + multipolygon overlap.
Everything rolls up into resort-, trail-, and lift-level analytics — queryable as JSON, GeoJSON, or via the MCP server.
/proof of volume
3
resorts
indexed today
1,284
trails
multi-polygon, OpenSkiMap
184
lifts
line + capacity, Go-side typed
curl example
# Bulk resort directory as GeoJSON curl https://api.piste.fyi/data/resorts.geojson | jq '.features | length' # Single resort + trails curl https://api.piste.fyi/data/resorts/a-basin/trails.geojson \ | jq '.features[0].properties'
Bulk endpoints are cached at the edge for 24h. Per-trail / per-session reads go through the live REST API. More on the data surface →
Piste ships a hosted MCP server. Drop the URL into Claude or any MCP-compatible client and ask questions in natural language: "show me every recorded run on Pallavicini under 4 minutes."