From ef272b7e467a747270968a129ef80f7369d20bde Mon Sep 17 00:00:00 2001 From: Juergen Stuber Date: Sun, 16 Apr 2023 21:18:55 +0200 Subject: [PATCH] Add documentation in README and some metadata --- Cargo.toml | 4 ++++ README.md | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index ccc1784..850c299 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,10 @@ name = "pixelfoo-viewer" version = "0.1.0" authors = ["Juergen Stuber "] description = "Viewer for pixelfoo frame streams." +homepage = "https://codeberg.org/poc/pixelfoo-viewer.git" +repository = "https://codeberg.org/poc/pixelfoo-viewer.git" +keywords = ["led", "led-matrix", "neopixel", "smart-leds", "cli", "graphics", "2d"] +categories = ["graphics"] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/README.md b/README.md index 36c4725..b3ac94f 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,40 @@ > A viewer for pixelfoo frame streams. +## Background + +At Chaospott in Essen we have a large 80x40 array of Neopixel LEDs +in the ceiling our main room. +A server can run various apps to generate animations on the LED array. + +## Apps + +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. + +## Viewer + +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. + ## License Licensed under either of