6 Punkte von GN⁺ 2025-04-20 | 1 Kommentare | Auf WhatsApp teilen
  • undercut-f1 ist ein Open-Source-TUI-Client, der Live-Timing-Daten von F1-Sessions aufzeichnet und später wiedergeben kann
  • Kann Signal-basierte Stream-Daten empfangen und visualisieren oder aufgezeichnete Sessions als Replay abspielen
  • Bietet eine detaillierte fahrerspezifische Timing-Tower-Ansicht, Boxenstopp-Strategien, Race-Control-Meldungen, Strategieanalyse, Fahrer-Positionsverfolgung, Team-Radio und Verlauf pro Runde
  • Die Daten werden lokal gespeichert und können für Entwicklung und Tests genutzt werden, ein Simulationsmodus wird ebenfalls unterstützt
  • Umsetzung einer visuellen Darstellung mit Terminal-Bildprotokollen wie in iTerm2 und Kitty

Einführung in das Projekt undercut-f1

undercut-f1 ist ein Open-Source-Tool, das F1-Live-Timing-Daten in einer CLI-basierten TUI (Terminal User Interface) visualisiert
Die wichtigsten Merkmale sind:

  • Audiovisuelle Darstellung von F1-Session-Daten in Echtzeit
  • Nutzer können Session-Daten selbst aufzeichnen und später wiedergeben
  • Unter Berücksichtigung der durchschnittlichen Verzögerung von F1-Übertragungen (30–60 Sekunden) wird eine Funktion zur Anpassung der Verzögerung geboten
  • CLI-App auf .NET-Basis, nutzbar als NuGet-Paket oder als einzelne ausführbare Datei

Hauptfunktionen

  • Timing Tower

    • Anzeige der Zeiten pro Sektor (mit Farbanzeige für persönliche Bestzeit/Gesamtbestzeit)
    • Jüngste und beste Rundenzeit
    • Reifenart und Nutzungsdauer
    • Zeitabstand zur Spitze und zum vorausfahrenden Fahrzeug
    • Vergleich des Zeitabstands zwischen dem ausgewählten Fahrer und anderen Fahrern
  • Strategie-/Stint-Informationen

    • Reifenstrategie je Fahrer auf einen Blick erkennbar
    • Visualisierung von Einsatzzeitpunkt und Dauer jedes Reifensatzes
    • Strategieunterschiede leicht erkennbar
  • Race-Control-Bildschirm

    • Race-Control-Meldungen wie offizielle Untersuchungen, Strafen und Wetterinformationen einsehbar
  • Fahrer-Tracker

    • Visualisierung der Live-Position auf der Strecke des ausgewählten Fahrers
    • Funktioniert in Terminals mit Unterstützung für iTerm2- und Kitty-Bildprotokolle
    • Fahrer können über den Cursor ausgewählt und verglichen werden
  • Timing-Verlauf

    • Veränderungen von Gap/Intervall pro Runde nachvollziehbar
    • Diagramme mit Rundenzeiten und Gap-zur-Spitze-Trends der letzten 15 Runden
  • Team-Radio anhören und transkribieren

    • Nutzt ein Whisper-Modell, um Team-Radio lokal per eigener Spracherkennung zu transkribieren
    • Die Qualität hängt von der Audioqualität des jeweiligen Tages ab; Verbesserungsvorschläge sind willkommen

Session ausführen und Replay

  • Live-Session ausführen

    • undercutf1 ausführen
    • Mit der Taste <kbd>S</kbd> zum Session-Bildschirm wechseln
    • Mit der Taste <kbd>L</kbd> die Live-Session starten
    • Mit der Taste <kbd>T</kbd> den Timing Tower anzeigen
    • Die Session-Daten werden unter ~/undercut-f1/data/<session-name> gespeichert und können später für Replays verwendet werden
  • Aufgezeichnete Session wiedergeben

    • Daten aus dem Ordner Sample Data kopieren oder offizielle Session-Daten herunterladen, um sie als Replay abzuspielen
    • Mit der Taste <kbd>F</kbd> die Simulation starten → Session auswählen → zum Timing Tower wechseln
    • Mit der Taste <kbd>N</kbd> die Verzögerung anpassen und schnell navigieren
  • Session-Daten herunterladen

    • Mit dem Befehl undercutf1 import <year> kann die Liste der Sessions des entsprechenden Jahres angezeigt werden
    • Session auswählen, lokal herunterladen und konvertieren → danach Wiedergabe möglich

