Machine Learning Model: This app uses Random Forest Regressor Model, a regression-based machine learning model trained on historical Formula 1 qualifying data. The model leverages features such as driver, team, tyre compound, stint, sector times, and grid position to predict qualifying positions and lap times. The model is serialized using joblib and loaded in the backend for fast inference.

Backend (Flask): The backend is built with Flask, a lightweight Python web framework. It exposes RESTful API endpoints for predictions, driver stats, and dynamic circuit/gear shift visualizations. The backend uses FastF1 to fetch and process real F1 telemetry and session data, and matplotlib for generating circuit and gear shift graphs on demand.

Frontend (HTML/CSS/JS): The frontend is a modern, responsive web app styled with a Red Bull-inspired theme. It uses vanilla JavaScript to interact with the backend, dynamically populate dropdowns, display prediction results, and render circuit/gear shift graphs. The UI features a blurred, darkened background image, animated spinners, and interactive modals for driver details. All graphs and images are loaded asynchronously for a smooth user experience.

Technologies Used:

  • Python (ML, data processing, backend)
  • Flask (API server, static file serving)
  • FastF1 (F1 data and telemetry)
  • Matplotlib (dynamic graph generation)
  • HTML5/CSS3 (responsive UI, theming)
  • JavaScript (dynamic frontend, API calls)
  • Joblib (model serialization)

🏁 F1 Position & LapTime Predictor