This is my line of reasoning behind an idea for [openpilot](https://github.com/commaai/openpilot) called DAD or Driver Alert Dial. This post is in response to a design challenge comma had, which is posted [here](https://github.com/commaai/jobs/blob/master/design.md). In the challenge it talks about openpilot being able to predict how likely it is going to make a mistake, but the problem is that it doesn't currently have a expressive enough solution to describe the different states of confidence it goes through when openpilot is being used in a drive. The DAD is a tool that helps with communicating to users the confidence of openpilot during certain parts of a drive so that users can better assist openpilot when it is in certain environments. This is important because openpilot is a level 2 ADAS system which requires the driver to always be ready to take over the car at any time. ![[Low Alert Mode - half.png]] This is a comma3x which runs openpilot. Don't know what this is? Check out [docs.howtocomma.com](https://docs.howtocomma.com/) which is a guide for new users to learn more about the company, openpilot and the comma3x device. **In the bottom left side of the comma 3X screen you will notice a bullseye looking thing. This is the DAD.** There are 3 zones that represents different states of how alert the current driver should be. This allows the driver to anticipate better on when to take over to assist openpilot. The circle in the middle is the alert ball. This will move around depending on openpilots confidence in the current moment of the drive. ## How does the Driver Alert Dial (DAD) work? ### Alert Ball ![[alert-ball-modes.png]] You will see three different kinds of alert balls. The cyan ball is for low alert. The yellow ball is for medium alert. The red ball is for high alert. The color of the alert ball will change right when it enters a new zone. Entering a new zone happens right when the alert ball touches the other zone. It does NOT need to be fully in the different zone to change color. Just by touching the other zone the ball will change to the zone it touched. When the alert ball is in the high alert zone(seen below) and it touches the outer red border this is equivalent to openpilot wanting the driver to take control immediately. You do not want the alert ball to touch that outer red border. When it does touch the outer red border you will see a red screen on the comma device saying to take control immediately. ## What do the colors mean? ![[DAD-different-modes 1.png]] ### Cyan pretty reliable, needs disengagement less than once every 10 min ### Yellow may or may not work, needs disengagement every few minutes or more ### Red expected to not work, will likely need disengagement within seconds ### Muted colors openpilot is not currently engaged ## What makes the alert ball move in a certain direction? ![[Screenshot 2024-05-16 at 2.48.44 AM.png]] The Driver Alert Dial works similar to how a cup of water would react in your car if you braked, accelerated or turned too aggressive. We change how we drive depending on what and who is in, or near the car. If you see cops, you slow down. Have a U-haul with a bunch of fragile stuff in the back? You'll find yourself driving with much more care and slowness because of that close visual reminder like seeing a cop nearby, or seeing a vase with water in your passenger seat. Using this insight of drivers adjusting their driving behaviors if there was some sort of visual feedback led to creating something that would communicate how confident openpilot was in real time, and also react dynamically how your driving override is affecting the situation. Visually seeing how your driving override is affecting openpilot can create a better experience because of less *unexpected* disengagements and overall smoother drive. ### Example: When openpilot is engaged and you are going 75mph on the freeway and then openpilot notices a aggressive slow down approaching, the Driver Alert Dial will look like this. ![[high-alert-DAD 1.png]] Notice how the red alert ball is not touching the red border because if it was then there would be a bigger alert on your device saying to take control immediately. To get the alert ball back in the middle, you will need to decrease your speed so that the alert ball ends up in a place like below. As you decrease your speed the alert ball will roll back towards the cyan zone. ![[low-alert-DAD.png]] If openpilot needs you to accelerate because openpilot is not accelerating fast enough, the alert ball will show up lower towards the bottom something like this. ![[medium-alert-DAD.png]] ## General key of what to do ![[DAD-key.png]] Above you will see the Driver Alert Dial(DAD) with muted colors. This means that openpilot is not engaged. For now we will be using the disabled version of DAD to explain what it means if the alert ball was to be in a certain area. If the alert ball is in at the right side of the DAD, that means there is not enough torque and that you will need to assist openpilot in making the turn. Turn the wheel to the right more to then get the alert ball back to the cyan circle(low alert mode). If the alert ball is on the left side you would be turning the wheel to the left to assist openpilot making left turn which will get the alert ball to go back towards the cyan circle. Seeing how the DAD reacts to your overrides when openpilot is engaged may feel counter intuitive at first, but like any tool after being adjusted to it, users would be able to anticipate sooner without using the comma device for many miles to better understand when to assist openpilot during a drive. ## Current mockups Below are mockups with the comma device showing the different modes the Driving Alert Dial can be in. Mock ups still need a lot of work to reflect the experience more accurately. For example, making sure when the alert ball gets into the medium or high alert zones, the appropriate openpilot alert that already exists should be displayed in addition to it. ![[comma3X-mockup.png]] ## Why questions ![[DAD-different-modes 1.png]] *Why did I go with cyan instead of green for the low alert zone?* Having both the Driver Alert Dial and the border around openpilot which shows if OP is engaged to be the same color could cause confusion. Having a distinctive bright, vivid cyan to represent when you are in the low alert zone allows people to build up a relationship with the color cyan. This will allow for more clarity when the alert ball enters a new zone. *Why does "Disabled" state get no alert ball?* The Driver Alert Dial should only be engaged when OP is engaged. When it is disabled no alert ball is needed because OP is not engaged to communicate how confident it is. *Why isn't high alert fill colored red?* I decided with a dark fill color versus red to bring more attention so that the driver can notice the change more obviously. This will allow them to assist openpilot more readily. ## Criticism is important This design is far from perfect, which is why criticism is important. The less wrong solution for this problem is going to be found through iterations and through real-world testing of how helpful the tool actually is. I'm not attached to this specific design, I'm attached to winning. Winning means delivering actual value to users, not just appearing to do so. ![[scratch-ideas.png]] Many variations, and I can keep making more. But the thing I'm missing is how users interact with it on a day to day. The thing I'm missing are the complaints I will get because I didn't think about a scenario that made the tool in the end, less helpful. The thing I'm missing is good criticism. This sort of criticism will get us closer to the best design. But the best design is still out there. It always will be. To get closer to that best design, I must expose the ideas so that they can be criticized well with specifics so I can iterate and error correct. ## Conclusion These were some of the thoughts I had when I was thinking through how might we create a great tool for users to better help openpilot when OP isn’t confident about the current environment. There are flaws to how this might work in the real world which is why I have been a fan of what comma's mission is. "**solve self driving cars while delivering shippable intermediaries**." comma has an insight that most other tech startups don't. If you can't create a shippable product, is the vehicle in which you are choosing to solve the given problem, the most effective one? What entity was more effective at accelerating the change of human habits towards renewable resources. People pushing for paper straws, which get mushy after 5min of using it, or a company trying to make electric cars not only better than other electric cars but better than all cars, with the ambition of making it faster, sleeker, safer, than competing cars in the respective price range. One solution of changing human action makes people choose a product not because it’s the best, but because it’s the morally “right” thing to do. You can save the earth by using paper straws. While the ladder solution focuses on people naturally being selfish, which means that people will act on buying something IF the product is great. Somehow a company back around 2017 started shipping a car that wasn’t only fully electric and more “eco friendly” than a Prius, it was also fast, sexy, had utility, and one of the safest car out there, the Model 3. Products that create change, are product that can scale to the masses. At the end of the day, I want to play a part in solving a problem that could impact the hundreds of future generations of humans. I want to spread power to the edges. Very few companies do this, but comma is. The future is up to us. The future is up to me. If I want a more exciting one, I got to find a way to create that. Let's win. Thanks comma for being a company with enough courage to do things that other companies won't. "Brilliant thinking is rare, but courage is in much shorter supply, than genius." -Peter Thiel --- Figma Link: https://www.figma.com/design/0uN0GPvQxMdnpnxXSbBGCe/Driver-Alert-Dial-aka-D.A.D.?node-id=1%3A96&t=mIBOKBxkmLrbbNl9-1