DEV Community

Cover image for F1 Wow Dashboard - on Uno
Ste Griffiths
Ste Griffiths

Posted on

F1 Wow Dashboard - on Uno

AI Challenge for Cross-Platform Apps - WOW Factor Submission

This is a submission for the AI Challenge for Cross-Platform Apps - WOW Factor

What I Built

I love Formula 1, and all kinds of mission control dashboard and visualisations. So I built an F1 track dashboard with a rotating 3D car! 🏎️

  • Rotating 3D car wireframe
  • Animated track list
  • Data bindings of track name, total laps
  • Lap counter
  • Name customisation
  • Custom Splash Screen

Demo

Here's a video of my app running on Windows:

Or check out the web assembly version of F1 Wow in your browser. (I had to disable 3D model animation on WASM for performance reasons)

Cross-Platform Magic

I was mainly targeting Windows, but I was pleased to see how it worked in WASM with no extra work! My 3D renderer is CPU-intensive, so I decided to disable this in the web version for better performance.

I'd love to test this out on Android (but I don't have one) or iOS (but I don't have a Mac to build on! 😅)

You can find the source for my UnoWowApp on GitHub.

Windows/Desktop

It runs on Windows:

F1 Wow running on Windows Desktop with rotating car model, dynamically sized list, and track selection

Web

And you can try it on the web:

F1 Wow running in Edge

Interactive Features

3D Car Wireframe

Originally I wanted a fully textured HD car render, but I didn't know how to do this, and out of the ways I researched, SkiaSharp was the best cross-platform option. To make a hardware accelerated 3D render, I think I would have needed platform dependent code, so I didn't go that way.

Claude Sonnet 4.5 in GHCP helped me write the Simple3DRenderer and I applied some tweaks after reading the code and learning about how it worked. This was a fun part of the experience as I've never worked with 3D rendering before!

Fancy Animated List

I built a radial effect on the circuit list, so when you move the mouse, the tracks change size depending on how close the cursor is:

Track list items dynamically resizing on mouse hover

Name Entry

This is kind of a basic one, but I used a text entry field to allow you to type in the driver name to get a custom greeting.

Lap Counter

Press the Plus button in the top right to count laps, and when it passes the max laps for your chosen track, it loops back to one.

The Wow Factor

I think the combination of the background, 3D render, track list, and F1 styling creates a big overall impression. I like looking at this dashboard and I hope you do too.

I completed the finesse of the app with a custom splash screen and icon to go with the F1 theme.

It's been 10 years since I coded for Windows desktop, and my first time writing cross-platform. This was a fun experience! Thanks for checking out my entry, and let me know what you think 😁🏎️

Credits and Inspiration

Inspiration

Resources

Top comments (0)