James Vecellio-Grant 57eca29970 ui: Models panel (#1495)
* param to control stock vs sp ui

* init styles

* SP Toggles

* Lint

* optimizations

* sp raylib preview

* fix callback

* fix ui preview

* dialog txt

* compare vs what used to be done before InputDialog

* introducing ui_state_sp for py

* raylib: input dialog

* raylib: SP Toggles

* raylib: SP Panels

* raylib: Option Control

* init

* param to control stock vs sp ui

* better

* tree dialog, progress bar widget cool stuff

* merge origin raylib toggles

* tree dialog

* less trees for the planet

* the heck

* add ui_update callback

* save the trees we got icons

* Update process.py

* yesssssssssss

* utilize ON_COLOR constant form op system

* Revert "add ui_update callback"

This reverts commit 4da32cc009.

* # Conflicts:
#	system/ui/sunnypilot/widgets/list_view.py
#	system/ui/sunnypilot/widgets/option_control.py

* Merge remote-tracking branch 'openpilot/master' into nov-19-sync

* ui: `GuiApplicationExt`

* add to readme

* scroller_tici :)

* use gui_app.sunnypilot_ui()

* # Conflicts:
#	selfdrive/ui/layouts/main.py
#	selfdrive/ui/sunnypilot/layouts/settings/cruise.py
#	selfdrive/ui/sunnypilot/layouts/settings/display.py
#	selfdrive/ui/sunnypilot/layouts/settings/models.py
#	selfdrive/ui/sunnypilot/layouts/settings/navigation.py
#	selfdrive/ui/sunnypilot/layouts/settings/osm.py
#	selfdrive/ui/sunnypilot/layouts/settings/steering.py
#	selfdrive/ui/sunnypilot/layouts/settings/sunnylink.py
#	selfdrive/ui/sunnypilot/layouts/settings/trips.py
#	selfdrive/ui/sunnypilot/layouts/settings/vehicle.py
#	selfdrive/ui/sunnypilot/layouts/settings/visuals.py
#	system/ui/sunnypilot/widgets/option_control.py

* init value

* Remove 'sunnypilot_ui' 

Removed 'sunnypilot_ui' parameter from params_keys.h

* Update raylib_screenshots.py

Removed the parameter setting for 'sunnypilot_ui' in the test.

* easier to see

* Update progress_bar.py

* try something

* adjust placement

* more simple

* smoothing updating components

* ui: fuzzy search helper

* ui_state_sp

* description!

* fuzzy af searching

* better tree. fully dynamic and stuff

* rm

* rearrange

* license

* idk how maybe the merge

* more indent

* more indent

* cleanup

* temporaily revert ui_state_sp

* only show if fav_param is used in the call

* conditional for mypy

* mypy

* conditional for mypy

* str concatenation to reduce line len

* level

* sunny's new x,y makes this even easier!

* refreshing half a second seems legit.

* loathing loathing, unadulterated loathing, i loathe it all

* loathing loathing, unadulterated loathing, i loathe it all

* # Conflicts:
#	system/ui/sunnypilot/lib/styles.py
#	system/ui/sunnypilot/widgets/tree_dialog.py

* Update models.py

* Change BUTTON_DISABLED_BG_COLOR to a lighter shade

* I think this is it

* Update tree_dialog.py

* Update models.py

* Update models.py

* oops, angry f string

* bool

* Update ui_state.py

* Update ui_state.py

* wtf where'd the end quote go lol

* some

* more

* quick test

* Revert "quick test"

This reverts commit fb97afa54c.

* try this out

* use sp's

* cap

* how weird?

---------

Co-authored-by: nayan <nayan8teen@gmail.com>
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
2025-12-05 03:14:53 -05:00
2025-11-21 14:22:23 -05:00
2025-11-19 14:42:03 -08:00
2024-12-16 19:47:29 -05:00
2025-12-05 03:14:53 -05:00
2025-12-05 03:14:53 -05:00
2025-12-05 01:01:55 -05:00
2025-09-25 21:02:26 -07:00
2025-05-14 14:34:11 +01:00
2024-12-08 22:03:47 +01:00
2025-11-06 23:12:41 -05:00
2025-10-16 02:06:09 -07:00
2025-03-10 09:43:46 -07:00
2025-11-19 00:23:42 -08:00
2020-01-17 10:22:00 -08:00
2024-11-15 08:11:51 +01:00
2025-08-28 08:19:39 -07:00
2024-06-09 17:44:34 -07:00
2024-07-31 23:17:40 -07:00
2020-05-14 15:36:56 -07:00
2025-11-18 22:47:59 -08:00
2022-08-13 23:28:44 -07:00
2025-10-11 04:29:05 -07:00

🌞 What is sunnypilot?

sunnypilot is a fork of comma.ai's openpilot, an open source driver assistance system. sunnypilot offers the user a unique driving experience for over 300+ supported car makes and models with modified behaviors of driving assist engagements. sunnypilot complies with comma.ai's safety rules as accurately as possible.

