Automatic race detection
Start-line trigger, live classification, finish detection. The system knows the race state without human input.
Live · RTK GNSS tracking
Navionix tracks every runner at 100Hz with RTK precision — live classification, split times, and replay, from the starting gate to the photo finish.
0 Hz
Position fixes per second, per runner
cm
RTK-grade precision, fix quality 4/5
<1 s
Glass-to-glass latency, device to viewer
0+
Parallel ingest channels — a full field at once
01 · Live tracking
Every runner positioned in real time from RTK GNSS receivers. Positions, gaps in time and distance, and instantaneous speed update as the race unfolds — and multi-lap distance math stays correct even when the finish line isn’t the start line.
Live demonstration leaderboard from an anonymized real race: runners ranked by distance covered, with time gaps to the leader and instantaneous speeds, updating continuously.
02 · Race intelligence
Start-line trigger, live classification, finish detection. The system knows the race state without human input.
Exact crossing timestamps at every timing line, per runner — computed with PostGIS line-crossing geometry.
Positions, time and distance gaps, instantaneous and average speeds — updated continuously, race-long.
03 · Replay
Full replay with smooth interpolation — any race, any speed, every runner, every meter. Compact server-side trajectory sampling loads replays 10–20× faster. Then go deeper: speed curves, sectional comparisons, start-offset analysis, ground covered.
04 · Telemetry
After the line, the same 100Hz stream becomes a per-runner report — start, cruising regime, finish kick, peak, path efficiency, regularity — computed automatically from the raw fixes.
Telemetry
GPS data · 100Hz capture · real race · anonymized
| # | Runner | Delay | Start | Regime | Finish | Peak | Path | Regularity | Drops |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 4 Runner 4 | +0.5s | 50.5 km/h | 48.9 km/h | 47.4 km/h ▼ −3.1% vs regime | 52.8 km/h @1015m · mid | ×1.062 line 2.3/5.2m | 3.5% | 0 |
| 2 | 1 Runner 1 | +0.5s | 49.2 km/h | 49.6 km/h | 48.5 km/h ▼ −2.3% vs regime | 52.3 km/h @1170m · late | ×1.064 line 3.2/5.9m | 3.4% | 0 |
| 3 | 3 Runner 3 | 0.0s | 49.0 km/h | 48.7 km/h | 47.5 km/h ▼ −2.4% vs regime | 52.2 km/h @32m · early | ×1.044 line 2.3/6.3m | 2.4% | 0 |
| 4 | 6 Runner 6 | 0.0s | 50.3 km/h | 48.6 km/h | 47.0 km/h ▼ −3.3% vs regime | 53.6 km/h @44m · early | ×1.041 line 2.2/7.5m | 1.8% | 0 |
| 5 | 2 Runner 2 | 0.0s | 50.1 km/h | 47.6 km/h | 43.1 km/h ▼ −9.5% vs regime | 52.7 km/h @90m · early | ×1.026 line 1.3/5.2m | 2.2% | 0 |
| 6 | 8 Runner 8 | +0.7s | 48.1 km/h | 47.2 km/h | 44.9 km/h ▼ −4.9% vs regime | 49.8 km/h @1081m · late | ×1.017 line 1.9/5.9m | 2.5% | 0 |
| 7 | 7 Runner 7 | +1.1s | 47.8 km/h | 46.7 km/h | 43.8 km/h ▼ −6.2% vs regime | 50.3 km/h @1053m · mid | ×1.009 line 1.9/6.4m | 3.6% | 0 |
05 · Architecture
A Rust backend — memory-safe, predictable latency, no GC pauses under load. Multi-sentence NMEA fusion combines position, speed, heading, and per-fix accuracy into one coherent data point. Every fix lands in PostgreSQL + PostGIS: auditable, replayable. Graceful degradation and backpressure under burst load.
20+ parallel channels
GGA + VTG + GST fusion
PostGIS line crossings
unlimited viewers
device → server → live viewer · <1s end-to-end
06 · Integrations
Clean REST + WebSocket API. Single-binary deployment — backend and frontend ship as one artifact.
Tell us about your track and your timing setup — we’ll show you a live demo.
navionix@ippodromoghirlandina.it