An open-source suite for creating, simulating, and deploying custom LED effects with a lightweight VM and integrated tools
Find a file
2025-08-05 19:02:06 +02:00
assets Add assets 2025-07-30 20:36:42 +02:00
compiler Add reading of a Variable 2025-08-05 19:02:06 +02:00
example_effects Rename folder 2025-07-30 20:15:52 +02:00
firmware All Readmes created as a first draft and starting point 2025-07-30 21:34:17 +02:00
studio All Readmes created as a first draft and starting point 2025-07-30 21:34:17 +02:00
vm Add Doc comment to pixel_vm_new 2025-07-31 00:57:11 +02:00
.clangd batman 2025-07-26 13:18:02 +02:00
.envrc batman 2025-07-26 13:18:02 +02:00
.gitignore batman 2025-07-26 13:18:02 +02:00
flake.lock batman 2025-07-26 13:18:02 +02:00
flake.nix Created Compiler project 2025-07-31 00:36:15 +02:00
README.md All Readmes created as a first draft and starting point 2025-07-30 21:34:17 +02:00

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 theres no formal process yet, feel free to open issues or PRs to get started.