A simple viewer for pixelfoo apps
Go to file
2023-04-16 22:04:06 +02:00
src Add RGBW support 2023-04-16 20:00:02 +02:00
.gitignore Initial version 2023-04-10 22:51:47 +02:00
Cargo.lock (cargo-release) start next development iteration 0.1.2-alpha.0 2023-04-16 22:01:11 +02:00
Cargo.toml (cargo-release) start next development iteration 0.1.2-alpha.0 2023-04-16 22:01:11 +02:00
CHANGELOG.md Update README and CHANGELOG 2023-04-16 21:55:51 +02:00
LICENSE-APACHE Initial version 2023-04-10 22:51:47 +02:00
LICENSE-MIT Initial version 2023-04-10 22:51:47 +02:00
README.md Fix badge link to repository 2023-04-16 22:04:06 +02:00


codeberg Crate

A viewer for pixelfoo frame streams.


At Chaospott in Essen we have a large 80x40 array of Neopixel LEDs in the ceiling of our main room. A server can run various apps to generate animations on the LED array.


Apps can be written in any programming language, they are started as child processes. They get the width and height as the first and second command line parameter, plus currently one additional free-to-use third parameter.

Apps generate a stream of fixed format pixel data as their standard output. A pixel is either three bytes for red, green and blue (RGB), or four bytes with additionally white (RGBW). The number of pixels specified by the width make up a row, and the number of rows specified by the height make up a frame. Frames are sent consecutively, without any additional delimiters.

The app controls the speed by the timing of the frame data it sends.


The viewer runs such apps locally and displays the animation in a window. This helps with app development.

For example,

pixelfoo-viewer -w apps/backlight.py 80 40

runs the backlight.py app (assuming it exists) in RGBW mode with an 80x40 matrix.


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.