6 puan yazan GN⁺ 2025-04-20 | 1 yorum | WhatsApp'ta paylaş
  • undercut-f1, F1 seanslarının gerçek zamanlı zamanlama bilgilerini kaydedip daha sonra yeniden oynatabilen açık kaynaklı bir TUI istemcisi
  • SignalR tabanlı akış verilerini alıp görselleştirebilir veya kaydedilmiş seansları yeniden oynatabilir
  • Ayrıntılı sürücü bazlı zamanlama kulesi, pit stop stratejileri, yarış kontrol mesajları, strateji analizi, sürücü konum takibi, takım radyosu ve tur bazlı geçmiş özellikleri sunar
  • Veriler yerel olarak saklanır ve geliştirme ile test için kullanılabilir, simülasyon modu da desteklenir
  • iTerm2, Kitty gibi terminallerin görüntü protokollerini kullanan görsel ekranlar uygular

undercut-f1 proje tanıtımı

undercut-f1, F1 canlı zamanlama bilgilerini CLI tabanlı bir TUI (terminal kullanıcı arayüzü) ile görselleştiren açık kaynaklı bir araçtır
Başlıca özellikleri şunlardır:

  • Gerçek zamanlı F1 seans verilerini görsel ve işitsel olarak sunar
  • Kullanıcının seans verilerini doğrudan kaydetmesine ve daha sonra yeniden oynatmasına olanak tanır
  • F1 yayınlarının ortalama gecikmesini (30~60 saniye) dikkate alarak gecikme ayarı yapma özelliği sunar
  • .NET tabanlı bir CLI uygulamasıdır; NuGet paketi veya tek bir çalıştırılabilir dosya olarak kullanılabilir

Başlıca özellikler

  • Zamanlama kulesi

    • Sektör bazında dereceleri gösterir (kişisel en iyi/genel en iyi için renkli gösterim)
    • Son ve en iyi tur zamanları
    • Lastik türü ve kullanım süresi
    • Liderle ve öndeki araçla zaman farkı
    • Seçilen sürücü ile diğer sürücüler arasındaki zaman farkını karşılaştırma
  • Strateji/stint bilgisi

    • Sürücülerin lastik stratejilerini tek bakışta görmeyi sağlar
    • Her lastiğin kullanım zamanı ve süresini görselleştirir
    • Strateji farklarını tespit etmeyi kolaylaştırır
  • Yarış kontrol ekranı

    • Resmî incelemeler, cezalar, hava durumu bilgileri gibi yarış kontrol mesajlarını gösterir
  • Sürücü takipçisi

    • Seçilen sürücünün gerçek zamanlı pist konumunu görselleştirir
    • iTerm2 ve Kitty görüntü protokolünü destekleyen terminallerde çalışır
    • İmleçle sürücü seçimi ve karşılaştırma yapılabilir
  • Zamanlama geçmişi

    • Tur bazında fark/aralık değişimlerini gösterir
    • Son 15 turun tur zamanları ve liderle fark trendi için grafik sunar
  • Takım radyosu dinleme ve transkripsiyon

    • Whisper modelini kullanarak takım radyosunu yerelde otomatik konuşma tanıma ile metne döker
    • Kalite, o günkü ses kalitesine bağlı olarak değişir ve iyileştirme önerileri de kabul edilmektedir

Seans çalıştırma ve yeniden oynatma

  • Gerçek zamanlı seans çalıştırma

    • undercutf1 komutunu çalıştırın
    • <kbd>S</kbd> tuşuyla seans ekranına girin
    • <kbd>L</kbd> tuşuyla canlı seansı başlatın
    • <kbd>T</kbd> tuşuyla zamanlama kulesini görüntüleyin
    • Seans verileri ~/undercut-f1/data/<session-name> konumuna kaydedilir ve daha sonra yeniden oynatma verisi olarak kullanılabilir
  • Kaydedilmiş seansı yeniden oynatma

    • Sample Data klasöründeki verileri kopyalayabilir veya resmî seans verilerini indirip yeniden oynatabilirsiniz
    • <kbd>F</kbd> tuşuyla simülasyonu başlatın → seansı seçin → zamanlama kulesine girin
    • <kbd>N</kbd> tuşuyla gecikme süresini ayarlayarak hızlı gezinme yapabilirsiniz
  • Seans verisi indirme

    • undercutf1 import <year> komutuyla ilgili yılın seans listesini görebilirsiniz
    • Seansı seçip yerel olarak indirip dönüştürdükten sonra yeniden oynatabilirsiniz

