A simple viewer for pixelfoo apps
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Juergen Stuber 964c8ae4ab Fix badge link to repository 1 month ago
src Add RGBW support 1 month ago
.gitignore Initial version 2 months ago
CHANGELOG.md Update README and CHANGELOG 1 month ago
Cargo.lock (cargo-release) start next development iteration 0.1.2-alpha.0 1 month ago
Cargo.toml (cargo-release) start next development iteration 0.1.2-alpha.0 1 month ago
LICENSE-APACHE Initial version 2 months ago
LICENSE-MIT Initial version 2 months ago
README.md Fix badge link to repository 1 month ago



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.