Undercut-F1 – TUI thời gian trực tiếp F1 với tính năng theo dõi tay đua và độ trễ có thể điều chỉnh
(github.com/JustAman62)- undercut-f1 là một client TUI mã nguồn mở có thể ghi lại thông tin thời gian trực tiếp của các phiên F1 để phát lại sau này
- Có thể nhận và trực quan hóa dữ liệu luồng dựa trên SignalR hoặc phát lại các phiên đã được ghi
- Cung cấp tháp thời gian chi tiết theo từng tay đua, chiến lược pit stop, thông báo race control, phân tích chiến thuật, theo dõi vị trí tay đua, team radio và lịch sử theo từng vòng
- Dữ liệu được lưu cục bộ để phục vụ phát triển và kiểm thử, đồng thời hỗ trợ cả chế độ mô phỏng
- Triển khai hiển thị trực quan bằng giao thức hình ảnh của terminal như iTerm2 và Kitty
Giới thiệu dự án undercut-f1
undercut-f1 là một công cụ mã nguồn mở trực quan hóa thông tin F1 Live Timing dưới dạng TUI (giao diện người dùng terminal) dựa trên CLI
Các đặc điểm chính gồm:
- Biểu diễn dữ liệu phiên F1 theo thời gian thực bằng hình ảnh và âm thanh
- Người dùng có thể tự ghi dữ liệu phiên và phát lại về sau
- Cung cấp tính năng điều chỉnh độ trễ có tính đến độ trễ trung bình của phát sóng F1 (30~60 giây)
- Là ứng dụng CLI dựa trên
.NET, có thể sử dụng dưới dạng gói NuGet hoặc file thực thi độc lập
Tính năng chính
-
Tháp thời gian
- Hiển thị thành tích theo từng sector (tô màu cho thành tích tốt nhất cá nhân/tốt nhất toàn cục)
- Thời gian vòng gần nhất và tốt nhất
- Loại lốp và thời gian sử dụng
- Chênh lệch thời gian với người dẫn đầu và xe phía trước
- So sánh chênh lệch thời gian giữa tay đua được chọn và các tay đua khác
-
Thông tin chiến lược/stint
- Có thể xem nhanh chiến lược lốp của từng tay đua
- Trực quan hóa thời điểm sử dụng và thời lượng của từng bộ lốp
- Dễ nhận biết khác biệt về chiến thuật
-
Màn hình race control
- Xem các thông điệp race control như điều tra chính thức, án phạt, thông tin thời tiết
-
Trình theo dõi tay đua
- Trực quan hóa vị trí trên đường đua của tay đua được chọn theo thời gian thực
- Hoạt động trên các terminal hỗ trợ giao thức hình ảnh iTerm2 và Kitty
- Có thể chọn và so sánh tay đua bằng con trỏ
-
Lịch sử thời gian
- Theo dõi thay đổi gap/interval theo từng vòng
- Cung cấp biểu đồ xu hướng thời gian vòng và khoảng cách với người dẫn đầu trong 15 vòng gần nhất
-
Nghe và chép lời team radio
- Sử dụng mô hình Whisper để tự động chép lời team radio cục bộ bằng nhận dạng giọng nói
- Chất lượng phụ thuộc vào chất lượng âm thanh trong ngày và vẫn đang tiếp nhận đề xuất cải thiện
Chạy phiên và phát lại
-
Chạy phiên trực tiếp
- Chạy
undercutf1 - Nhấn phím <kbd>S</kbd> để vào màn hình phiên
- Nhấn phím <kbd>L</kbd> để bắt đầu phiên trực tiếp
- Nhấn phím <kbd>T</kbd> để xem tháp thời gian
- Dữ liệu phiên được lưu tại
~/undercut-f1/data/<session-name>, có thể dùng làm dữ liệu phát lại về sau
- Chạy
-
Phát lại phiên đã ghi
- Có thể sao chép dữ liệu trong thư mục
Sample Datahoặc tải dữ liệu phiên chính thức để phát lại - Nhấn phím <kbd>F</kbd> để bắt đầu mô phỏng → chọn phiên → vào tháp thời gian
- Nhấn phím <kbd>N</kbd> để điều chỉnh độ trễ và duyệt nhanh
- Có thể sao chép dữ liệu trong thư mục
-
Tải dữ liệu phiên
- Có thể xem danh sách các phiên của năm tương ứng bằng lệnh
undercutf1 import <year> - Chọn phiên để tải xuống và chuyển đổi về máy cục bộ → có thể phát lại
- Có thể xem danh sách các phiên của năm tương ứng bằng lệnh
Tính năng con trỏ và quản lý độ trễ
- Trên mọi màn hình, có thể điều khiển con trỏ bằng phím <kbd>▲</kbd>/<kbd>▼</kbd>
- Ví dụ: khi chọn một tay đua cụ thể, có thể trực quan hóa chênh lệch thời gian theo tay đua đó
- Nhấn phím <kbd>M</kbd>/<kbd>N</kbd> để điều chỉnh độ trễ nhằm đồng bộ với phát sóng trực tiếp
- Nhấn cùng <kbd>Shift</kbd> để điều chỉnh theo bước 30 giây
Nguồn dữ liệu và cách lưu trữ
- Luồng F1 Live Timing dựa trên SignalR
- Nhận dữ liệu thời gian thực bằng cách đăng ký các topic như sau:
TimingStats,TimingData,WeatherData,DriverList,RaceControlMessages,TeamRadiov.v.
- Dữ liệu phiên được lưu thành hai file sau:
subscribe.txt: dữ liệu ban đầu nhận được khi đăng kýlive.txt: toàn bộ dữ liệu nhận theo thời gian thực trong phiên
Giấy phép
- Dự án này là dự án mã nguồn mở không chính thức, không liên quan tới tổ chức F1 chính thức
- Các nhãn hiệu liên quan như F1, FORMULA ONE thuộc sở hữu của Formula One Licensing B.V.
1 bình luận
Ý kiến trên Hacker News