Technologie
De l’antenne à la diffusion, de façon déterministe.
Un regard à l’intérieur de la pipeline pour les évaluateurs techniques : comment un fix de position devient un classement en direct, un temps intermédiaire et un replay — en moins d’une seconde.
01 · Ingestion
Tout un peloton, en parallèle
Chaque cheval porte un récepteur GNSS RTK qui transmet 100 fixes de position par seconde. La télémétrie arrive sur 20+ canaux UDP parallèles — tout le peloton ingéré simultanément, sans contention entre chevaux.
Le backend est en Rust : memory-safe, latence prévisible, aucune pause de garbage collection sous charge. Les pics de trafic sont gérés par backpressure et dégradation maîtrisée — un paquet perdu dégrade la fluidité, jamais l’exactitude.
Fusion NMEA · par fix
- GGA position + qualité du fix (RTK 4/5)
- VTG vitesse + cap sol
- GST estimation de précision par fix
- → fusionnés en un seul point de donnée cohérent, avec une précision RTK centimétrique
02 · Moteur de course
Le système connaît l’état de la course
Déclenchement au départ, classement en direct, détection de l’arrivée — sans intervention humaine. Les franchissements de ligne sont calculés avec la géométrie PostGIS pour des horodatages exacts au départ, à l’arrivée et à chaque ligne intermédiaire. Le calcul multi-tours reste exact même quand la ligne d’arrivée n’est pas celle du départ.
- scheduled
- warmup
- active
- finished
- official
Temps intermédiaires et sectionnels
Horodatages de franchissement par cheval à chaque ligne de chronométrage, en direct — des sectionnels pendant la course, pas après.
Classement en direct
Positions, écarts en temps et en distance, vitesses instantanées et moyennes — recalculés en continu pour tout le peloton.
Les conditions dans le flux
Les cotes en direct et les conditions météo sont intégrées directement au flux de course.
03 · Persistance et audit
Chaque fix conservé. Chaque course auditable.
Toute la télémétrie persiste dans PostgreSQL + PostGIS. N’importe quelle course peut être rejouée fix par fix, et chaque classement ou intermédiaire peut être retracé jusqu’aux positions brutes qui l’ont produit.
Les replays se chargent via une compact trajectory API — l’échantillonnage côté serveur les rend 10–20× plus rapides à charger, avec une interpolation fluide côté client.
04 · Surface d’API
API REST + WebSocket propres
Les données live transitent par WebSocket avec des abonnements par capteur et par course, vers un nombre illimité de spectateurs. Historique, replays et analyses sont servis en REST. Le système entier se déploie en binaire unique — backend et frontend dans un seul artefact.
Parlons intégration →