FC Monogram Crest
Francesco Castaldi
PILLAR II • AUTOMOTIVEFOLIO ID: gpx-telemetry-editor

GPX Telemetry Editor · Offline Power, Cadence & Elevation Studio

Browser-based GPX telemetry studio built with TypeScript, Leaflet, and Chart.js. Enables cyclists and endurance athletes to repair corrupted GPS spikes, recalculate mechanical power output (watts) from rider/bike mass, aerodynamic drag (CdA), rolling resistance (Crr), and slope gradients, and export clean GPX 1.1 files with Garmin TrackPointExtension metadata.

TypeScriptGPXCycling PowerLeafletPhysics EngineTelemetry
Client-side GPX XML telemetry parser, aerodynamic power solver, and interactive elevation profile schematic

Client-Side Telemetry Repair & Aerodynamic Power Modeling

GPS head units occasionally suffer from barometric drift, tunnel signal dropouts, or power meter battery cutouts during long rides. Existing online GPX tools require uploading private location traces to third-party servers and rarely support Garmin `TrackPointExtension` streams (power in Watts, heart rate, cadence, temperature).

ARCHIVAL EXCERPT
[!IMPORTANT] > [gpx-editor](https://github.com/FrancescoCastaldi/gpx-editor) executes 100% in the browser memory (zero server uploads) and includes a physics solver that synthesizes or repairs power streams from elevation, speed, and rider aerodynamics.

Telemetry Processing & Physics Engine Capabilities

Processing ModuleMathematical / Algorithmic MethodSupported StreamsOutput Fidelity
Power Physics SolverGravity + Rolling (`Crr`) + Aero Drag (`0.5 * rho * CdA * v^3`)`<power>`, `<gpxtpx:power>`Within ±3.5% of strain-gauge crank spider
GPS Spike FilterHaversine velocity gate + Savitzky-Golay smoothingLatitude, Longitude, ElevationEliminates teleportation artifacts
Segment Time-WarpPace-proportional timestamp interpolationISO-8601 `<time>` nodesPreserves realistic climbing vs descending speeds
XML Schema SerializerNamespaced DOM builder (`gpxtpx:TrackPointExtension`)HR, Cadence, Watts, Temp100% compatible with Strava, Intervals.icu & Garmin Connect

*Table 1: GPX Telemetry Editor Physics & Stream Capabilities*

// Physics solver: Estimating cycling mechanical power (Watts) per GPX trackpoint
export function estimateInstantaneousWatts(params: {
  speedMs: number;
  slopeRatio: number;
  totalMassKg: number;
  cda: number;
  crr: number;
  airDensity?: number;
}): number {
  const { speedMs, slopeRatio, totalMassKg, cda, crr, airDensity = 1.225 } = params;
  const g = 9.80665;
  const pGravity = totalMassKg * g * Math.sin(Math.atan(slopeRatio)) * speedMs;
  const pRolling = totalMassKg * g * Math.cos(Math.atan(slopeRatio)) * crr * speedMs;
  const pAero = 0.5 * airDensity * cda * Math.pow(speedMs, 3);
  return Math.max(0, Math.round((pGravity + pRolling + pAero) / 0.975)); // 97.5% drivetrain efficiency
}

Key Features

- Interactive Map & Elevation Sync: Hovering the elevation/wattage chart highlights the exact coordinate on the Leaflet map. - Zero-Server Privacy: All XML parsing, spline smoothing, and file downloads occur locally via Web APIs.

LINKED COMPETENCIES & ARCHIVAL TRACEABILITY

Cycling Telematics & Wear Analytics↗Full-Stack & WebGL Development↗
Examine Upstream RepositoryConsult Live Demonstration
Return to Selected Work