TQ — portfoliocontact ↗
Full-Stack

Solar Race Simulation GUI

Race simulation GUI for solar vehicle competitions

Solar Race Simulation GUI screenshot
01/ Overview

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.

02/ Problem

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.

03/ Approach

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.

04/ Outcome
1 clickfrom UI settings to speed, charge and route visuals
GPSsimulation output georeferenced along the race route
400×fewer points to chart, so results stay responsive

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.