14 customizable effects
Rainbow, Radial Wave, Aurora, Plasma, Fire, Comet, Twinkle, Scan, Ripple, Breathing, Gradient, Strobe, Color Cycle and Static, each a real WebGL shader, not a canned preset.
ARGB lighting · without the bloat
Meet LumaForge. One tiny app to drive all your ARGB.
No macro engine. No fan curves. Just a spatial canvas where you place every LED, an animated effect flows across your whole setup, and the color under each light gets pushed to the hardware. Asus Aura, your GPU, ARGB header fans, your QMK, and WLED, all on one screen.
Meet Canvas3D: a real three-dimensional scene of your setup, your glass tower, your desk, your peripherals, modeled in space. You place every device’s LEDs in 3D, move, tilt and scale each piece of gear until it matches your real battlestation, and an effect renders as one continuous gradient flowing across the whole room in depth. A wave doesn’t just slide left-to-right, it sweeps front-to-back, up your case and over the desk as a single volumetric picture. No other RGB tool offers this, SignalRGB gives you a flat 2D canvas, never a real 3D scene.
Most RGB software treats every device as a separate island with its own little effect. LumaForge flips that. You drop every LED onto a single 2D canvas exactly where it sits on your desk, an animated shader renders across the whole surface, and the color under each LED is sampled and pushed out. A wave doesn’t restart per device, it sweeps across your motherboard, fans, GPU and keyboard as one continuous picture.
LumaForge talks to your gear through OpenRGB for everything on the machine, and straight over the network for WLED. That means your Asus Aura motherboard, your GPU, the ARGB fans on the header and your QMK keyboard all sync to the same effect, alongside any WLED strips lighting the room behind your desk.
Every effect ships with color pickers and parameter sliders, speed, scale, brightness, direction, so the same shader becomes a hundred different looks.
Rainbow, Radial Wave, Aurora, Plasma, Fire, Comet, Twinkle, Scan, Ripple, Breathing, Gradient, Strobe, Color Cycle and Static, each a real WebGL shader, not a canned preset.
Every effect exposes color pickers and parameter sliders, speed, scale, brightness, direction. Tune the same shader into a calm breathing glow or a frantic strobe.
Add a WLED device by IP and LumaForge streams realtime color straight to it over UDP, DRGB for small strips, DNRGB for big ones. The strip behind your desk joins the same canvas.
Built with Tauri, a Rust backend with the system WebView. That’s a ~13 MB executable sipping ~40 MB of RAM, instead of the hundreds of megabytes a full RGB suite drags around.
On-machine devices are driven through OpenRGB in Direct mode, so Aura, the GPU, ARGB headers and QMK keyboards all take per-LED realtime color from the exact same canvas.
Arrange every LED on the canvas to match where it physically sits. Positions are normalized [0,1], so your layout maps to real space and effects travel in the right direction.
The pipeline is the whole trick. A WebGL effect renders to an offscreen 256² buffer, LumaForge reads it back once per frame, samples the color under each LED on the CPU, and ships one IPC call to the backend, which fans out to OpenRGB and WLED. Cost stays constant no matter how many LEDs you own.
A WebGL fragment shader draws the chosen effect to an offscreen 256² framebuffer at 60 fps.
One readPixels per frame, then a cheap CPU lookup at each LED’s normalized position grabs its color.
push_frame(colors, slices) crosses to the Rust backend once per frame, no per-device chatter.
The backend dispatches to OpenRGB over TCP and WLED over UDP, throttled to a bus-safe ~30 Hz while the canvas keeps running at 60.
Windows 10 / 11 · x64. Tiny Tauri build, code-signed, no accounts.