sunnypilot Architecture Tour

sunnypilot is a fork of comma.ai's openpilot, an open source driver assistance system that runs on a dedicated device inside the car and drives the steering, gas, and brake through the car's own computers. This workshop is a tour of how that software is actually put together: how many separate programs are running at once, how they talk to each other without ever calling a function on one another directly, what happens between a camera frame arriving and the steering wheel moving, and where sunnypilot draws the line between "software suggests" and "hardware enforces."

You will finish able to open this codebase, know which of its many directories to look in for a given question, and trace a real recorded drive through the system with your own commands rather than by reading someone else's description of it.

This is Workshop 1 of a planned series; see Module 6 for where the rest of the series is headed and how each later workshop will build on what you learn here.

What you'll need to know already

This workshop assumes you're comfortable with Python, some C, git, and the Linux command line, and that you've built or debugged production software before. It does not assume any prior exposure to cars, driver-assistance systems, or robotics: Module 0 defines the domain vocabulary (what "ADAS" means, what a CAN bus is, what comma's "route" and "segment" terms mean) before it's used anywhere else.

What this tour covers

Prerequisites

Everything in this workshop was captured on this exact checkout, using its bundled uv-managed Python environment and its already-built C++ tools. Module 6 has the full reproduction steps; the short version is:

source .venv/bin/activate

run before any Python command in this workshop, and the tools/replay/replay binary already built and ready to fetch a public demo drive with no car, hardware, or comma account required.

→ Final Exam