| assets | ||
| compiler | ||
| example_effects | ||
| firmware | ||
| studio | ||
| vm | ||
| .clangd | ||
| .envrc | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
PixelPilot - LED Software Suite
PixelPilot is a modular, open source software suite for creating, simulating, and deploying programmable LED effects. Designed for hobbyists, creators, and developers, it combines a simple custom scripting language, an embedded bytecode virtual machine, and cross-platform tools for managing and visualizing LED animations on real hardware.
✨ Overview
PixelPilot consists of four main components:
- PixelPilot Studio — A Qt-based desktop application featuring a built-in code editor, bytecode compiler, and visual simulator for LED effects.
- PixelPilot Firmware — Lightweight firmware for ESP32-based LED controllers using PlatformIO and ESP-IDF.
- PixelPilot VM — A custom, embeddable virtual machine written in C for running compiled LED effect bytecode on real hardware or in simulation.
- PixelPilot Compiler — A CLI-Program and C-Library to compile to compile the LED Scripts into the bytecode that the VM can understand.
The suite enables fast iteration on LED animations and seamless deployment over WiFi or Bluetooth to physical devices.
📦 Project Structure
pixelpilot/
├── firmware/
├── studio/
├── compiler/
└── vm/
💡 Features
- Custom DSL for LED animations with time-based logic
- Bytecode compiler and VM for efficient execution on embedded devices
- Visual simulator in the GUI for fast iteration and testing
- Live deployment of compiled effects over Bluetooth or WiFi
- Modular VM core with pluggable LED backends for real and simulated environments
- Support for WS2812B LEDs (SK9822 planned)
🚀 Getting Started
Requirements
TODO
Get the Code
git clone https://gitlab.com/nihklas/PixelPilot.git
cd PixelPilot
Upload the Firmware
Connect the Microcontroller to your PC and upload the firmware with
PlatformIO:
cd firmware
pio run -t upload
Enter the Studio
TODO
🧱 Technical Notes
- The PixelPilot VM uses a vtable interface to abstract LED output, allowing it to run identically on real devices and in the desktop simulator.
- Effect scripts are authored in a custom language and compiled to bytecode inside the GUI before being transmitted to hardware.
- The system is tightly integrated. Firmware, GUI, and VM are designed to work together as a unified pipeline.
🌍 Roadmap
- Bytecode VM and compiler
- Basic firmware integration for WS2812B
- Visual simulator in PixelPilot Studio
- Support for SK9822 LEDs
- Experimental support for additional microcontrollers
- Web-based playground for scripting and preview
💬 Contributing
PixelPilot is open to contributions of all kinds: code, bug reports, suggestions, or documentation. While there’s no formal process yet, feel free to open issues or PRs to get started.