01 / June 27–28
A world, then
its details.
A three-quarter view, an overhead study, lighting experiments, painted kerbs. These June artifacts show successive ways of making the racing world visible.
UNC Chapel Hill / COMP110 / Autonomous racing
A programming project that puts beginners
in the driver’s seat—and their code on the grid.
01 / The intro → the race · real simulator footage

The code on screen.
The room in motion.

What if learning an if statement meant learning to take a corner?
Formula110 turns beginner Python into autonomous racing. Students program a controller: a function that reads the car’s sensors, decides what to do, and returns throttle and steering commands.
The simulator handles the physics. The students work on the decisions. A few lines of code become something they can see, test, and improve.
Explore the open-source simulator ↗students wrote code
to control a car
students qualified
for race night
sensor-to-command loop
in the simulator
Participation and qualification figures from the Race Night presentation; these are not attendance counts.
A car. A sensor reading.
A decision you can understand.
if sensors.wall_lidar.front_left_m < 4.0:
steer = 1.0
else:
if sensors.wall_lidar.front_right_m < 4.0:
steer = -1.0
else:
steer = 0.0
throttle = 0.16
return RobotCommand(
throttle=throttle, steer=steer
)Actual Level 0 starter logic from the public repository. When a wall is close, steer away. Otherwise, keep going.
Distance to walls, speed, and track geometry.
Use variables, comparisons, and conditionals.
Return throttle and steering. Watch. Revise.
All those private moments of debugging lead to a shared starting line.
In October 2026, Formula110 came to GSB 200 at UNC’s Department of Computer Science. The Race Night format celebrated different kinds of driving: smooth corners, speed, high cornering loads, and the fastest clean lap. Controllers tested one at a time could now meet on the same track.

Race night / the room behind the race
From watching a variable
to watching the finish line.



Beyond the finish line
Provost Magnus Egerstedt joined the event for a seminar on robotics. The conversation put the students’ controllers in a much larger world of questions about autonomous systems.
COMP590 / Honors AI Engineering
Senior computer science majors presented their own work during the event.
Alongside the beginner controllers, the COMP590 Honors AI Engineering segment offered another view of making with code: students further along in their studies sharing what they had built.






An interactive Formula110 racing website by Caleb Han and Mason Mines, made for COMP590H.
Explore their interactive racing site ↗

Event photography: Jeyhoun Allebaugh / University Communications and Marketing.
A decision has a consequence. A branch in Python changes where a car goes. Abstract syntax becomes behavior on a track.
Iteration has a purpose. Each run offers a concrete next question: what happened, and what could change?
Beginner work deserves a stage. A shared race gives students a way to see programming as something they can make and show.
From a simulator to a project. From a project to race night.
The public source brings together vehicle physics, sensor APIs, starter controllers, track generation, timing, race rules, and broadcast cameras. The event opening credit uses the same vehicle physics to animate its car.
Behind the visible spectacle is a simple contract: a sensor snapshot goes in; a driving command comes out. That boundary makes room for beginner code while the surrounding simulator provides a richer world.
01 / June 27–28
A three-quarter view, an overhead study, lighting experiments, painted kerbs. These June artifacts show successive ways of making the racing world visible.
02 / June → August
The early head-to-head artifact puts two cars on one track. The August geometry study gives the project a familiar Formula-style shape.
03 / Early September
An asymmetric circuit, labeled seed 110 in the source collection, combines tighter bends and longer straights. Alongside that world, the Academy gives beginner Python a sequence of controller challenges.

sensor snapshot
↓
Python controller
↓
throttle + steering
↓
watch · test · revise04 / Late September
Qualifying was active by September 22. Independent follow cameras, damage bars and a timing tower offer different views of the action. The split-camera artifact was created September 24 and modified September 25.
05 / September → October
The grid, timing tower and cameras give the students’ code a stage. A September 30 pre-event artifact leads into race night in GSB 200.
06 / July → September · Identity studies
A parallel design thread gave the simulator a sense of home: blue-and-white argyle at the track, a Carolina-blue car, and the F110 mark. These three artifacts trace that palette from an early track treatment to the project’s opening artwork.
These clusters follow key moments of development. Image dates come from recorded filesystem artifact timestamps; Academy and qualifying dates come from course correspondence. Artifact dates are not claims about feature launches.
Same question, from the first prototype to the final grid:
What will your code do next?
Different challenges.
One shared starting grid.
The final event plan brought ten-car fields together for different driving challenges. Choose a category to explore its challenge and watch the full race.

Choose play to watch the full race
Smooth driving
A challenge for smooth driving: keep cornering loads low while navigating the circuit.
Select play to load this race from YouTube.
Watch on YouTube ↗