6 puntos por GN⁺ 2025-04-20 | 1 comentarios | Compartir por WhatsApp
  • undercut-f1 es un cliente TUI de código abierto que registra la información de live timing de las sesiones de F1 para poder reproducirla después
  • Puede recibir y visualizar datos de streaming basados en señales, o reproducir sesiones grabadas
  • Ofrece torre de tiempos detallada por piloto, estrategia de pit stops, mensajes de control de carrera, análisis estratégico, seguimiento de posición de pilotos, team radio e historial por vuelta
  • Los datos se guardan localmente y pueden usarse para desarrollo y pruebas, además de incluir modo de simulación
  • Implementa una visualización usando los protocolos de imágenes de terminal de iTerm2, Kitty y otros

Introducción al proyecto undercut-f1

undercut-f1 es una herramienta de código abierto que visualiza la información de live timing de F1 en una TUI (interfaz de usuario de terminal) basada en CLI
Sus características principales son las siguientes:

  • Representación audiovisual de los datos de sesiones de F1 en tiempo real
  • El usuario puede grabar directamente los datos de la sesión y reproducirlos después
  • Considerando la latencia promedio de la transmisión de F1 (30~60 segundos), ofrece una función de ajuste de retraso
  • Aplicación CLI basada en .NET, disponible como paquete NuGet o como ejecutable único

Funciones principales

  • Torre de tiempos

    • Muestra registros por sector (con colores para mejor personal y mejor general)
    • Último tiempo de vuelta y mejor tiempo de vuelta
    • Tipo de neumático y tiempo de uso
    • Diferencia de tiempo respecto al líder y al auto de adelante
    • Comparación de diferencia de tiempo entre el piloto seleccionado y otros pilotos
  • Información de estrategia/stints

    • Permite ver de un vistazo la estrategia de neumáticos de cada piloto
    • Visualiza el momento de uso y la duración de cada neumático
    • Facilita detectar diferencias de estrategia
  • Pantalla de control de carrera

    • Permite revisar mensajes de race control como investigaciones oficiales, penalizaciones e información meteorológica
  • Tracker de pilotos

    • Visualización en tiempo real de la posición en pista del piloto seleccionado
    • Funciona en terminales compatibles con los protocolos de imágenes de iTerm2 y Kitty
    • Permite seleccionar y comparar pilotos mediante el cursor
  • Historial de tiempos

    • Permite revisar cambios de gap/interval por vuelta
    • Ofrece gráficos de tendencia con los tiempos por vuelta y la diferencia con el líder de las últimas 15 vueltas
  • Escucha y transcripción de team radio

    • Usa el modelo Whisper para transcribir localmente el team radio con reconocimiento de voz propio
    • La calidad depende de la calidad del audio del día y también se están recibiendo sugerencias de mejora

Ejecución y replay de sesiones

  • Ejecutar una sesión en vivo

    • Ejecutar undercutf1
    • Entrar a la pantalla de sesión con la tecla <kbd>S</kbd>
    • Iniciar la sesión en vivo con la tecla <kbd>L</kbd>
    • Ver la torre de tiempos con la tecla <kbd>T</kbd>
    • Los datos de la sesión se guardan en ~/undercut-f1/data/<session-name>, por lo que pueden reutilizarse después para reproducción
  • Replay de una sesión grabada

    • Se pueden copiar los datos de la carpeta Sample Data o descargar los datos oficiales de la sesión para reproducirlos
    • Iniciar la simulación con la tecla <kbd>F</kbd> → seleccionar sesión → entrar a la torre de tiempos
    • Se puede explorar rápidamente ajustando el retraso con la tecla <kbd>N</kbd>
  • Descarga de datos de sesión

    • Con el comando undercutf1 import <year> se puede consultar la lista de sesiones de ese año
    • Se puede seleccionar una sesión para descargarla y convertirla localmente → luego reproducirla

