6 pontos por GN⁺ 2025-04-20 | 1 comentários | Compartilhar no WhatsApp
  • undercut-f1 é um cliente TUI open source que grava informações de live timing de sessões de F1 para reprodução posterior
  • É possível receber e visualizar dados de stream baseados em SignalR ou reproduzir sessões gravadas
  • Oferece torre de tempos detalhada por piloto, estratégia de pit stop, mensagens de controle de corrida, análise estratégica, rastreamento de posição dos pilotos, team radio e histórico por volta
  • Os dados são armazenados localmente e podem ser usados para desenvolvimento e testes, com suporte também a modo de simulação
  • Implementa exibição visual usando protocolos de imagem de terminal como iTerm2 e Kitty

Introdução ao projeto undercut-f1

undercut-f1 é uma ferramenta open source que visualiza informações de live timing da F1 em uma TUI (interface de usuário de terminal) baseada em CLI
Seus principais recursos são os seguintes:

  • Representação audiovisual de dados de sessão de F1 em tempo real
  • O usuário pode gravar os dados da sessão e reproduzi-los depois
  • Considerando a latência média das transmissões de F1 (30 a 60 segundos), oferece ajuste de latência
  • Aplicativo CLI baseado em .NET, disponível como pacote NuGet ou executável único

Principais recursos

  • Torre de tempos

    • Exibição dos tempos por setor (com cores para melhor marca pessoal/melhor geral)
    • Tempos de volta mais recentes e melhores
    • Tipo de pneu e tempo de uso
    • Diferença de tempo para o líder e para o carro à frente
    • Comparação da diferença de tempo entre o piloto selecionado e os demais pilotos
  • Informações de estratégia/stint

    • Permite ver rapidamente a estratégia de pneus de cada piloto
    • Visualização do momento de uso e da duração de cada pneu
    • Facilita identificar diferenças de estratégia
  • Tela de controle de corrida

    • Exibe mensagens de race control como investigações oficiais, penalidades e informações climáticas
  • Rastreador de pilotos

    • Visualização em tempo real da posição do piloto selecionado na pista
    • Funciona em terminais com suporte aos protocolos de imagem do iTerm2 e Kitty
    • Permite selecionar e comparar pilotos com o cursor
  • Histórico de tempos

    • Permite verificar mudanças de gap/intervalo por volta
    • Fornece gráficos de tendência dos tempos de volta e do gap para o líder nas últimas 15 voltas
  • Escuta e transcrição de team radio

    • Usa o modelo Whisper para transcrever localmente o team radio com reconhecimento de voz próprio
    • A qualidade varia conforme a qualidade do áudio do dia, e sugestões de melhoria continuam sendo aceitas

Execução e replay de sessões

  • Executar sessão ao vivo

    • Executar undercutf1
    • Entrar na tela de sessão com a tecla <kbd>S</kbd>
    • Iniciar a sessão ao vivo com a tecla <kbd>L</kbd>
    • Ver a torre de tempos com a tecla <kbd>T</kbd>
    • Os dados da sessão são salvos em ~/undercut-f1/data/<session-name> e podem ser usados depois para reprodução
  • Replay de sessão gravada

    • É possível copiar os dados da pasta Sample Data ou baixar dados oficiais de sessões para reproduzi-los
    • Iniciar a simulação com a tecla <kbd>F</kbd> → selecionar a sessão → entrar na torre de tempos
    • Ajustar a latência com a tecla <kbd>N</kbd> para navegar rapidamente
  • Download de dados de sessão

    • É possível ver a lista de sessões do ano com o comando undercutf1 import <year>
    • Selecionar uma sessão para baixar e converter localmente → pronta para reprodução

Recursos de cursor e gerenciamento de latência

  • Em todas as telas, controle o cursor com as teclas <kbd>▲</kbd>/<kbd>▼</kbd>
    • Ex.: ao selecionar um piloto específico, é possível visualizar a diferença de tempo com base nele
  • Ajuste a latência para sincronizar com a transmissão ao vivo usando as teclas <kbd>M</kbd>/<kbd>N</kbd>
    • Ao pressionar junto com <kbd>Shift</kbd>, o ajuste é feito em intervalos de 30 segundos

Fonte dos dados e forma de armazenamento

  • O stream do F1 Live Timing é baseado em SignalR
  • Os dados em tempo real são recebidos assinando tópicos como:
    • TimingStats, TimingData, WeatherData, DriverList, RaceControlMessages, TeamRadio etc.
  • Durante a sessão, os dados são armazenados em dois arquivos:
    • subscribe.txt: dados iniciais recebidos no momento da assinatura
    • live.txt: conjunto completo de dados recebidos em tempo real durante a sessão

Licença

  • Este projeto é um projeto open source não oficial, sem vínculo com as entidades oficiais da F1
  • F1, FORMULA ONE e marcas relacionadas pertencem à Formula One Licensing B.V.

1 comentários

 
GN⁺ 2025-04-20
Comentários do Hacker News
  • Na Finlândia, o teletexto ainda é popular para acompanhar esportes. Uma TUI entrega a informação essencial imediatamente, sem anúncios. O formato de teletexto já sobreviveu à própria TV, e as pessoas agora leem páginas de teletexto por aplicativos móveis
  • Como alguém que ama F1, estou realmente ansioso para usar isso neste fim de semana. Fico curioso sobre a origem dos dados ao vivo/estáticos e o quão livremente eles estão disponíveis. Muitos esportes são extremamente protetores em relação aos direitos sobre dados. Fico me perguntando como a F1 enxerga isso. De qualquer forma, isso é realmente excelente, e parece algo que eu poderia usar como segunda/terceira tela sentado no sofá enquanto curto a corrida. Se eu encontrar uma forma de contribuir, vou fazê-lo
  • Parabéns. README bem escrito, que demonstra o cuidado dedicado a este projeto
  • Excelente trabalho. Pela página de estratégia de pneus, dá para ver como a Ferrari errou a estratégia para os pilotos
  • Parece atraente. Infelizmente, a instalação rápida usando o método da ferramenta dotnet (Win10) instala sem erros, mas ao executar o app aparece uma janela sem resposta. Não há erros no log. Os comandos de tecla não funcionam (nem Q). A busca de dados funciona, mas a janela sem resposta não muda. Não estou procurando suporte técnico, mas aviso que o README talvez precise de etapas adicionais
  • Muito legal. Em algumas semanas vou ao Grande Prêmio de Miami com minha esposa. Estou ansioso para experimentar isso na sessão/corrida de Jeddah
  • Instalei no Windows usando o método dotnet, mas parece que não funciona. A linha superior com Quit / Cursor / Session etc. aparece, mas nenhuma tecla faz nada. Eu queria testar isso durante a sessão em andamento
  • Obrigado por criar isso. Como alguém que ama F1 e TUI, isso parece perfeito para o meu desejo de saber mais sobre o que as equipes do meio do pelotão estão fazendo enquanto a transmissão está focada na frente
  • Parece ótimo. No entanto, seria bom se houvesse uma forma mais fácil de executar. O binário para Linux não é independente e requer a instalação de dependências de terceiros. Um binário estático (ou uma imagem de contêiner?) seria bom
  • Parece bem legal, mas não consegui fazer o atraso funcionar corretamente. Estou tentando assistir à sessão de classificação com cerca de 25 minutos de atraso; o relógio mostra o horário correto, mas os tempos dos pilotos não aparecem. O rádio e as mensagens de controle de corrida ficam no estado atual. Consigo ver todas as mensagens de controle de corrida e de rádio do Q1