Undercut-F1 – 드라이버 추적 및 가변 지연 기능을 갖춘 F1 라이브 타이밍 TUI

20 hours ago 1

  • undercut-f1은 F1 세션의 실시간 타이밍 정보를 기록하여 나중에 재생할 수 있는 오픈소스 TUI 클라이언트
  • 신호 기반 스트림 데이터를 받아 시각화하거나 녹화된 세션을 리플레이할 수 있음
  • 상세한 드라이버별 타이밍 타워, 피트 스톱 전략, 레이스 컨트롤 메시지, 전략 분석, 드라이버 위치 추적, 팀 라디오, 랩별 히스토리 기능 제공
  • 데이터는 로컬에 저장되어 개발 및 테스트에 활용 가능, 시뮬레이션 모드도 지원
  • 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 등
  • 세션 시 데이터는 다음 두 파일로 저장됨:
    • subscribe.txt: 구독 시 받은 초기 데이터
    • live.txt: 세션 중 실시간 수신된 전체 데이터

라이선스

  • 본 프로젝트는 F1 공식 기관과 무관한 비공식 오픈소스 프로젝트
  • F1, FORMULA ONE 등 관련 상표는 Formula One Licensing B.V. 가 소유함

Read Entire Article