The Deki engine on its own is small on purpose: objects, components, the lifecycle and the asset system. Everything you see and everything that talks to hardware is a package. Open the Package Manager, add one, and its components are in the inspector. Leave one out and it is not in the firmware.

Here is what there is today.
Making things move
- 2d: sprites, text (bitmap fonts, and TTF baked in the editor), sprite-sheet animation, gradients, 9-slice panels, buttons, scrolling, clipping and rollers.
- particles: emitters with shapes, gravity, drag and modifiers over each particle’s life, built as a node graph.
- tween: 30-odd easing curves, from the inspector or from code.
- fsm: state machines drawn on a canvas, each state with its own flow of actions.
- input: touch, mouse, keys, trackballs and I2C keyboards, routed to whatever component wants them.
- rendering: the camera and the renderer the rest draw through.
- 3d: experimental, software-rasterised meshes sharing the
2D framebuffer, with
.objimport. - nodegraph: the graph canvas particles and state machines are drawn on, for any package that wants one.
- tiledmapeditor-integration: drop in a map made in Tiled and it streams in chunks.
Talking to the world
- gps: any NMEA receiver. It finds the receiver’s speed by itself and reports satellites and altitude as well as the position.
- lora: new in this release. Sends and receives with a Semtech SX1262, the duty cycle enforced.
- wifi and ble: Wi-Fi and Bluetooth LE behind one interface each, with the board supplying the radio.
- http and json: fetch something and read it.
- imu, rtc, audio and sdcard: motion, time, sound and storage.
- i2c, i2s, uart and gpio: the buses the rest sit on, configured once per board.
Running somewhere
- esp32-integration: builds and flashes through ESP-IDF, from the editor.
- lovyangfx-integration: SPI, parallel and QSPI displays and their touch panels.
- sdl3-integration and desktop-integration: a window, input and files on Windows and Linux.
- tactility-integration: a Deki game as an app inside the Tactility firmware, launched from its home screen instead of flashed on its own.
- lilygo-boards: two boards ready to build for, the T-Deck Plus and the T-Display S3 AMOLED. A board is a package too, and adding one is mostly a description of its hardware.
How a project gets them
A project names the packages it uses and the editor fetches the rest: each package lists what it needs, and those come too. They are installed from git tags listed in the registry, so a project builds the same next year as it does today. When you build for a device, a package feature nothing in the project uses is left out of the firmware.
Every package is its own repository under Apache 2.0, and the
catalog has a page for each. Missing one? A package is a folder
with a package.json and some C++; the existing ones are the best examples.
