Tactility is an operating system for ESP32 boards. It loads apps at runtime, so a game built with this package installs onto a device that is already running Tactility, over Wi-Fi, from an SD card or through its App Hub, and opens from the home screen like any other app. Nothing is reflashed, and the device keeps everything else it does.
The package adds two platforms to the editor’s build menu: a Tactility device app, and the Tactility simulator. Pick one, build, and the editor produces the app with its assets inside it.
What it provides
| Deki provider | Backed by |
|---|---|
| Display | Tactility’s panel driver, drawn to directly |
| Input | its touch and keyboard drivers |
| Files | the app’s own assets directory, and a folder for its saved data |
Two boot components bring them up, TactilityDisplaySetup and
TactilityInputSetup, and a game written for any other platform runs
unchanged. Physical keyboards, such as the T-Deck’s, arrive as ordinary key
presses.
Straight to the panel
Most Tactility apps draw with LVGL. A Deki game already has a finished frame, so this package sets LVGL aside while the game is open and sends the frame to the panel itself, through a small band of internal RAM that also converts the colour format where a panel needs it. Panels that can read the frame straight from PSRAM skip the copy.
Where it runs
ESP32-S3 and ESP32-P4. An app’s code is loaded into RAM when it opens, and only those two chips can run code from PSRAM. That is a limit of the chips, not of Tactility.
Status
Experimental. The simulator build works end to end: the editor builds the app and installs it into a running Tactility simulator on x86-64 Linux, where it appears in the Apps menu. The device build is the next step; it uses the same sources, so what is left is the build itself.
The source and its README are on GitHub, under Apache 2.0. Tactility’s SDK allows apps under any licence.
