Techcrunch Coverage

Live Demo


Nearly 1.3 million people die in road crashes each year, on average 3,287 deaths a day and an additional 20-50 million are injured or disabled. While autonomous driven cars strive to make the roads prone to human errors, we propose an application which can let humans reduce their errors by providing them with insights and analysis on their driving performance. The idea sprung up when we realized an absence of a synchronized application for both drivers and their supervising clients, like DMV, Chauffeur services, Uber/Lyft, etc., wherein clients and drivers, both can oversee the driving performance and can work with each other to make it better.

What it does

DUI is a two-fold application, customized for drivers and driving supervisors. For drivers, DUI is a tool to improve their driving performance by keeping track of their Driver Performance Index (DPI). For Supervising agencies, DUI provides a seamless platform to test their drivers based on a number of constraints set beforehand. So with DUI, Uber/Lyft do not need to rely only upon riders’ feedback to calculate drivers’ ratings. Government agencies like DMV can also use DUI for initiating a Virtual Drivers’ Licence Test where they can utilize the Driver Performance Index (DPI) instead of in-person driving tests, thus making better use of time and resources. The following diagram describes overall product architecture well:


In detail: firstly, drivers put in their current location, which is sent to the company supervisors. Based on their requirements, the company clients would select certain testing constraints and DUI would provide a SmartRoute which is closest to the driver and contains all the constraints provided by the company. For example, a route with 10 stop signs, 3 different speed limits and 2 sharp turns.

The user drives on this constraint-based route and his driving techniques based on constraints provided by the company, are monitored and analyzed over a server.

DUIs sophisticated mathematical models quantifies driver’s performance in the form of Driver Performance Index (DPI) and suggest improvements at the end of your trip. This way you can better understand your driving and learn how to improve. The companies are also provided with log data of the events happened during driver’s driving session, which they can share with the driver if they like.

How we built it

DUI is an Android app which uses OpenStreetMap to scrape the metadata associated with the constraints provided by the client companies. This data is fed to ArcGIS Route Solver to provide drivers an optimal path (SmartRoute) for performance evaluation.


As users drive, DUI detects key event information (hard braking, speeding, speed at a STOP sign, speed while turning, etc.) in the route using the Arity Driving Engine SDK in conjunction with mathematical models.


We then synchronize the event data collected from Arity Driving Engine SDK along with geographical information from ArcGIS API and input this information in an algorithm to generate the Driver Performance Index (DPI).

Challenges we ran into

Performance was difficult to deal with because we are processing a lot of data but we need to keep the app as responsive as possible. Searching for a route and analyzing the collected data were the main focuses on performance.

Fiddling around with the Arity Driving Engine SDK was challenging but fun at the same time. Made us so happy when we finally were able to get the SDK running for the Driving Demo video.

Accomplishments that we're proud of

Integrating different and varied APIs and SDKs into a Minimal Viable Product. Bridging the gap between drivers and client company safety requirement Successful Driving Demo :)

What I learned

Finding a niche application using dense and advanced APIs is always challenging

What's next for Drive, Understand, Improve (D.U.I.)

It would be useful to be able to track the performance of a driver over many trips to find trends and see if they are improving at all.

Integration with other technologies such as onboard diagnostic port modules would also be beneficial as it would allow the app to get a much more complete understanding of driving behaviour. For example, the app could get exact speed, acceleration, steering wheel angle, and much more.

Improving mathematical models to better analyze drivers’ performances and performing market research can also be attributed as future work.

Share this project: