We built an extensively animated HMI demo for a car cockpit using both Qt and Kotlin. The project was deployed on both Android OS and a custom Yocto Linux system.
DOMAIN
Automotive / embedded HMITECH STACK
Qt6 · QML · Kotlin Jetpack Compose · Yocto · AndroidTARGET HARDWARE
Toradex Verdin iMX8M PlusSCOPE
Embedded GUI Development | UX/UI Design | Cross-platform comparisonPerun is a car cockpit HMI our team built in-house, implementing the same instrument cluster twice — once in Qt6/QML on custom Yocto Linux, once in Kotlin on Android — to support our Qt vs Android whitepaper.
The speedometer combines an animated analog needle with a large digital speed readout, giving the driver clear feedback at a glance. The illuminated scale responds dynamically to the current speed, while the gear indicator provides additional driving context in the same compact view.
The Vehicle Status screen presents a top down overview of the vehicle, showing simulated door and trunk status, tire pressure, battery condition, and engine temperature. Indicators animate as the simulated data changes, including open and closed doors and OK or NOK system states, providing a clear view of changing vehicle conditions.
Sixteen status and warning indicators surround the central speedometer, covering driver assistance, safety, lighting, and vehicle systems such as cruise control, lane keeping, ABS, and more. Driven by simulated real world data, the indicators dynamically reflect active states, warnings, and faults, while illuminated turn signals provide clear directional feedback.
The Power and Energy section visualizes simulated real world vehicle data, including power output, energy usage, battery charge, driving range, and charging status. Animated masked meters show live kW and kWh values, while the battery indicator combines remaining charge percentage with estimated range.
The Navigation Panel displays the planned route as a dynamically drawn path, with an animated vehicle marker showing progress and direction along the journey. It also presents key trip information, including remaining distance, elapsed trip time, and estimated time to destination.
This application was developed in both Qt and Android (Kotlin Jetpack Compose) to evaluate how the two platforms perform under identical conditions. Results are exciting.
Explore the full whitepaper to compare each stack across development effort, UI responsiveness, resource usage, and real-world implementation trade-offs on embedded hardware.Steady ~59 FPS versus ~32 FPS on Android, on identical hardware - smooth transitions with no visible stutter.
Qt held average CPU at ~34% vs ~41% for Android - leaving more resources for other tasks, including safety-critical ones.
Qt on Yocto showed the cluster in ~10 seconds. Roughly 4× faster than the ~40s Android build. Critical where a display must come up almost instantly.
A ~109 MB footprint against ~161 MB on Android. On a fleet of devices, every megabyte drives hardware choice and cost.
Every element of the Perun dashboard was designed in-house in Figma - a visually rich, dark-themed cluster built on layered gradients, soft shadows, glowing indicators and fluid animated transitions. Getting these effects to render sharp and smooth on embedded hardware is where design and engineering meet, and it's exactly the kind of polish our team delivers end to end.
We offer UI/UX design as a standalone service, tailored to your product, brand and hardware.
Chief Executive Officer
We'll address every query and pinpoint the ideal strategy for your project's success.
Fill out the form, and we’ll get back to you shortly.