Funktionen für Cursor- und Verzögerungsverwaltung

  • In allen Ansichten den Cursor mit den Tasten <kbd>▲</kbd>/<kbd>▼</kbd> steuern
    • Beispiel: Wird ein bestimmter Fahrer ausgewählt, lässt sich der Zeitabstand relativ zu diesem Fahrer visualisieren
  • Mit den Tasten <kbd>M</kbd>/<kbd>N</kbd> die Verzögerung zur Synchronisation mit der Live-Übertragung anpassen
    • Zusammen mit <kbd>Shift</kbd> erfolgt die Anpassung in 30-Sekunden-Schritten

Datenquelle und Speicherverfahren

  • Der F1-Live-Timing-Stream basiert auf SignalR
  • Echtzeitdaten werden durch das Abonnieren folgender Topics empfangen:
    • TimingStats, TimingData, WeatherData, DriverList, RaceControlMessages, TeamRadio usw.
  • Während einer Session werden die Daten in den folgenden zwei Dateien gespeichert:
    • subscribe.txt: Initialdaten, die beim Abonnieren empfangen wurden
    • live.txt: sämtliche während der Session in Echtzeit empfangenen Daten

Lizenz

  • Dieses Projekt ist ein inoffizielles Open-Source-Projekt ohne Verbindung zu offiziellen F1-Organisationen
  • F1, FORMULA ONE und weitere zugehörige Marken sind Eigentum von Formula One Licensing B.V.

1 Kommentare

 
GN⁺ 2025-04-20
Hacker-News-Kommentare
  • In Finnland ist Teletext noch immer beliebt, um Sport zu verfolgen. Eine TUI liefert die wichtigsten Informationen sofort und ohne Werbung. Das Teletext-Format hat inzwischen länger überlebt als das Fernsehen selbst, sodass Menschen Teletext-Seiten nun über mobile Apps lesen.
  • Als jemand, der F1 liebt, freue ich mich sehr darauf, das dieses Wochenende auszuprobieren. Ich frage mich, woher die Live-/statischen Daten kommen und wie frei sie nutzbar sind. Viele Sportarten schützen ihre Datenrechte sehr stark. Ich frage mich, wie F1 das sieht. Jedenfalls ist das wirklich großartig, und ich könnte mir vorstellen, es gemütlich vom Sofa aus als zweiten oder dritten Bildschirm beim Rennen zu nutzen. Wenn ich eine Möglichkeit finde, beizutragen, werde ich das tun.
  • Glückwunsch. Ein gut geschriebenes README, das zeigt, wie sorgfältig dieses Projekt gemacht ist.
  • Großartige Arbeit. Auf der Seite zur Reifenstrategie kann man sehen, wie Ferrari die Strategie für seine Fahrer vermasselt hat.
  • Sieht attraktiv aus. Leider installiert die Schnellinstallation mit der dotnet-Tool-Methode (Win10) zwar ohne Fehler, aber beim Start der App erscheint ein nicht reagierendes Fenster. Im Log gibt es keine Fehler. Tastaturbefehle funktionieren nicht, auch Q nicht. Das Abrufen von Daten funktioniert, aber das nicht reagierende Fenster verändert sich nicht. Ich suche hier keinen technischen Support, wollte aber darauf hinweisen, dass im README eventuell zusätzliche Schritte nötig sind.
  • Wirklich cool. In ein paar Wochen fahre ich mit meiner Frau zum Miami Grand Prix. Ich freue mich darauf, das für die Session/das Rennen in Jeddah auszuprobieren.
  • Ich habe es mit der dotnet-Methode unter Windows installiert, aber es scheint nicht zu funktionieren. Die obere Zeile mit Quit / Cursor / Session usw. erscheint, aber keine Taste macht etwas. Ich hatte gehofft, es während der laufenden Session testen zu können.
  • Danke, dass du das gebaut hast. Als jemand, der F1 und TUIs liebt, ist das perfekt für mein Bedürfnis, besser zu verstehen, was die Teams im Mittelfeld machen, während der Broadcaster vorne im Feld bleibt.
  • Sieht großartig aus. Es wäre aber schön, wenn es einen einfacheren Weg zum Ausführen gäbe. Das Linux-Binary ist nicht eigenständig, und man muss Abhängigkeiten von Drittanbietern installieren. Ein statisches Binary (oder ein Container-Image?) wäre schön.
  • Sieht ziemlich cool aus, aber ich bekomme die Verzögerung nicht richtig zum Laufen. Ich versuche, die Qualifying-Session mit ungefähr 25 Minuten Verzögerung anzusehen, und die Uhr zeigt zwar die richtige Zeit an, aber die Fahrerzeiten erscheinen nicht. Radio- und Rennkontrollmeldungen sind im aktuellen Zustand. Ich kann alle Rennkontroll- und Radiomeldungen aus Q1 sehen.