FW16 Pong Wars
FW16 Pong Wars is a Rust-based game for the Framework Laptop 16 LED Matrix Input Modules, inspired by the original Pong Wars by Koen van Gilst. Developed by community member boobcactus, it runs a competitive ball-bouncing game directly on the 9x34 LED matrix panels, supporting both single-module (9x34) and dual-module (18x34) display modes1.
The game pits two teams — orange and blue — against each other. Balls bounce off paddles and convert territory pixels to their team's color. The result is a continuously shifting visual pattern that doubles as a dynamic screensaver1.
Features
| Feature | Details |
|---|---|
| Language | Rust |
| Platform | Windows 10+ |
| Single mode | 9x34 (one LED matrix module) |
| Dual mode | 18x34 (two modules side-by-side) |
| Max balls per team | 20 |
| Max FPS | 64 |
| System tray | Pause/resume, reset, settings, exit |
| Installer | NSIS-based installer or portable executable |
| License | GPL-3.0 |
Game Parameters
| Flag | Description | Default |
|---|---|---|
-d, --dualmode | Drive two modules as one 18x34 display | off |
-b, --balls [1-20] | Balls per team | 2 |
-s, --speed <1-64> | Target FPS | 32 |
-B, --brightness <0-100> | Brightness percent | 40 |
--settings <path> | Path to TOML settings file | — |
--debug | Extra timing output and debug console | off |
Installation
Portable Executable
Download fw16-pongwars.exe from the latest releases on GitHub. Run from any location1.
Installer
Download the NSIS installer (fw16-pongwars_x.x.x_x64-setup) from the latest releases. The portable executable is saved to %APPDATA%\FW16PongWars1.
Build from Source
cargo build --release
The executable is written to target\release\fw16-pongwars.exe1.
Configuration
When run with the --settings flag, a TOML file is used for persistent configuration. The file is auto-generated with defaults on first run. A settings dialog is available from the system tray1.
| Key | Type | Default | Description |
|---|---|---|---|
dual_mode | bool | false | Use both modules as one 18x34 display |
left_serial | string | "" | USB serial number of the left module (set by calibration) |
right_serial | string | "" | USB serial number of the right module (set by calibration) |
module | string | "right" | Which module to use in single-module mode |
balls | integer | 2 | Balls per team (1–20) |
speed | integer | 32 | Target FPS (1–64) |
brightness | integer | 40 | Brightness percent (0–100) |
debug | bool | false | Enable debug timing output |
start_with_windows | bool | true | Register a Windows startup entry |
System Tray
The application minimizes to the system tray with controls for pausing/resuming, resetting the game, opening settings (when running with a settings file), and exiting1.
Releases
| Version | Date | Notes |
|---|---|---|
| v1.0.0 | February 2026 | Initial release |
| v1.1.0 | March 3, 2026 | Latest release |
Related Projects
| Project | Description |
|---|---|
| vnglst/pong-wars | Original Pong Wars game that inspired this project |
| inputmodule-rs | Official Framework firmware + CLI + Python tools for LED Matrix2 |
| fw16-led-matrixd | Cross-platform Rust daemon with image rendering and pair mode |
| fw16-ledvu | PipeWire/CAVA audio visualizer for the LED matrix |
| led-matrix-manager | Qt GUI for LED matrix management |