A desktop studio for embedded Linux HMI panels — an AI designer, a canvas the size of the panel,
a coding agent that wires your PLC, and one-click deploys to a 1.4 MB C + LVGL runtime that rolls itself back.
Quick start · Features · How it works · Guide · Changelog
One sentence to a running Namma Metro Purple Line cab display on a real Toradex panel — every step inside the Studio.
Note
EmbeddedDisplay Studio was presented at the Berkeley × DeepMind Hackathon: a brief described in plain words, designed by AI, wired to the hardware and deployed to a real embedded panel — live, from one desktop app.
Also in the box
- The panel's own renderer, everywhere — canvas and previews are drawn by the same C runtime that runs on the glass, so what you see is what ships.
- 52 widgets — industrial, avionics, automotive, rail and animated GIFs (speed arc, station line, train consist…), each in QML and in C. Save any group as a custom widget.
- Simulate without hardware — Tag Lab waveforms, and
tagsimflies a whole aircraft or runs a train between stations so every reading agrees. - Operator runtime — expression bindings, action lists with confirm, alarm priorities, latching and shelving, history, keypad, screen idle.
- Bring your own Qt app — PySide6 and PySide2 applications deploy too; the Studio installs their runtime on demand.
| Layer | Owns | |
|---|---|---|
| 1 | hmi-hwd — hardware daemon (C) |
GPIO, ADC, serial, Modbus TCP/RTU, CAN, USB/HID, I2C/SPI sensors, history, safe states |
| 2 | hmi-ui — panel runtime (C + LVGL, DRM/KMS) |
the design file, bindings, alarms, pixels |
| 3 | deployment | atomic install, health check, rollback |
Widgets never touch hardware: they bind to tags that arrive over a loopback socket (the contract).
Tip
No hardware needed: the daemon simulates its I/O and Tag Lab drives any tag a design invents.
Packaged — download the Windows or Linux build from the latest release. Nothing to install.
From source (Python 3.12):
python -m pip install -r requirements.txt
python main.pyA panel (once, over SSH, no reflash):
ssh-copy-id root@<panel-ip>
python deploy/provision_panel.py --host <panel-ip>Then: Design → AI Design, describe the screen → Simulate → connect the panel from the device chip → Deploy.
| The guide | The Studio's modes, AI Design, Code, deploying, the runtime, bundles, architecture, hardware |
| Contract | Wire protocol, bundle format, filesystem layout, reliability rules |
| AI layout compiler | How a brief becomes a screen |
| Code IDE and agent | The Code mode and its opencode agent |
| Hardware daemon and tagsim | hmi-hwd, Modbus, the historian and the bench simulator |
| Changelog | Every release |
| Design from a picture Attach a screenshot or mock-up to the AI Design brief: the screen comes back laid out the way the picture is, in its colours, with its main picture cut in. |
Cockpit widgets and moving pictures A vertical gear rail, six-tyre pressures, coloured dials and vitals bars, status-strip icons, and ShAnimatedImage playing a GIF on the panel. |
A hardware daemon in Chmi-hwd drops Python: GPIO, ADC, serial, Modbus TCP/RTU, CAN, USB and HID devices, I2C/SPI sensors and the historian, same wire protocol. |
MIT licensed — see LICENSE. LVGL and Tabler Icons are MIT; the packaged Studio carries PySide6 and Qt, unmodified, under the LGPL-3.0.
FLYVI TECHNOLOGIES · EMBEDDED DISPLAY ENGINEERING








