Inspiration
Our inspiration for ApexSim comes directly from the high-stakes, data-driven world of Formula 1, an environment where split-second decisions and long-term strategy are the difference between winning and losing.
What it does
ApexSim is an AI-driven race strategy simulator. Our goal is to create a dynamic model that can simulate a full race, accounting for dozens of variables. The core of our project is to develop a predictive AI that can run thousands of race simulations to identify the optimal strategy. Through this project, we will dive deep into:
- Vehicle Dynamics: Modeling the physics of a high-performance race car.
- AI & Machine Learning: Implementing Monte Carlo Tree Search or Reinforcement Learning to navigate complex decision trees.
- Data Analysis: Understanding how variables like tire degradation, fuel load, and track conditions impact performance.
How we built it
- The Physics Engine: At the heart of ApexSim is a model of the car's longitudinal dynamics. We'll start by simulating the key forces acting on the car using the following relationship:$$F_{net} = F_{engine} - (F_{drag} + F_{rolling_resistance})$$This engine will calculate the car's state (position, velocity) at each time step of the race.
- The Strategy AI: This module will sit on top of the physics engine. It will explore various strategic paths (e.g., pit stop laps, tire compound choices) and evaluate their potential outcomes, learning to identify the most probable path to victory.
- Visualization Interface: A simple GUI to input initial race conditions, visualize the simulated race in real-time, and analyze post-race data to understand why a given strategy was optimal.
Challenges we ran into
The primary challenge is the sheer complexity of a motorsport event. Accurately modeling unpredictable events like safety cars, weather changes, and competitor strategies will be difficult. Furthermore, running the thousands of simulations required for our AI model will be computationally intensive, demanding highly efficient code and potentially cloud-based processing.
What we learned
We learned that the "optimal" race strategy isn't a single path but a probabilistic map of decisions influenced by countless real-time variables. This solidified our decision to use a Monte Carlo Tree Search algorithm, which is perfectly suited for navigating such a vast decision space. We also learned the critical importance of a modular design; by separating the physics engine from the AI, we can develop, test, and improve each component independently before integration, making the entire project more feasible.
What's next for ApexSim
The next steps are:
- Develop the Core Physics Engine: Our immediate priority is to code a lightweight but accurate simulation of the car's basic dynamics in C++. This will serve as the foundation for everything else.
- Implement the AI Strategy Module: We will then develop the AI layer in Python, training it on simplified scenarios before moving to more complex race simulations.
- Integration and Visualization: Once the core modules are ready, we will integrate them and build a simple interface to input parameters and visualize the race outcomes.
- Refinement and Expansion: Looking further ahead, we plan to incorporate more complex variables like tire degradation models, dynamic weather effects, and data from real-world races to enhance the simulator's predictive accuracy.
Built With
- amazon-web-services
- c++
- google-cloud
- machine-learning-with-tensorflow/pytorch
- matplotlib
- numpy
- pandas
- python
- scikit-learn
- scipy
Log in or sign up for Devpost to join the conversation.