6 points par GN⁺ 2025-04-20 | 1 commentaires | Partager sur WhatsApp
  • undercut-f1 est un client TUI open source qui enregistre les informations de chronométrage en temps réel des sessions de F1 pour pouvoir les rejouer plus tard
  • Il peut recevoir et visualiser des flux de données basés sur SignalR, ou rejouer des sessions enregistrées
  • Il propose une tour de chronométrage détaillée par pilote, la stratégie des arrêts au stand, les messages de la direction de course, l’analyse stratégique, le suivi de position des pilotes, la radio d’équipe et l’historique tour par tour
  • Les données sont stockées localement et peuvent servir au développement et aux tests, avec prise en charge d’un mode simulation
  • Mise en œuvre d’un affichage visuel via les protocoles d’image de terminal d’iTerm2, Kitty et autres

Présentation du projet undercut-f1

undercut-f1 est un outil open source qui visualise les informations de live timing de la F1 dans une TUI (interface utilisateur terminal) basée sur le CLI
Ses principales caractéristiques sont les suivantes :

  • Représentation visuelle et audio des données de session F1 en temps réel
  • L’utilisateur peut enregistrer lui-même les données de session, puis les rejouer plus tard
  • Prise en charge d’un réglage de la latence en tenant compte du délai moyen des diffusions F1 (30 à 60 secondes)
  • Application CLI basée sur .NET, disponible sous forme de package NuGet ou d’exécutable autonome

Fonctionnalités principales

  • Tour de chronométrage

    • Affichage des temps par secteur (couleurs pour le meilleur personnel / meilleur absolu)
    • Dernier tour et meilleur tour
    • Type de pneus et durée d’utilisation
    • Écart avec le leader et avec la voiture précédente
    • Comparaison des écarts entre le pilote sélectionné et les autres pilotes
  • Informations de stratégie / relais

    • Permet de voir d’un seul coup d’œil la stratégie pneumatique de chaque pilote
    • Visualisation du moment d’utilisation et de la durée de chaque train de pneus
    • Détection facilitée des différences de stratégie
  • Écran de direction de course

    • Consultation des messages de la direction de course : enquêtes officielles, pénalités, météo, etc.
  • Suivi des pilotes

    • Visualisation en temps réel de la position en piste du pilote sélectionné
    • Fonctionne dans les terminaux prenant en charge les protocoles d’image d’iTerm2 et Kitty
    • Sélection et comparaison des pilotes via le curseur
  • Historique du chronométrage

    • Suivi de l’évolution des écarts / intervalles tour par tour
    • Graphiques de tendance sur les 15 derniers tours pour les temps au tour et l’écart avec le leader
  • Écoute et transcription de la radio d’équipe

    • Utilise le modèle Whisper pour transcrire localement la radio d’équipe via sa propre reconnaissance vocale
    • La qualité dépend de la qualité audio du jour, et les propositions d’amélioration sont également bienvenues

Exécution et replay des sessions

  • Lancer une session en direct

    • Exécuter undercutf1
    • Entrer dans l’écran de session avec la touche <kbd>S</kbd>
    • Démarrer la session en direct avec la touche <kbd>L</kbd>
    • Afficher la tour de chronométrage avec la touche <kbd>T</kbd>
    • Les données de session sont enregistrées dans ~/undercut-f1/data/<session-name> et peuvent être réutilisées plus tard pour le replay
  • Rejouer une session enregistrée

    • Il est possible de copier les données du dossier Sample Data, ou de télécharger les données de sessions officielles pour les rejouer
    • Démarrer la simulation avec la touche <kbd>F</kbd> → sélectionner une session → entrer dans la tour de chronométrage
    • Ajuster la latence avec la touche <kbd>N</kbd> pour naviguer rapidement
  • Télécharger les données de session

    • La commande undercutf1 import <year> permet de consulter la liste des sessions de l’année concernée
    • Il est ensuite possible de sélectionner une session, de la télécharger et de la convertir localement, puis de la rejouer

