* 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 * merge origin raylib toggles * tree dialog * less trees for the planet * the heck * save the trees we got icons * Update process.py * 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. * ui: fuzzy search helper * better tree. fully dynamic and stuff * rm * more indent * Squashed commit of the following: commit6b5b686fa5Author: discountchubbs <alexgrant990@gmail.com> Date: Mon Nov 24 17:16:17 2025 -0800 more indent commit76bc538ac7Merge:53eb821dc4c53e2134e2Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Mon Nov 24 17:15:48 2025 -0800 Merge branch 'master' into rl-tree-dialog commit53eb821dc4Merge:82e1ebe97e844f4cbc74Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Mon Nov 24 11:54:55 2025 -0800 Merge branch 'master' into rl-tree-dialog commit82e1ebe97eAuthor: discountchubbs <alexgrant990@gmail.com> Date: Mon Nov 24 10:23:35 2025 -0800 rm commitda3ff45bb6Merge:41da513fcaa829a1b972Author: discountchubbs <alexgrant990@gmail.com> Date: Mon Nov 24 10:19:08 2025 -0800 Merge remote-tracking branch 'origin/rl-tree-dialog' into rl-tree-dialog commit41da513fcaAuthor: discountchubbs <alexgrant990@gmail.com> Date: Mon Nov 24 10:18:43 2025 -0800 better tree. fully dynamic and stuff commitb2950149fbMerge:4fb8e4beed924e5a3211Author: discountchubbs <alexgrant990@gmail.com> Date: Mon Nov 24 10:17:51 2025 -0800 Merge remote-tracking branch 'origin/input-dialog' into rl-tree-dialog commita829a1b972Merge:848290d07e9edc36ca66Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Mon Nov 24 10:16:28 2025 -0800 Merge branch 'master' into rl-tree-dialog commit4fb8e4beedMerge:848290d07eaf4f0f8372Author: discountchubbs <alexgrant990@gmail.com> Date: Mon Nov 24 10:16:20 2025 -0800 Merge remote-tracking branch 'origin/fuzzy-dialog' into rl-tree-dialog commitaf4f0f8372Merge:1d5f0ab2823cd55260d9Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Mon Nov 24 06:39:29 2025 -0800 Merge branch 'master' into fuzzy-dialog commit1d5f0ab282Author: discountchubbs <alexgrant990@gmail.com> Date: Sun Nov 23 11:28:59 2025 -0800 ui: fuzzy search helper commit848290d07eAuthor: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Fri Nov 21 21:08:07 2025 -0800 Update raylib_screenshots.py Removed the parameter setting for 'sunnypilot_ui' in the test. commit6694928a46Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Fri Nov 21 21:06:57 2025 -0800 Remove 'sunnypilot_ui' Removed 'sunnypilot_ui' parameter from params_keys.h commitb3c90ef7b2Merge:0d3bc959c8457b6634fdAuthor: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Fri Nov 21 21:06:04 2025 -0800 Merge branch 'master' into rl-tree-dialog commit924e5a3211Merge:a4ee4ba76dd92d2cb683Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Fri Nov 21 19:33:18 2025 -0800 Merge branch 'master' into input-dialog commita4ee4ba76dMerge:e911de59684f13a0f775Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Fri Nov 21 16:24:31 2025 -0800 Merge branch 'master' into input-dialog commite911de5968Merge:cea6e008190ba5cbea91Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Fri Nov 21 13:50:33 2025 -0800 Merge branch 'master' into input-dialog commitcea6e00819Merge:d7b8ce86ed8184cd8a6aAuthor: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Fri Nov 21 12:01:45 2025 -0800 Merge branch 'master' into input-dialog commit0d3bc959c8Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Wed Nov 19 20:29:30 2025 -0800 Update process.py commit4f3c19ffb5Author: James Vecellio <alexgrant990@gmail.com> Date: Wed Nov 19 20:28:59 2025 -0800 save the trees we got icons commitae5c44355dAuthor: discountchubbs <alexgrant990@gmail.com> Date: Wed Nov 19 13:38:04 2025 -0800 the heck commit066438ad10Merge:9532675814e74460f3a8Author: discountchubbs <alexgrant990@gmail.com> Date: Wed Nov 19 12:18:17 2025 -0800 Merge remote-tracking branch 'origin/rl-tree-dialog' into rl-tree-dialog commit9532675814Author: discountchubbs <alexgrant990@gmail.com> Date: Wed Nov 19 12:17:52 2025 -0800 less trees for the planet commite74460f3a8Merge:c347db376a423a7d2ed0Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Wed Nov 19 09:37:44 2025 -0800 Merge branch 'rl-sp-toggles' into rl-tree-dialog commitc347db376aAuthor: discountchubbs <alexgrant990@gmail.com> Date: Wed Nov 19 09:36:33 2025 -0800 tree dialog commitc9bd67b261Author: discountchubbs <alexgrant990@gmail.com> Date: Wed Nov 19 09:34:08 2025 -0800 merge origin raylib toggles commitd7b8ce86edAuthor: discountchubbs <alexgrant990@gmail.com> Date: Mon Nov 17 20:21:33 2025 -0800 compare vs what used to be done before InputDialog commit2d3d104658Merge:ded02895f4f1025f6ee9Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Mon Nov 17 19:24:20 2025 -0800 Merge branch 'master' into input-dialog commitded02895f4Author: discountchubbs <alexgrant990@gmail.com> Date: Mon Nov 17 19:22:01 2025 -0800 dialog txt commit9778a925b0Merge:cb03d0839708e85808c5Author: Jason Wen <haibin.wen3@gmail.com> Date: Sun Nov 16 03:16:58 2025 -0500 input dialog commit423a7d2ed0Author: nayan <nayan8teen@gmail.com> Date: Sun Nov 16 11:15:28 2025 -0500 fix ui preview commite4e10d4b87Author: nayan <nayan8teen@gmail.com> Date: Sun Nov 16 11:15:22 2025 -0500 fix callback commit362e9ce04bAuthor: nayan <nayan8teen@gmail.com> Date: Sun Nov 16 09:53:28 2025 -0500 sp raylib preview commit3946e643f6Author: nayan <nayan8teen@gmail.com> Date: Sat Nov 15 20:24:20 2025 -0500 optimizations commit0c37a38596Author: nayan <nayan8teen@gmail.com> Date: Sat Nov 15 09:42:12 2025 -0500 Lint commit9c5acf61c0Author: nayan <nayan8teen@gmail.com> Date: Sat Nov 15 09:29:07 2025 -0500 SP Toggles commit121b304fe0Author: nayan <nayan8teen@gmail.com> Date: Sat Nov 15 09:28:58 2025 -0500 init styles commit47d848293bAuthor: nayan <nayan8teen@gmail.com> Date: Sat Nov 15 09:28:43 2025 -0500 param to control stock vs sp ui * Squashed commit of the following: commit70ad001addMerge:142663c490844f4cbc74Author: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Mon Nov 24 11:54:58 2025 -0800 Merge branch 'master' into rl-progress-bar commit142663c490Author: discountchubbs <alexgrant990@gmail.com> Date: Sat Nov 22 20:12:44 2025 -0800 smoother updating commit4476e418ddAuthor: discountchubbs <alexgrant990@gmail.com> Date: Sat Nov 22 09:55:17 2025 -0800 easier to see commitad66c22e88Merge:0c46ef5948457b6634fdAuthor: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Sat Nov 22 07:45:05 2025 -0800 Merge branch 'master' into rl-progress-bar commit0c46ef5948Author: discountchubbs <alexgrant990@gmail.com> Date: Sat Nov 22 07:42:59 2025 -0800 freaking test dir commit11c19aad24Merge:7785238d548184cd8a6aAuthor: James Vecellio-Grant <159560811+Discountchubbs@users.noreply.github.com> Date: Fri Nov 21 12:01:36 2025 -0800 Merge branch 'master' into rl-progress-bar commit7785238d54Author: discountchubbs <alexgrant990@gmail.com> Date: Wed Nov 19 07:47:10 2025 -0800 raylib: progress bar * OSM panel * fetching * only show if fav_param is used in the call * flattened and custom search query * conditional for mypy * sunny's new x,y makes this even easier! * download all * add back the rough estimate * not sure i like the 'Download' * simplify the path * actual size as of today * format * more simple * only show on download or delete * 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 * search * st * Update osm.py * one second updates: its heavy process, which isnt really noticeable during downloads ayways. the once a second ensures responsiveness on the ui, while also maintaining 20fps on device for country/state downloads. * efficient? i hope * big boi texts * big boi texts * use our own classes * need to clear all params when delete all * more * collateral lol * do not behave as selected if canceled during US->States dialog * more * instead of timestamp, let's just show formatted time * disable button when downloading dbs * should be the buttons being disabled * well gotta re-enable them too * empty country * might be bigger now * fixes for mapd manager * should stay as a json * sanitize it a bit * revert * only nuke if the cancel button is called * always try to update the labels * Revert "always try to update the labels" This reverts commitba0988fc06. * re-enable button after download is complete * disable all while downloading (till we could cancel and re-download) * fix progress bar not filling up as intended for smaller total counts * revert * use new --------- Co-authored-by: nayan <nayan8teen@gmail.com> Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
🌞 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
- a comma three or a C3X
- 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?
- Factory reset/uninstall the previous software if you have another software/fork installed.
- After factory reset/uninstall and upon reboot, select
Custom Softwarewhen given the option. - Input the installation URL per Recommended Branches. Example:
https://staging.sunnypilot.ai. - Complete the rest of the installation following the onscreen instructions.
-
sunnypilot already installed and you installed a version after 0.8.17?
- On the comma three/3X, go to
Settings▶️Software. - At the
Downloadoption, pressCHECK. This will fetch the list of latest branches from sunnypilot. - At the
Target Branchoption, pressSELECTto open the Target Branch selector. - Scroll to select the desired branch per Recommended Branches (see below). Example:
staging
- On the comma three/3X, go to
Recommended Branches
| 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
If you want to use our older legacy branches (not recommended)
[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
PayPal
Your continuous love and support are greatly appreciated! Enjoy 🥰
- Jason, Founder of sunnypilot
