Library for creating and rendering 2D animations and patterns.
Clone or download


latest tag license

PixelMaestro is a graphics library for LED displays. It lets you create dynamic, colorful 2D animations and patterns on any size display. Originally designed for Arduinos, PixelMaestro can be used to drive any kind of LED on any device.


  • True (24-bit) color depth
  • Support for up to 256 independent, layered drawing surfaces
  • Over 10 unique, customizable animations with support for different orientations, speeds, and color schemes
  • Powerful raster graphics editing tools with support for still or animated bitmap images
  • Lightweight and flexible communications protocol for controlling devices over USB, Bluetooth, or other serial channel
  • Microcontroller and mini-PC friendly: Use with Arduino, Raspberry Pi, ESP32, and others. Runs in under 2KB of RAM and 30KB of ROM

Getting Started

Click here for a tutorial on using PixelMaestro, or read the documentation.

If you want to run PixelMaestro on an Arduino, you can do so via the Arduino IDE or PlatformIO. For detailed instructions, see the examples folder.

Companion App

PixelMaestro has a companion desktop application called PixelMaestro Studio. PixelMaestro Studio lets you build custom animations, save and share configurations, control devices over USB, and more. Click here to learn more about PixelMaestro Studio.

Running Tests

PixelMaestro uses the Catch framework to run tests. Compiling the test suite requires CMake 3.6.2 or higher.

  1. Navigate to the tests folder.
  2. Run cmake .
  3. Navigate to the bin folder and run PixelMaestro_Test.