Gestion du curseur et de la latence

  • Sur tous les écrans, le curseur se contrôle avec les touches <kbd>▲</kbd>/<kbd>▼</kbd>
    • Exemple : en sélectionnant un pilote donné, il devient possible de visualiser les écarts de temps par rapport à ce pilote
  • Les touches <kbd>M</kbd>/<kbd>N</kbd> servent à ajuster la latence pour se synchroniser avec la diffusion en direct
    • En les utilisant avec <kbd>Shift</kbd>, l’ajustement se fait par paliers de 30 secondes

Source des données et mode de stockage

  • Le flux F1 Live Timing repose sur SignalR
  • Les données en temps réel sont reçues en s’abonnant à des topics tels que :
    • TimingStats, TimingData, WeatherData, DriverList, RaceControlMessages, TeamRadio, etc.
  • Pendant une session, les données sont enregistrées dans les deux fichiers suivants :
    • subscribe.txt : données initiales reçues lors de l’abonnement
    • live.txt : ensemble des données reçues en temps réel pendant la session

Licence

  • Ce projet est un projet open source non officiel sans lien avec les instances officielles de la F1
  • Les marques F1, FORMULA ONE et autres marques associées appartiennent à Formula One Licensing B.V.

1 commentaires

 
GN⁺ 2025-04-20
Commentaires sur Hacker News
  • En Finlande, le télétexte reste populaire pour suivre le sport. Un TUI donne directement les informations essentielles, sans publicité. Le format télétexte a désormais survécu plus longtemps que la télévision elle-même, au point que les gens lisent des pages de télétexte via des applications mobiles
  • En tant que fan de F1, j’ai vraiment hâte d’essayer ça ce week-end. Je me demande d’où viennent les données live/statiques et dans quelle mesure elles sont librement réutilisables. Beaucoup de sports sont très protecteurs concernant les droits sur les données. Je me demande comment la F1 voit cela. Quoi qu’il en soit, c’est vraiment excellent, et je pense que je pourrai l’utiliser comme deuxième/troisième écran depuis mon canapé tout en profitant de la course. Si je trouve un moyen de contribuer, je le ferai
  • Félicitations. Le README est bien rédigé et montre toute l’attention portée à ce projet
  • Excellent travail. La page sur la stratégie pneumatiques permet de voir comment Ferrari s’est trompée dans sa stratégie pour ses pilotes
  • Ça a l’air séduisant. Malheureusement, l’installation rapide via la méthode d’outil dotnet (Win10) se termine sans erreur, mais au lancement de l’application, une fenêtre figée apparaît. Il n’y a aucune erreur dans les logs. Les commandes clavier ne fonctionnent pas, même pas Q. La récupération des données fonctionne, mais la fenêtre figée ne change pas. Je ne cherche pas de support technique, je signale simplement que le README a peut-être besoin d’étapes supplémentaires
  • Vraiment très cool. Dans quelques semaines, je vais au Grand Prix de Miami avec ma femme. J’ai hâte d’utiliser ça pour la séance/course de Jeddah
  • Je l’ai installé sur Windows avec la méthode dotnet, mais ça ne semble pas fonctionner. La ligne du haut avec Quit / Cursor / Session, etc., s’affiche, mais aucune touche ne fait quoi que ce soit. Je voulais le tester pendant la session en cours
  • Merci d’avoir créé ça. En tant qu’amateur de F1 et de TUI, c’est parfait pour mon envie d’en savoir plus sur ce que font les équipes du milieu de grille pendant que la diffusion se concentre sur l’avant du peloton
  • Ça a l’air excellent. Cela dit, ce serait bien s’il y avait un moyen plus simple de le lancer. Le binaire Linux n’est pas autonome et il faut installer des dépendances tierces. Un binaire statique (ou une image de conteneur ?) serait appréciable
  • Ça a l’air assez cool, mais je n’arrive pas à faire fonctionner correctement le délai. J’essaie de regarder les qualifications avec environ 25 minutes de retard : l’horloge affiche la bonne heure, mais les temps des pilotes n’apparaissent pas. La radio et les messages du contrôle de course restent à l’état actuel. Je peux voir tous les messages du contrôle de course et de la radio de la Q1