Tecnologia

Dall’antenna alla regia, in modo deterministico.

Uno sguardo dentro la pipeline per chi valuta la tecnologia: come un fix di posizione diventa una classifica live, un tempo parziale e un replay — in meno di un secondo.

01 · Ingestione

Un intero campo, in parallelo

Ogni cavallo porta un ricevitore GNSS RTK che trasmette 100 fix di posizione al secondo. La telemetria arriva su 20+ canali UDP paralleli — l’intero campo acquisito simultaneamente, senza contesa tra i cavalli.

Il backend è in Rust: memory-safe, latenza prevedibile, nessuna pausa di garbage collection sotto carico. I picchi di traffico sono gestiti con backpressure e degradazione controllata — un pacchetto perso degrada la fluidità, mai la correttezza.

Fusione NMEA · per fix

  • GGA posizione + qualità del fix (RTK 4/5)
  • VTG velocità + direzione al suolo
  • GST stima di accuratezza per fix
  • → fusi in un unico punto dati coerente, con precisione RTK centimetrica

02 · Race engine

Il sistema conosce lo stato della corsa

Trigger in partenza, classifica live, rilevamento dell’arrivo — nessun intervento umano. Gli attraversamenti di linea sono calcolati con geometria PostGIS per timestamp esatti su partenza, arrivo e ogni linea intermedia. Il calcolo multi-giro resta corretto anche quando il traguardo non coincide con la partenza.

  1. scheduled
  2. warmup
  3. active
  4. finished
  5. official

Parziali e sezionali

Timestamp di attraversamento per cavallo a ogni linea di cronometraggio, live — sezionali mentre la corsa si svolge, non dopo.

Classifica live

Posizioni, distacchi in tempo e distanza, velocità istantanee e medie — ricalcolati di continuo per tutto il campo.

Condizioni nel feed

Quote live e condizioni meteo sono integrate direttamente nel feed di corsa.

03 · Persistenza e audit

Ogni fix registrato. Ogni corsa verificabile.

Tutta la telemetria persiste in PostgreSQL + PostGIS. Qualsiasi corsa può essere riprodotta fix per fix, e ogni classifica o parziale può essere ricondotto alle posizioni grezze che lo hanno prodotto.

I replay si caricano tramite una compact trajectory API — il campionamento server-side li rende 10–20× più veloci da caricare, con interpolazione fluida lato client.

04 · Superficie API

API REST + WebSocket pulite

I dati live viaggiano su WebSocket con sottoscrizioni per dispositivo e per corsa, verso spettatori illimitati. Dati storici, replay e analisi sono serviti via REST. L’intero sistema si distribuisce come binario singolo — backend e frontend in un unico artefatto.

Parliamo di integrazione →