Custom effects for WLED LED matrices, from a rotating wireframe cube to retro pipes and neon tunnels.
I’ve been making custom effects for LED matrix panels using WLED. This project packages them as a usermod: an extension that adds extra effects to WLED’s effects list, with controls for adjusting how they look and move.
The collection currently includes four effects, ranging from simple 3D geometry to animations inspired by classic screensavers and visualisers.
View source on GitHub
The effects
Wireframe Cube
A rotating wireframe cube, with controls for rotation speed, size and perspective. You can change the wireframe colour using WLED’s effect colour control. A small bit of 3D geometry, drawn onto a grid of LEDs.
Pipes
Inspired by the Windows Pipes screensaver, this effect sends pipes growing across the panel, making random right-angle turns along the way. Their oldest segments gradually dim and disappear as new ones grow, keeping the animation moving without filling the whole display.
It’s a 2D take on the original, with controls for speed, pipe width and the number of pipes growing at once, plus palette and background colours.
Neon Tunnel
A continuous flight through rotating octagonal rings. The rings connect to form a tunnel, with a moving vanishing point and a breathing motion that changes its radius. Speed, pulse and horizon drift control the movement, while WLED’s palettes provide the colours. It runs without audio input.
Warp Tunnel
A flight through a field of particle streaks. Particles accelerate outwards from a moving vanishing point to create the feeling of travelling through space. The controls adjust flight speed, streak length and horizon drift, with palette and background colour options too. Like Neon Tunnel, it doesn’t need an audio source.
Working with WLED
The effects are written in C++, with each effect in its own source file and shared line-drawing code. A single usermod registers them all with WLED, so the collection can grow without putting every animation in one file.
The project is based on the WLED usermod example. It was built for WLED 16.x, and I’ve only tested it on a single HUB75 64×64 panel so far. Other panels and configurations are still untested.
You can find the source and a breakdown of each effect’s controls in the GitHub repository.