💭 Join our Community Forum

Join the official sunnypilot community forum to stay up to date with all the latest features and be a part of shaping the future of sunnypilot!

Documentation

https://docs.sunnypilot.ai/ is your one stop shop for everything from features to installation to FAQ about the sunnypilot

🚘 Running on a dedicated device in a car

  • A supported device to run this software
  • This software
  • One of the 325+ supported cars. We support Honda, Toyota, Hyundai, Nissan, Kia, Chrysler, Lexus, Acura, Audi, VW, Ford, and more. If your car is not supported but has adaptive cruise control and lane-keeping assist, it's likely able to run sunnypilot.
  • A car harness to connect to your car

Detailed instructions for how to mount the device in a car.

Installation

Please refer to Recommended Branches to find your preferred/supported branch. This guide will assume you want to install the latest staging branch.

If you want to use our newest branches (our rewrite)

Tip

You can see the rewrite state on our rewrite project board, and to install the new branches, you can use the following links

  • sunnypilot not installed or you installed a version before 0.8.17?

    1. Factory reset/uninstall the previous software if you have another software/fork installed.
    2. After factory reset/uninstall and upon reboot, select Custom Software when given the option.
    3. Input the installation URL per Recommended Branches. Example: https://staging.sunnypilot.ai.
    4. Complete the rest of the installation following the onscreen instructions.
  • sunnypilot already installed and you installed a version after 0.8.17?

    1. On the comma three/3X, go to Settings ▶️ Software.
    2. At the Download option, press CHECK. This will fetch the list of latest branches from sunnypilot.
    3. At the Target Branch option, press SELECT to open the Target Branch selector.
    4. Scroll to select the desired branch per Recommended Branches (see below). Example: staging
Branch Installation URL
release https://release.sunnypilot.ai
staging https://staging.sunnypilot.ai
dev https://dev.sunnypilot.ai
custom-branch https://install.sunnypilot.ai/{branch_name}

Tip

You can use sunnypilot/targetbranch as an install URL. Example: 'sunnypilot/staging'.

Note

Do you require further assistance with software installation? Join the sunnypilot community forum and create a topic in the General/Q&A Category channel.

Older legacy branches

[IMPORTANT] It is recommended to re-flash AGNOS if you intend to downgrade from the new branches. You can still restore the latest sunnylink backup made on the old branches.

Branch Installation URL
release-c3 https://release-c3.sunnypilot.ai
staging-c3 https://staging-c3.sunnypilot.ai
dev-c3 https://dev-c3.sunnypilot.ai

🎆 Pull Requests

We welcome both pull requests and issues on GitHub. Bug fixes are encouraged.

Pull requests should be against the most current master branch.

📊 User Data

By default, sunnypilot uploads the driving data to comma servers. You can also access your data through comma connect.

sunnypilot is open source software. The user is free to disable data collection if they wish to do so.

sunnypilot logs the road-facing camera, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs. The driver-facing camera and microphone are only logged if you explicitly opt-in in settings.

By using this software, you understand that use of this software or its related services will generate certain types of user data, which may be logged and stored at the sole discretion of comma. By accepting this agreement, you grant an irrevocable, perpetual, worldwide right to comma for the use of this data.

Licensing

sunnypilot is released under the MIT License. This repository includes original work as well as significant portions of code derived from openpilot by comma.ai, which is also released under the MIT license with additional disclaimers.

The original openpilot license notice, including comma.ai’s indemnification and alpha software disclaimer, is reproduced below as required:

openpilot is released under the MIT license. Some parts of the software are released under other licenses as specified.

Any user of this software shall indemnify and hold harmless Comma.ai, Inc. and its directors, officers, employees, agents, stockholders, affiliates, subcontractors and customers from and against all allegations, claims, actions, suits, demands, damages, liabilities, obligations, losses, settlements, judgments, costs and expenses (including without limitation attorneys’ fees and costs) which arise out of, relate to or result from any use of this software by user.

THIS IS ALPHA QUALITY SOFTWARE FOR RESEARCH PURPOSES ONLY. THIS IS NOT A PRODUCT. YOU ARE RESPONSIBLE FOR COMPLYING WITH LOCAL LAWS AND REGULATIONS. NO WARRANTY EXPRESSED OR IMPLIED.

For full license terms, please see the LICENSE file.

💰 Support sunnypilot

If you find any of the features useful, consider becoming a sponsor on GitHub to support future feature development and improvements.

By becoming a sponsor, you will gain access to exclusive content, early access to new features, and the opportunity to directly influence the project's development.

GitHub Sponsor

Become a Sponsor

PayPal

PayPal this

Your continuous love and support are greatly appreciated! Enjoy 🥰

- Jason, Founder of sunnypilot

Languages
Python 65.8%
C++ 29.3%
Cap'n Proto 1.6%
C 1.3%
Shell 1%
Other 1%