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

> Clean Markdown view of GeekNews topic #20433. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20433](https://news.hada.io/topic?id=20433)
- GeekNews Markdown: [https://news.hada.io/topic/20433.md](https://news.hada.io/topic/20433.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-04-20T09:54:19+09:00
- Updated: 2025-04-20T09:54:19+09:00
- Original source: [github.com/JustAman62](https://github.com/JustAman62/undercut-f1)
- Points: 6
- Comments: 1

## Summary

**undercut-f1은 F1 세션의 실시간 타이밍 정보를 기록하고 재생할 수 있는 오픈소스 TUI 클라이언트**입니다. 이 도구는 **신호 기반 스트림 데이터를 시각화하거나 녹화된 세션을 리플레이**할 수 있으며, 드라이버 위치 추적, 팀 라디오, 전략 분석 등의 기능을 제공합니다. **데이터는 로컬에 저장되어 개발 및 테스트에 활용 가능**하며, iTerm2, Kitty 등의 터미널 이미지 프로토콜을 활용한 시각적 디스플레이를 구현합니다. 또한, **지연 설정 조정 기능을 제공하여** F1 방송의 평균 지연 시간을 고려한 사용자 맞춤형 경험을 지원합니다.

## Topic Body

- **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` 실행  
  - &lt;kbd&gt;S&lt;/kbd&gt; 키로 세션 화면 진입  
  - &lt;kbd&gt;L&lt;/kbd&gt; 키로 실시간 세션 시작  
  - &lt;kbd&gt;T&lt;/kbd&gt; 키로 타이밍 타워 보기  
  - 세션 데이터는 `~/undercut-f1/data/&lt;session-name&gt;`에 저장되어, **이후 재생용 데이터로 활용 가능**  
- # 녹화된 세션 리플레이  
  - `Sample Data` 폴더의 데이터를 복사하거나, 공식 세션 데이터를 다운로드해 리플레이 가능  
  - &lt;kbd&gt;F&lt;/kbd&gt; 키로 시뮬레이션 시작 → 세션 선택 → 타이밍 타워로 진입  
  - &lt;kbd&gt;N&lt;/kbd&gt; 키로 지연 시간 조정하여 빠르게 탐색 가능  
- # 세션 데이터 다운로드  
  - `undercutf1 import &lt;year&gt;` 명령어로 해당 연도 세션 리스트 확인 가능  
  - 세션을 선택해 로컬로 다운로드 및 변환 → 재생 가능  
  
### 커서 및 지연 관리 기능  
  
- 모든 화면에서 &lt;kbd&gt;▲&lt;/kbd&gt;/&lt;kbd&gt;▼&lt;/kbd&gt; 키로 커서를 제어  
  - 예: 특정 드라이버 선택 시, 해당 드라이버 기준 시간 차 시각화 가능  
- &lt;kbd&gt;M&lt;/kbd&gt;/&lt;kbd&gt;N&lt;/kbd&gt; 키로 **라이브 방송과의 싱크를 위한 지연 시간 조정**  
  - &lt;kbd&gt;Shift&lt;/kbd&gt;와 함께 누르면 30초 단위 조정  
  
### 데이터 소스 및 저장 방식  
  
- F1 Live Timing 스트림은 **SignalR 기반**  
- 다음과 같은 토픽을 구독하여 실시간 데이터를 수신:  
  - `TimingStats`, `TimingData`, `WeatherData`, `DriverList`, `RaceControlMessages`, `TeamRadio` 등  
- 세션 시 데이터는 다음 두 파일로 저장됨:  
  - `subscribe.txt`: 구독 시 받은 초기 데이터  
  - `live.txt`: 세션 중 실시간 수신된 전체 데이터  
  
### 라이선스   
  
- 본 프로젝트는 **F1 공식 기관과 무관한 비공식 오픈소스 프로젝트**  
- F1, FORMULA ONE 등 관련 상표는 **Formula One Licensing B.V.** 가 소유함

## Comments



### Comment 37359

- Author: neo
- Created: 2025-04-20T09:54:19+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43734910) 
- 핀란드에서는 스포츠를 따라가기 위해 텔레텍스트가 여전히 인기가 많음. TUI는 광고 없이 바로 핵심 정보를 제공해 줌. 텔레텍스트 형식은 이제 TV보다 오래 살아남아 사람들이 모바일 앱을 통해 텔레텍스트 페이지를 읽음
- F1을 사랑하는 사람으로서 이번 주말에 이걸 사용해 보는 것이 정말 기대됨. 라이브/정적 데이터의 출처와 그 자유로운 이용 가능성에 대해 궁금함. 많은 스포츠가 데이터 권리에 대해 매우 보호적임. F1이 이를 어떻게 보는지 궁금함. 어쨌든 이건 정말 훌륭하고, 레이스를 즐기면서 소파에 앉아 두 번째/세 번째 화면으로 사용할 수 있을 것 같음. 기여할 방법을 찾으면 그렇게 할 것임
- 축하함. 잘 작성된 README로, 이 프로젝트에 대한 세심한 배려가 드러남
- 훌륭한 작업임. 타이어 전략 페이지를 통해 페라리가 드라이버를 위한 전략을 어떻게 실수했는지 볼 수 있음
- 매력적으로 보임. 아쉽게도 dotnet 도구 방법(Win10)을 사용한 빠른 설치는 오류 없이 설치되지만, 앱 실행 시 응답이 없는 창이 나타남. 로그에는 오류가 없음. 키 명령이 작동하지 않음(Q도 아님). 데이터 가져오기는 작동하지만 응답 없는 창은 변하지 않음. 기술 지원을 찾는 것은 아니지만 README에 추가 단계가 필요할 수 있음을 알림
- 정말 멋짐. 몇 주 후에 마이애미 그랑프리에 아내와 함께 갈 예정임. Jeddah 세션/레이스를 위해 이걸 사용해 보는 것이 기대됨
- dotnet 방법을 사용하여 Windows에 설치했지만 작동하지 않는 것 같음. Quit / Cursor / Session 등의 상단 라인은 나타나지만 키가 아무것도 하지 않음. 현재 진행 중인 세션 동안 테스트해 보고 싶었음
- 이걸 만들어줘서 고맙음. F1과 TUI를 사랑하는 사람으로서, 방송사가 앞부분을 보고 있을 때 중위권 팀이 무엇을 하고 있는지 더 알고 싶어하는 내 욕구에 완벽할 것임
- 훌륭해 보임. 그러나 실행을 더 쉽게 할 수 있는 방법이 있으면 좋겠음. Linux용 바이너리는 독립 실행형이 아니며 타사 종속성을 설치해야 함. 정적 바이너리(또는 컨테이너 이미지?)가 있으면 좋겠음
- 꽤 멋져 보이지만 지연을 제대로 작동시키지 못함. 약 25분 지연으로 예선 세션을 보려고 하는데, 시계는 올바른 시간을 표시하지만 드라이버 시간은 나타나지 않음. 라디오와 레이스 제어 메시지는 현재 상태임. Q1의 모든 레이스 제어 메시지와 라디오 메시지를 볼 수 있음
