Files
github-actions[bot] 7fa972be6a sunnypilot v2026.02.09-4080
version: sunnypilot v2025.003.000 (dev)
date: 2026-02-09T02:04:38
master commit: 254f55ac15a40343d7255f2f098de3442e0c4a6f
2026-02-09 02:04:38 +00:00
..
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00
2026-02-09 02:04:38 +00:00

ui

The user interfaces here are built with raylib.

Quick start:

  • set BIG=1 to run the comma 3X UI (comma four UI runs by default)
  • set SHOW_FPS=1 to show the FPS
  • set STRICT_MODE=1 to kill the app if it drops too much below 60fps
  • set SCALE=1.5 to scale the entire UI by 1.5x
  • set BURN_IN=1 to get a burn-in heatmap version of the UI
  • set GRID=50 to show a 50-pixel alignment grid overlay
  • set MAGIC_DEBUG=1 to show every dropped frames (only on device)
  • set RECORD=1 to record the screen, output defaults to output.mp4 but can be set with RECORD_OUTPUT
  • set SUNNYPILOT_UI=0 to run the stock UI instead of the sunnypilot UI
  • https://www.raylib.com/cheatsheet/cheatsheet.html
  • https://electronstudio.github.io/raylib-python-cffi/README.html#quickstart

Style guide:

  • All graphical elements should subclass Widget.
    • Prefer a stateful widget over a function for easy migration from QT
  • All internal class variables and functions should be prefixed with _