İmleç ve gecikme yönetimi özellikleri

  • Tüm ekranlarda <kbd>▲</kbd>/<kbd>▼</kbd> tuşlarıyla imleci kontrol edebilirsiniz
    • Örnek: Belirli bir sürücüyü seçtiğinizde, o sürücüyü referans alan zaman farkı görselleştirilebilir
  • <kbd>M</kbd>/<kbd>N</kbd> tuşlarıyla canlı yayınla senkron için gecikme süresi ayarlanabilir
    • <kbd>Shift</kbd> ile birlikte basılırsa 30 saniyelik adımlarla ayarlanır

Veri kaynağı ve depolama yöntemi

  • F1 Live Timing akışı SignalR tabanlıdır
  • Gerçek zamanlı veri almak için şu topic'lere abone olunur:
    • TimingStats, TimingData, WeatherData, DriverList, RaceControlMessages, TeamRadio vb.
  • Seans sırasında veriler şu iki dosyaya kaydedilir:
    • subscribe.txt: abonelik sırasında alınan ilk veriler
    • live.txt: seans boyunca gerçek zamanlı alınan tüm veriler

Lisans

  • Bu proje, F1 resmî kurumu ile ilişkili olmayan gayriresmî bir açık kaynak projesidir
  • F1, FORMULA ONE ve ilgili ticari markaların sahibi Formula One Licensing B.V.'dir

1 yorum

 
GN⁺ 2025-04-20
Hacker News yorumu
  • Finlandiya'da sporu takip etmek için teletekst hâlâ çok popüler. TUI, reklam olmadan doğrudan temel bilgileri veriyor. Teletekst formatı artık TV'den daha uzun ömürlü oldu; insanlar artık mobil uygulamalar üzerinden teletekst sayfalarını okuyor
  • Bir F1 hayranı olarak bunu bu hafta sonu denemeyi gerçekten heyecanla bekliyorum. Canlı/statik verilerin kaynağını ve bunların ne kadar serbestçe kullanılabildiğini merak ediyorum. Birçok spor veri haklarını çok sıkı koruyor. F1'in buna nasıl baktığını merak ediyorum. Her hâlükârda bu gerçekten harika ve yarışı izlerken koltukta ikinci/üçüncü ekran olarak kullanabileceğimi düşünüyorum. Katkıda bulunmanın bir yolunu bulursam yaparım
  • Tebrikler. İyi yazılmış bir README; bu projeye ne kadar özen gösterildiğini belli ediyor
  • Harika iş. Lastik stratejisi sayfası üzerinden Ferrari'nin sürücüler için stratejiyi nasıl batırdığını görebiliyorsunuz
  • Çekici görünüyor. Ne yazık ki dotnet aracı yöntemiyle (Win10) hızlı kurulum hatasız tamamlanıyor ama uygulamayı çalıştırınca yanıt vermeyen bir pencere çıkıyor. Loglarda hata yok. Tuş komutları çalışmıyor (Q bile değil). Veri çekme çalışıyor ama yanıtsız pencere değişmiyor. Teknik destek aramıyorum, sadece README'ye ek adımlar gerekebileceğini belirtiyorum
  • Gerçekten çok havalı. Birkaç hafta sonra eşimle birlikte Miami Grand Prix'sine gideceğim. Bunu Jeddah seansı/yarışı için denemeyi dört gözle bekliyorum
  • dotnet yöntemiyle Windows'a kurdum ama çalışmıyor gibi görünüyor. Quit / Cursor / Session gibi üst satırlar görünüyor ama tuşlar hiçbir şey yapmıyor. Devam eden bir seans sırasında test etmek istemiştim
  • Bunu yaptığın için teşekkürler. F1 ve TUI seven biri olarak, yayıncılar ön gruba odaklanırken orta sıralardaki takımların ne yaptığını daha fazla öğrenme isteğim için mükemmel olacak
  • Harika görünüyor. Ancak çalıştırmayı daha kolay hâle getiren bir yol olsa iyi olurdu. Linux için binary tek başına çalışmıyor ve üçüncü taraf bağımlılıkları kurmak gerekiyor. Statik bir binary (veya bir container image?) güzel olurdu
  • Oldukça havalı görünüyor ama gecikmeyi düzgün çalıştıramadım. Sıralama seansını yaklaşık 25 dakikalık gecikmeyle izlemeye çalışıyorum; saat doğru zamanı gösteriyor ama sürücü zamanları görünmüyor. Radyo ve yarış kontrol mesajları güncel durumda. Q1'deki tüm yarış kontrol ve radyo mesajlarını görebiliyorum