6 ポイント 投稿者 GN⁺ 2025-04-20 | 1件のコメント | WhatsAppで共有
  • undercut-f1は、F1セッションのリアルタイムタイミング情報を記録して後から再生できるオープンソースのTUIクライアント
  • SignalRベースのストリームデータを受け取って可視化したり、録画済みセッションをリプレイできる
  • 詳細なドライバー別タイミングタワー、ピットストップ戦略、レースコントロールメッセージ、戦略分析、ドライバー位置追跡、チームラジオ、ラップごとの履歴機能を提供
  • データはローカルに保存され、開発やテストに活用可能で、シミュレーションモードにも対応
  • iTerm2、Kitty などのターミナル画像プロトコルを活用した視覚的ディスプレイを実装

undercut-f1 プロジェクト紹介

undercut-f1は、F1ライブタイミング情報をCLIベースのTUI(ターミナルユーザーインターフェース)で可視化するオープンソースツール
主な特徴は次のとおり:

  • リアルタイムのF1セッションデータを視覚的に表現
  • ユーザーがセッションデータを直接録画し、後から再生可能
  • F1中継の平均遅延時間(30〜60秒)を考慮し、遅延設定の調整機能を提供
  • .NETベースのCLIアプリで、NuGetパッケージまたは単一実行ファイルの形で利用可能

主な機能

  • タイミングタワー

    • セクターごとの記録表示(自己ベスト/全体ベストを色分け表示)
    • 直近およびベストのラップタイム
    • タイヤ種別と使用時間
    • 先頭および前走車との差
    • 選択したドライバーと他のドライバーのタイム差比較
  • 戦略/スティント情報

    • ドライバーごとのタイヤ戦略をひと目で確認可能
    • 各タイヤの使用開始時点と継続時間を可視化
    • 戦略差を見つけやすい
  • レースコントロール画面

    • 公式調査、ペナルティ、天候情報などのレースコントロールメッセージを確認
  • ドライバートラッカー

    • 選択したドライバーのリアルタイムのコース上位置を可視化
    • iTerm2およびKitty画像プロトコル対応ターミナルで動作
    • カーソルでドライバーを選択して比較可能
  • タイミング履歴

    • ラップごとのギャップ/インターバル変化を確認
    • 直近15ラップのラップタイムと首位との差のトレンドチャートを提供
  • チームラジオの再生と文字起こし

    • Whisperモデルを活用し、ローカルでチームラジオを音声認識で文字起こし
    • 品質は当日の音声品質に左右され、改善提案も募集中

セッション実行とリプレイ

  • リアルタイムセッションの実行

    • undercutf1を実行
    • <kbd>S</kbd>キーでセッション画面へ移動
    • <kbd>L</kbd>キーでリアルタイムセッションを開始
    • <kbd>T</kbd>キーでタイミングタワーを表示
    • セッションデータは~/undercut-f1/data/<session-name>に保存され、後の再生用データとして利用可能
  • 録画済みセッションのリプレイ

    • Sample Dataフォルダのデータをコピーするか、公式セッションデータをダウンロードしてリプレイ可能
    • <kbd>F</kbd>キーでシミュレーション開始 → セッション選択 → タイミングタワーへ移動
    • <kbd>N</kbd>キーで遅延時間を調整し、すばやく探索可能
  • セッションデータのダウンロード

    • undercutf1 import <year>コマンドで該当年のセッション一覧を確認可能
    • セッションを選択してローカルにダウンロードおよび変換 → 再生可能

カーソルおよび遅延管理機能

  • すべての画面で<kbd>▲</kbd>/<kbd>▼</kbd>キーによりカーソルを操作
    • 例: 特定のドライバーを選択すると、そのドライバー基準のタイム差を可視化可能
  • <kbd>M</kbd>/<kbd>N</kbd>キーでライブ中継との同期のための遅延時間を調整
    • <kbd>Shift</kbd>と同時押しで30秒単位の調整

データソースと保存方式

  • F1 Live TimingストリームはSignalRベース
  • 次のようなトピックを購読してリアルタイムデータを受信:
    • TimingStats, TimingData, WeatherData, DriverList, RaceControlMessages, TeamRadio など
  • セッション時のデータは次の2つのファイルに保存:
    • subscribe.txt: 購読時に受信した初期データ
    • live.txt: セッション中にリアルタイム受信した全データ

ライセンス

  • 本プロジェクトはF1公式機関とは無関係の非公式オープンソースプロジェクト
  • F1、FORMULA ONE などの関連商標は**Formula One Licensing B.V.**が所有

1件のコメント

 
GN⁺ 2025-04-20
Hacker Newsのコメント
  • フィンランドではスポーツを追うためにテレテキストがいまだに人気です。TUIは広告なしで核心的な情報をすぐに提供してくれます。テレテキスト形式は今やTVより長く生き残っており、人々はモバイルアプリを通じてテレテキストのページを読んでいます
  • F1を愛する者として、今週末これを使ってみるのが本当に楽しみです。ライブ/静的データの出所と、その自由な利用可能性について気になります。多くのスポーツはデータ権に対して非常に保護的です。F1がこれをどう見ているのか気になります。いずれにせよ、これは本当に素晴らしく、レースを楽しみながらソファに座って第2/第3の画面として使えそうです。貢献する方法が見つかればそうするつもりです
  • おめでとうございます。よく書かれたREADMEで、このプロジェクトに対する細やかな配慮が伝わってきます
  • 素晴らしい仕事です。タイヤ戦略ページを通じて、フェラーリがドライバー向けの戦略をどう失敗したのかを見ることができます
  • 魅力的に見えます。残念ながら、dotnetツール方式(Win10)を使ったクイックインストールでは、エラーなしでインストールできるものの、アプリ実行時に応答のないウィンドウが表示されます。ログにはエラーがありません。キーコマンドが動作しません(Qも含めて)。データ取得は動いていますが、応答のないウィンドウは変化しません。技術サポートを求めているわけではありませんが、READMEに追加の手順が必要かもしれないことをお伝えします
  • 本当に素晴らしいです。数週間後に妻と一緒にマイアミ・グランプリへ行く予定です。Jeddahのセッション/レースのためにこれを使ってみるのが楽しみです
  • dotnet方式を使ってWindowsにインストールしましたが、動作していないようです。Quit / Cursor / Session などの上部ラインは表示されますが、キーを押しても何も起きません。現在進行中のセッション中にテストしてみたかったのです
  • これを作ってくれてありがとう。F1とTUIを愛する者として、放送が先頭集団を映しているときに中団チームが何をしているのかをもっと知りたいという自分の欲求に完璧に応えてくれそうです
  • 素晴らしそうです。しかし、実行をもっと簡単にできる方法があるとよいですね。Linux向けバイナリはスタンドアロンではなく、サードパーティ依存関係をインストールしなければなりません。静的バイナリ(あるいはコンテナイメージ?)があるとよいでしょう
  • かなり良さそうですが、遅延をうまく動かせません。約25分遅れで予選セッションを見ようとしているのですが、時計は正しい時刻を表示する一方で、ドライバーのタイムは表示されません。無線とレースコントロールのメッセージは現在の状態です。Q1のすべてのレースコントロールメッセージと無線メッセージを見ることができます