Solar Race Simulation GUI
Race simulation GUI for solar vehicle competitions

Solar Sim GUI is a desktop app for UBC Solar's strategy team that sits on top of our race simulation. You set a few simulation parameters, press Run, and it plots the car's predicted speed and state of charge and draws the route on a map, next to the latest telemetry from the car. I worked on it as a Strategy Software Developer alongside four other contributors.
The race simulation was a Python package you ran from scripts, which made it awkward to try different settings during strategy work. The app already had a React interface, but its Run button only sent a bare "run" command: none of the settings reached the simulation, and the Python side still read results through an older interface that had been stubbed out.
The app runs as three Electron processes: the main process passes messages, a React window holds the UI, and a hidden window runs a Python script through python-shell. I wired the settings through end to end, so the React side sends the simulation arguments as JSON with the run command over an Electron message port, and the Python script parses them and passes granularity and the Go-accelerated option into the simulation package. I replaced the stubbed results code with a real call to the simulation's export function, which parses the returned values, samples the long time series down for charting and writes them to JSON for the UI. On the front end I added hover tooltips to the Recharts line charts, rounded the value table and reworked the layout of the graph column.
The GUI could run the simulation with the settings chosen in the interface and show the results as zoomable speed and state-of-charge charts and a route map with time, charge and distance along the way. It was part of the strategy software I worked on at UBC Solar, alongside genetic-algorithm speed optimization and a data analysis notebook, which contributed to the team's highest-ever Formula Sun Grand Prix placement in 2024.

