46 comments

  • PaulRobinson 3 hours ago ago

    This is really very cool and as a geek who loves F1, I can't wait to play with this over this weekend and beyond.

    I'm curious where the live/static data is coming from and how freely available it is. Most sports are very protective of their data rights in the betting era (I know of one guy who spends six figures on tennis data a year - and yes, he makes a profit from it), so I'm wondering if/how F1 sees all this.

    Regardless, I think this is absolutely marvellous, and can see this becoming my second/third screen while sat on the sofa enjoying the races live. Thanks, and if I can find a way to contribute/give back, I will.

    • deltaknight 9 minutes ago ago

      Thank you! The data comes from a SignalR data stream that F1 provides. It's not exactly public, but also not protected. There are some other projects (like FastF1) which have done a lot of working understanding this data, so all kudos go to them.

      There's also static API endpoints which contain .json and .jsonStream files after a session ends, so you can process all the data and run some analytics on it.

      I assume they don't mind too much about the usage - on the basis that some of these projects have existed for quite a while. I'm pretty sure everything who performs F1 analysis (like journalists, YouTubers etc) with charts and the like and getting their data via these feeds (either directly or via packages like FastF1.

      If you want to learn more about the implementation itself, I'd recommend checking out the DataImporter.cs and LiveTimingClient.cs files in the UndercutF1.Data project of the repo. Although fair warning, my codes not that beautiful :).

  • happosai 6 hours ago ago

    TUI for sports reminds me that in Finland, teletext is still very popular for following sports (football, ice hockey, even F1)

    TUI gets you straight to the point, no ads, etc. So the teletext format is now outliving TVs and people read the teletext pages on their mobile phones (via we of dedicated apps)

    https://yle.fi/aihe/tekstitv?P=207

    • deltaknight 6 hours ago ago

      Oh that's fantastic, way better than searching for results on modern sports news sites. Definitely bookmarking this, maybe I'll accidentally learn a bit of Finnish.

      • Hamuko 38 minutes ago ago

        >maybe I'll accidentally learn a bit of Finnish.

        Your chances are slim, or mahdollisuutesi ovat niukat.

      • herodoturtle 5 hours ago ago

        Awesome work, thanks for sharing!

        If you weren't already aware of it, check out the #f1 community on libera.

  • noisy_boy 8 hours ago ago

    Congratulations - that is a nicely written README, shows the care you put into this.

  • scrlk 7 hours ago ago

    Great work!

    > Tyre Strategy page

    Nice, I'll be able to see how Ferrari have fumbled strategy for their drivers.

    • atonse 4 hours ago ago

      We have to make sure the screen goes all the way to Plan H.

      • PaulRobinson 3 hours ago ago

        You're being optimistic. Like Excel, I think we need double letters...

  • StrLght an hour ago ago

    Looks great!

    However, I'd appreciate an easier way to run it: binaries for Linux aren't standalone -- they require 3rd party dependencies to be installed. Static binaries (or maybe container image?) would be nice.

  • cbgonz 3 hours ago ago

    Looks enticing! Regrettably a quick install (using the dotnet tool method, Win10) installs without error, but running the app results in an unresponsive window (both terminal and console), logs show no error... None of the key commands work (not even Q). Import data woks, but does not change the unresponsive window. Not looking for tech support, just making you aware that some additional steps might be required in the README (are there geographic limitations?). Thanks!

    • deltaknight 7 minutes ago ago

      Thanks for the heads up. I think there might be some intricacies with different terminals and OS's which I hasn't fully appreciated (I've only been testing this on a arm64 Mac unfortunately). I have made a new release (https://github.com/JustAman62/undercut-f1/releases/tag/v3.0....) which might help fix the issue - but I'll need to get my hands on a windows machine again to validate, which I should be able to do in the next couple of days.

  • yahoozoo 8 hours ago ago

    This is awesome. My wife and me and are going to the Miami Grand Prix here in a few weeks, big fans. Excited to play with this for Jeddah sessions/race.

    • deltaknight 8 hours ago ago

      Wow I'd love to go to a US race at some point, the vibe in those weekends feels so unique compared to the classic European race. Hope you have a great time! Happy to take any feedback/suggestions after the Jeddah sessions if you have any

      • glenngillen 7 hours ago ago

        I was fortunate enough to go to the very first race in Austin. That was pre the DTS-driven levels of attendance you get at races these days, and (maybe because it was their first time hosting?) it was also super cheap compared to attending any other race. And honestly it was one of the best race weekends I've attended. The layout of the track (e.g., a main straight that goes into a hairpin, comes back downhill, sweeps back right and uphill...) seems almost uniquely designed to give someone in the paddock the ability to watch multiple parts of the circuit. Also Austin was just a great city to visit too.

    • nikolayasdf123 7 hours ago ago

      have nice f1 mate

  • williamscales 4 hours ago ago

    I installed on Windows using the dotnet method and it doesn't seem to work. The top line with Quit / Cursor / Session / etc shows up but none of the keys do anything.

    I was hoping to test it out during the session currently going on :)

  • mysterydip 6 hours ago ago

    Thank you for this! I love F1 and TUIs, this will be perfect for my desire to know more of what my midfield favorites are doing while the broadcasters are watching the front!

    • deltaknight 6 hours ago ago

      As it happens, I started to make this back when McLaren weren't doing quite as well as they are now... for exactly the reason you describe. Being able to see pit windows easily for drivers all the way down the field, and observe lap times and relative gaps for drivers makes following the midfield much easier.

      Unfortunately I don't handle lapped drivers very well, once they're lapped much of the gap related stuff stops working for them. Thankfully the last year or so the field has been close enough where that's not too much of an issue.

  • cx0der 4 hours ago ago

    Gets flagged as Trojan by Windows Defender. I followed dotnet tool install method.

  • jwr 2 hours ago ago

    This looks fantastic and I'm looking forward to trying it out! Thank you!

  • johnbellone 7 hours ago ago

    This is freaking awesome. I am going to use it tomorrow. Great work!

  • pqdbr 4 hours ago ago

    Would it be possible to have a docker image for easier installing?

  • sph 7 hours ago ago

    Anyone know any API for real time Formula 1 timing info, standings, historical info, etc? I don't suppose FOM releases this data for free.

    • deltaknight 6 hours ago ago

      There is https://openf1.org which has an API, although I don't believe it's real-time. My projects uses the SignalR stream directly from F1, but it's not very API friendly and you have to learn and do a decent amount of processing to make it in to useful display data. Check out the UndercutF1.Data project to see how this is done. FastF1 also has a live timing client, although I don't think its their preferred method of analysis.

      After a session is finished, F1 do upload json and jsonStream static files which you can download - checkout the DataImporter class to see how this is done (this is what powers the undercutf1 import` command)

    • pyepye 6 hours ago ago

      Check out FastF1 - https://docs.fastf1.dev/

      It has a Live Timing Client and a lot of historical data.

      I only found it the other day, so I have no had a chance to play with it yet.

    • andypants 7 hours ago ago

      It's not meant for public use, but it's also not protected. Best documentation is the fastf1 project.

    • fkarg 7 hours ago ago

      certainly not free, but with F1TV Access you have access to historical and real time data through the API. There should be decent documentation on it out there, otherwise projects like Multiviewer or this TUI wouldn't be quite realistic.

  • davidevansdev 6 hours ago ago

    Kudos to you for even using Whisper to transcribe radio messages!

    • deltaknight 6 hours ago ago

      I have to admit, the transcription quality isn't all that great, it depends heavily on the driver and the audio quality on that particular weekend. I think it's better than nothing though.

      • PaulRobinson 3 hours ago ago

        Today is the worst it'll ever be. Even Whisper is streets ahead of what we had just a couple of years ago.

  • Handy-Man 4 hours ago ago

    This is great project, amazing work. Though at this age now I just prefer Multiviewer F1, much better on my eyes haha.

  • nikolayasdf123 7 hours ago ago

    even live track map. wow, impressive tool!

    • deltaknight 7 hours ago ago

      Thank you! I'm very proud of the track map and lap charts. I mulled over for months about rewriting the app into a native app or website so that I could do proper graphics etc, but then one day earlier this year I suddenly realised I could use Terminal Graphics protocols to achieve inline graphics in the TUI itself, giving me the best of both worlds!

      • testing22321 7 hours ago ago

        If you wanted to monetize you’ll get way more users from a website or app. This is fantastic , but for techies only.

        • eertami 6 hours ago ago

          There's already a pretty popular free/opensource website with similar live data (https://f1-dash.com/) which would be an obvious alternative.

          I also suspect that the trying to monetize a project like this would not sit well with the FIA, if you had any kind of traction.

        • deltaknight 6 hours ago ago

          Yeah that's a fair point. Although I've been a bit iffy about the ethics of monetising somebody else's data - and I feel that line would be definitely crossed if I made a direct competitor to F1s own products. So monetisation is very much off the table :)

      • deanc 4 hours ago ago

        Is there any reason you couldn’t render the pixels to the screen as opposed to a constantly updated image (which as the docs note is terminal choice limiting)

        • deltaknight 5 minutes ago ago

          I'm not personally aware of a method of doing so via a TUI, but I'd be very happy to be corrected. I was under the impression that sending images was the best way to handle non-character based output.

  • nchagnet 7 hours ago ago

    This is such a cool project! Congrats!

  • epolanski 7 hours ago ago

    What an impressive project!

  • terminaltrove 7 hours ago ago

    This looks very good, the screenshots are very detailed and helpful and it's nice to see TUIs using the kitty graphics protocol.

    Love that it is realtime as well.

    Great work on this.

    • deltaknight 6 hours ago ago

      Thank you! Yes, learning about the kitty and iterm graphics protocols was surprisingly fun, and opened my eyes to the potential power of modern TUIs (even if I'm not making best use of all the power).

      Sixel on the other hand seems like an alien protocol whose implementation daunts me - think it'll be a while before I tackle that one.