Funciones de cursor y gestión de latencia

  • En todas las pantallas, el cursor se controla con las teclas <kbd>▲</kbd>/<kbd>▼</kbd>
    • Ejemplo: al seleccionar un piloto específico, se puede visualizar la diferencia de tiempo tomando a ese piloto como referencia
  • Con las teclas <kbd>M</kbd>/<kbd>N</kbd> se ajusta el retraso para sincronizar con la transmisión en vivo
    • Si se pulsa junto con <kbd>Shift</kbd>, se ajusta en intervalos de 30 segundos

Fuente de datos y método de almacenamiento

  • El stream de F1 Live Timing está basado en SignalR
  • Recibe datos en tiempo real suscribiéndose a temas como:
    • TimingStats, TimingData, WeatherData, DriverList, RaceControlMessages, TeamRadio, etc.
  • Durante una sesión, los datos se guardan en los siguientes dos archivos:
    • subscribe.txt: datos iniciales recibidos al suscribirse
    • live.txt: todos los datos recibidos en tiempo real durante la sesión

Licencia

  • Este proyecto es un proyecto de código abierto no oficial y no afiliado a la organización oficial de F1
  • F1, FORMULA ONE y otras marcas relacionadas son propiedad de Formula One Licensing B.V.

1 comentarios

 
GN⁺ 2025-04-20
Comentarios de Hacker News
  • En Finlandia, el teletexto sigue siendo muy popular para seguir deportes. Una TUI te da la información clave de inmediato, sin anuncios. El formato de teletexto ya ha sobrevivido más que la TV, y la gente ahora lee páginas de teletexto desde apps móviles.
  • Como alguien que ama la F1, de verdad tengo muchas ganas de probar esto este fin de semana. Me da curiosidad de dónde salen los datos en vivo/estáticos y qué tan libre es su uso. Muchos deportes protegen mucho los derechos de sus datos. Me pregunto cómo ve esto la F1. De cualquier forma, esto es realmente excelente, y parece que podría usarlo como segunda/tercera pantalla mientras disfruto la carrera desde el sofá. Si encuentro una forma de contribuir, lo haré.
  • Felicidades. El README está muy bien escrito y deja ver el cuidado puesto en este proyecto.
  • Excelente trabajo. La página de estrategia de neumáticos te deja ver cómo Ferrari se equivocó con la estrategia para sus pilotos.
  • Se ve atractivo. Lamentablemente, la instalación rápida usando el método de herramienta de dotnet (Win10) se completa sin errores, pero al ejecutar la app aparece una ventana que no responde. No hay errores en los logs. Los comandos de teclado no funcionan ni siquiera Q. La obtención de datos sí funciona, pero la ventana sin respuesta no cambia. No estoy buscando soporte técnico, solo aviso que quizá hagan falta pasos adicionales en el README.
  • Está realmente genial. En unas semanas iré al Gran Premio de Miami con mi esposa. Tengo ganas de probar esto para la sesión/carrera de Jeddah.
  • Lo instalé en Windows usando el método de dotnet, pero no parece funcionar. La línea superior con Quit / Cursor / Session y demás sí aparece, pero ninguna tecla hace nada. Quería probarlo durante la sesión que está en curso.
  • Gracias por crear esto. Como alguien que ama la F1 y las TUI, esto parece perfecto para mi necesidad de saber más sobre lo que están haciendo los equipos de media tabla cuando la transmisión está enfocada en la parte de adelante.
  • Se ve excelente. Pero ojalá hubiera una forma más fácil de ejecutarlo. El binario para Linux no es independiente y hay que instalar dependencias de terceros. Estaría bien tener un binario estático (¿o una imagen de contenedor?).
  • Se ve bastante bien, pero no logro hacer que la función de retraso funcione correctamente. Estoy intentando ver la sesión de clasificación con unos 25 minutos de retraso; el reloj muestra la hora correcta, pero no aparecen los tiempos de los pilotos. La radio y los mensajes de control de carrera sí están en el estado actual. Puedo ver todos los mensajes de control de carrera y de radio de la Q1.