timvisee
pixelpwnr
Rust

:fireworks: Insanely fast pixelflut client for images and animations written in Rust.

Last updated Jun 21, 2026
79
Stars
12
Forks
4
Issues
0
Stars/day
Attention Score
28
Language breakdown
Rust 100.0%
โ–ธ Files click to expand
README

pixelpwnr

A quick [pixelflut][pixelflut] ([video][pixelflut-video]) client in [Rust][rust] for use at [34C3][34C3], that pwns whole pixelflut panels.

For a high performance pixelflut client and server implementations, see:

  • [pixelpwnr-server][pixelpwnr-server]: server
  • [pixelpwnr-cast][pixelpwnr-cast]: cast your screen to a pixelflut server

Features

  • Many concurrent drawing pipes, fast multithreading
  • Animated images, with GIFs, webp's or multiple frame images
  • Control over render sizes and offset
  • Automatic image sizing and formatting
  • Blazingly fast binary protocol (PB with --binary)
  • Faster than most other clients :-)
  • Linux, Windows and macOS

Usage

Pixelflut a simple image:

# Flut a simple image. 

- To host 127.0.0.1 on port 8080

- With the image: image.png

- With 4 painting threads

- With the size of the screen (default)

pixelpwnr 127.0.0.1:8080 -i image.png -c 4

Other CLI syntax is also supported

pixelpwnr "127.0.0.1:8080" --image="image.png" -c=4

Pixelflut an animated image:

# Flut an animated image, with multiple frames. 

- To host 127.0.0.1 on port 8080

- With the images: *.png

- With 5 frames per second

- With 4 painting threads

- With a size of (400, 400)

- With an offset of (100, 100)

pixelpwnr 127.0.0.1:8080 -i *.png --fps 5 -c 4 -w 400 -h 400 -x 100 -y 100

Use the --help flag, or see the help section for all available options.

Installation

For installation, Git and Rust cargo are required. Install the latest version of Rust with [rustup][rustup].

Then, clone and install pixelpwnr with:

# Clone the project
git clone https://github.com/timvisee/pixelpwnr.git
cd pixelpwnr

Install pixelpwnr

cargo install -f

Start using pixelpwnr

pixelpwnr --help

or run it directly from Cargo

cargo run --release -- --help

Or just build it and invoke the binary directly (Linux/macOS):

# Clone the project
git clone https://github.com/timvisee/pixelpwnr.git
cd pixelpwnr

Build the project (release version)

cargo build --release

Start using pixelpwnr

./target/release/pixelpwnr --help

Performance & speed optimization

There are many things that affect how quickly pixels can be painted on a pixelflut server. Some of them are:

  • Size of the image that is drawn.
  • Amount of connections used to push pixels.
  • Performance of the machine pixelpwnr is running on.
  • Network interface performance of the client.
  • Network interface performance of the server.
  • Performance of the pixelflut server.
Things that improve painting performance:
  • Use a wired connection.
  • Use a LAN connection, closely linked to the pixelflut server. The lower
latency the better, due to the connection being over TCP.
  • Use as many threads (-c flag) as the server, your connection and your
machine allows.
  • Paint a smaller image (-w, -h flags).
  • Paint in an area on the screen, where the least other things are pained.
  • Use multiple machines (servers) with multiple pixelpwnr instances to push
pixels to the screen.

Help

$ pixelpwnr --help

Insanely fast pixelflut client for images and animations

Usage: pixelpwnr [OPTIONS] --image <PATH>... <HOST>

Arguments: <HOST> The host to pwn "host:port"

Options: --help Show this help -i, --image <PATH>... Image path(s) -w, --width <PIXELS> Draw width [default: screen width] -h, --height <PIXELS> Draw height [default: screen height] -x <PIXELS> Draw X offset [default: 0] -y <PIXELS> Draw Y offset [default: 0] -c, --count <COUNT> Number of concurrent threads [default: number of CPUs] -r, --fps <RATE> Frames per second with multiple images [default: 1] -b, --binary Use binary mode to set pixels (PB protocol extension) [default: off] -f, --flush <ENABLED> Flush socket after each pixel [default: true] [default: true] [possible values: true, false] -V, --version Print version

Relevant projects

  • [pixelpwnr-server][pixelpwnr-server]: server
  • [pixelpwnr-cast][pixelpwnr-cast]: cast your screen to a pixelflut server

License

This project is released under the GNU GPL-3.0 license. Check out the LICENSE file for more information.

[34C3]: https://events.ccc.de/congress/2017/wiki/index.php/Main_Page [pixelflut]: https://cccgoe.de/wiki/Pixelflut [pixelflut-video]: https://vimeo.com/92827556/ [pixelpwnr-cast]: https://github.com/timvisee/pixelpwnr-cast [pixelpwnr-server]: https://github.com/timvisee/pixelpwnr-server [rust]: https://www.rust-lang.org/ [rustup]: https://rustup.rs/

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท timvisee/pixelpwnr ยท Updated daily from GitHub