Skip to content

Effects

Every effect, one block each: its preview, what it does, and what each control means — together. An effect writes per-pixel colour into its Layer's buffer each tick; modifiers reshape the result and a driver sends it out. Effects that name an index colour read the global palette (the palette control on Drivers) via colorFromPalette. Each block's emoji are its tags() (origin/creator/audio — see the tag emoji legend); Dim is its native axes (Layer extrudes a lower-dim effect onto a bigger grid). Effects are grouped into sections by origin, and each block carries that effect's preview, behaviour, and control descriptions together. (For how this page maps to the source/asset folders, see the folder-structure decision.)

Jump to: MoonLight · MoonModules · WLED · FastLED · projectMM-native

Migrating an effect — behaviour is the spec. A ported effect must reproduce the original's exact visual behaviour: end users have relied on these for years, so a port that looks different is a regression, not an improvement. Don't get creative with defaults, oscillator math, colour mapping, or geometry, and don't silently drop a parameter that is the mechanism (the PaintBrush straight-vs-curved-lines bug was a dropped partial-line length; Game of Life was wrong the first time by not porting the real algorithm). Study the source for the algorithm, defaults, and visual result; pin it with unit + scenario tests; then write our own implementation against EffectBase/our primitives — carry the behaviour forward, don't trace or copy the structure (see Industry standards, our own code). Credit the origin as prior art in the block below.

Some WLED-origin effects show a preview gif from WLED-Utils by scottrbailey (the canonical WLED effect gif set, cross-linked with credit); these show WLED's rendering. Effects with a local ../../assets/… gif show our own output.

MoonLight effects

Name Preview Controls Links
DistortionWaves 💫 · 2D
Two interfering sine waves beat against each other into a moiré colour field.
freq_x / freq_yhorizontal/vertical wave frequency (1–8).speedanimation rate (0 = frozen). Tests
Technical
WLED · by ldirko & blazoncek (WLED port) · gallery · via MoonLight
FixedRectangle 💫 · 3D
A solid colour filling a positioned box within the grid, with an optional alternating-white checker on the box's pixels.
red / green / blue / whitethe box colour.X position / Y position / Z positionthe box's origin corner.Rectangle width / Rectangle height / Rectangle depththe box extent on each axis.alternateWhitealternate box pixels to white in a checker pattern. Tests
Technical
MoonLight · by limpkin · via MoonLight
FreqSaws 💫📊 · 2D
Audio-reactive sawtooth waves: each column maps to a frequency band whose magnitude drives a per-band oscillator speed, so louder bands sweep their sawtooth up the column faster, with three phase methods.
fadebackground decay per frame.increaserhow fast a band's speed ramps up with its magnitude.decreaserhow fast a silent band's speed decays.bpmMaxceiling on a band's oscillation speed.invertflip alternate columns vertically.keepOnkeep oscillating even when a band is silent.methodphase model (Chaos, Chaos fix, BandPhases). Tests
Technical
MoonLight (audio) · by @TroyHacks · via MoonLight
LavaLamp 💫🦅 · 2D
Three slow blobs through a black→red→orange→yellow→white ramp — atmospheric lava look.
LavaLamp effect preview bpmblob drift speed.radiusblob influence radius.intensityfield gain into the black→red→orange→yellow→white ramp. Tests
Technical
projectMM original (metaball lava lamp)
Lines 💫 · —
Sweeps axis-aligned planes in sync; red/green/blue name the X/Y/Z axis — a preview-orientation test pattern.
Lines effect preview speedsweep BPM.axiswhich plane sweeps (all, x (red), y (green), z (blue)). Technical
MoonLight · via MoonLight
Metaballs 💫🦅 · 2D
count blobs orbit via integer sin/cos; metaball field per pixel — bright HSV merge/split.
Metaballs effect preview bpmorbit speed.radiusblob influence radius.countnumber of orbiting balls (1–8).hue_shiftrotate the palette index. Tests
Technical
projectMM original (metaballs)
Particles 💫🦅 · 2D
A swarm of drifting particles with persistent fading trails.
Particles effect preview countnumber of particles (1–255).speeddrift velocity.fadetrail persistence (higher = longer tails).hue_shiftrotate every particle's hue. Tests
Technical
MoonLight · by WildCats08 / @Brandon502 · via MoonLight
Plasma 💫🦅 · 2D/3D
Summed sine waves on orthogonal + diagonal axes; large rolling blobs (3D on volumetric layouts).
Plasma effect preview bpmroll speed.scale_x / scale_yblob size on each axis (larger = bigger, calmer blobs, lower spatial frequency).hue_shiftrotate the palette index. Tests
Technical
FastLED / WLED lineage (classic plasma)
Praxis 💫 · 2D
An algorithmic palette pattern driven by two beat oscillators (a macro and a micro mutator) whose frequencies and ranges reshape the hue field over time.
macroMutatorFreq / macroMutatorMin / macroMutatorMaxthe coarse mutator's beat frequency and its oscillation range.microMutatorFreq / microMutatorMin / microMutatorMaxthe fine mutator's beat frequency and range. Tests
Technical
MoonLight · by MONSOONO / @Flavourdynamics · via MoonLight
Rainbow 💫 · 2D
Diagonal animated rainbow — always-visible default/test effect.
Rainbow effect preview speedanimation BPM (one full hue cycle per beat). Tests
Technical
FastLED · Mark Kriegsman (rainbow) · via MoonLight
Random 💫 · 3D
Lights one random light per frame in a random palette colour over a fading background — a sparse, palette-tinted sparkle.
fadehow fast prior sparkles fade to black. Tests
Technical
MoonLight · via MoonLight
Rings 💫🦅 · 2D
Expanding concentric rings from random centres, additive overlap (calm defaults).
Rings effect preview countnumber of concentric rings (1–255).speedexpansion rate.thicknessring band width.hue_shiftrotate every ring's hue. Tests
Technical
projectMM original (concentric rings)
Ripples 💫🟦🦅 · 3D
Distance-from-centre sets a per-column wave phase; the lit surface ripples like water.
Ripples effect preview speedwave animation rate (0 = frozen, 99 = fast).intervalwavefront spacing (low = tight rings, high = wide). Tests
Technical
MoonLight · via MoonLight
RubiksCube 💫🧊 · 3D
A 3D Rubik's Cube projected onto the volume: it scrambles, then plays its solution back one turn at a time, the six faces in their standard colours.
turnsPerSecondhow fast the cube turns.cubeSizethe cube order (2×2 up to 8×8).randomTurningturn endlessly at random instead of scramble-then-solve.usePalettecolour the six faces from the system-wide palette instead of the classic Rubik's colours. Tests
Technical
MoonLight · by WildCats08 / @Brandon502 · via MoonLight
Solid 💫 · 3D
A flat fill with five colour modes: a plain RGB(W) colour, the active palette spread across the lights, an RMS-averaged single palette colour, or the palette banded along the grid's rows or columns.
red / green / blue / whitethe flat colour in RGB(W) mode (ignored in the palette modes).brightnessscales the flat and palette-spread output.colorModeRGB(W), Palette (spread across the lights), Palette avg (RMS mean of the palette), Palette rows, Palette cols (palette banded along that axis).minRGBin the band modes, drops palette entries whose every channel is below this floor.randomColorsin the band modes, deterministically shuffles the surviving palette entries. Tests
Technical
MoonLight · via MoonLight
SphereMove 💫🧊 · 3D
A hollow spherical shell that bounces through the 3D volume, its surface coloured from the palette, leaving no trail.
speedhow fast the sphere moves through the volume. Tests
Technical
MoonLight · via MoonLight
Spiral 💫🦅 · 2D
Rotating spiral from angle + distance (atan2_8/dist8).
Spiral effect preview bpmrotation speed.twisthow tightly the arm winds (hue gain per unit of distance).hue_shiftrotate the palette index. Tests
Technical
projectMM original (rotating spiral)
StarField 💫 · 2D
A perspective starfield: stars approach the viewer from a vanishing point, brightening as they near, then respawn at depth.
speedhow fast stars approach (frame throttle).numStarshow many stars are active.blurmotion-trail fade per frame.usePalettecolour the stars from the palette instead of white. Tests
Technical
MoonLight · by @Brandon502, inspired by Daniel Shiffman / Coding Train · via MoonLight
StarSky 💫 · 3D
Twinkling stars at random light positions, each fading in and out independently over a dark background.
StarSky effect preview speedfade rate per frame (how fast each star brightens/dims).star_fill_ratiohow many stars (as a fraction of the light count).usePalettecolour the stars from the active palette instead of white. Tests
Technical
MoonLight · by limpkin · via MoonLight
Text 💫 · 2D
Renders a multi-line string in a bitmap font. Static by default (laid out top-left, each newline dropping one font-height, clipped where it runs off the grid); turn on scroll to march the whole block leftwards as a wrapping marquee. Text colour comes from the active palette.
textthe string to show; a multi-line text area (each line renders on its own row).scrolloff (default) = static; on = horizontal marquee.fontglyph size (4x6 compact, 6x8 larger).speedmarquee speed (only used when scroll is on).huepalette index for the text colour. Tests
Technical
projectMM original, on MoonLight's Scrolling Text · via MoonLight

MoonModules effects

Name Preview Controls Links
GameOfLife 💫🌙 · 2D/3D
Conway's cellular automaton generalised to 2D/3D: selectable rulesets (+ custom B#/S#), cells that inherit a neighbour's palette colour on birth, optional green→red age colouring, a dead-cell blur fading toward the background colour, toroidal wrap, a 1.5 s settle pause, and 3-CRC stasis self-respawn (R-pentomino/glider) when the board goes static.
backgroundColorR / backgroundColorG / backgroundColorBthe colour dead cells fade toward (0–255 each).rulesetthe birth/survive rule (Conway, HighLife, InverseLife, Maze, Mazecentric, DrighLife, or Custom).customRuleStringa custom B#/S# rule, read only when ruleset = Custom.GameSpeed (FPS)generation rate (0–100, 100 = uncapped).startingLifeDensity% of cells alive at start (10–90).mutationChance% chance a newborn gets a random colour (0–100).wraptoroidal edges (cells wrap around).disablePauseskip the 1.5 s settle pause between boards.colorByAgegreen→red aging instead of inheriting a neighbour's palette colour.infiniterespawn on stasis (R-pentomino/glider) instead of resetting.blurdead-cell fade strength toward the background colour. Tests
Technical
MoonModules · by Ewoud Wijma (2022), mods by Brandon Butler / @Brandon502 · natureofcode · via MoonLight
GEQ 💫🐙📊 · 2D
A flat graphic equaliser: the 16 audio bands rise as vertical bars from the bottom, with optional smoothing between bars, per-bar palette colouring, and falling peak markers.
GEQ effect preview fadeOuthow fast bars fade each frame.ripplefalling-peak marker decay.colorBarscolour each bar from the palette by band instead of by row.smoothBarsblend neighbouring bands for smoother bar heights. Tests
Technical
WLED (audio) · by Andrew Tuline (WLED-SR) · via MoonLight
GEQ3D 💫🌙📊 · 2D
A 3D-perspective graphic equaliser: audio bands rise as bars with faked depth, their side/top lines drawn toward a "projector" vanishing point (sweeping left↔right) and shortened by depth. Bands left of the projector are painted right-to-left, bands right of it left-to-right; per-face darkening (side/top/front) and optional borders.
speedprojector sweep rate (1–10, higher = faster).frontFillbar front-face fill strength (0–255).horizonvanishing-point row the projector sits on.depthhow far the side/top perspective lines reach toward the projector.numBandsbands shown (2–16, fewer = wider bars).bordersoutline each bar. Tests
Technical
MoonModules (audio) · by @TroyHacks (GPLv3) · via MoonLight
Noise2D 💫🌙🐙 · 2D
A smoothly drifting value-noise field: each pixel samples 3D noise (grid position × scale, time on the Z axis) and indexes the palette directly, giving an organic plasma wash that morphs over time.
speedhow fast the field morphs (time-flow rate).scalenoise zoom (higher = finer, more detailed). Tests
Technical
WLED · via MoonLight
PaintBrush 💫🌙📊 · 3D
Audio-reactive brush strokes: lines whose 3D endpoints oscillate on the beat (beatsin8, audio-band timebase), each stroke shortened to a band-magnitude length so the moving tip sweeps a curve over the fading field.
oscillatorOffsetphase-spread between the oscillating endpoints (0–16).numLinesparallel animated strokes (2–255).fadeRatebackground decay per frame (0–128, higher = shorter strokes).minLengtha stroke draws only if longer than this, so quiet bands stay dark.color_chaosper-line random hue vs a per-band gradient.phase_chaosrandom per-frame phase jitter. Tests
Technical
MoonModules (audio) · by @TroyHacks (GPLv3) · via MoonLight
Tetrix 💫🌙 · 2D
Falling Tetris-style blocks: each column drops a brick that lands on the growing stack, fills the column, then clears and restarts.
speedfall speed (0 = randomised per brick).widthbrick height (0 = randomised).oneColorone advancing palette colour for all bricks instead of random per-brick colours. Tests
Technical
WLED · by Andrew Tuline (WLED-SR) · via MoonLight

WLED effects

Name Preview Controls Links
Blurz 🐙📊 · 2D
Audio-reactive blurred dots: one frequency band per frame lights a dot whose position maps to that band (or to the major-peak frequency), then the whole frame is blurred for soft trails.
Blurz effect preview fadeRatebackground decay per frame.blurblur strength applied each frame.freqMapplace the dot by the major-peak frequency instead of scanning bands.geqScannerscan the dot across the strip in a GEQ-like sweep. Tests
Technical
WLED (audio) · by Andrew Tuline (WLED-SR), enhancements by @softhack007 · via MoonLight
BouncingBalls 🐙 · 2D
A row of balls per column bounce under gravity, each losing energy on impact and relaunching when it stops, palette-coloured by ball index over a fading background.
BouncingBalls effect preview gravgravity strength (higher = faster fall, snappier bounce).numBallsballs per column (1–16). Tests
Technical
WLED · by Andrew Tuline (WLED-SR) · via MoonLight
FreqMatrix 🐙📊 · 1D
A 1D scrolling frequency display: each frame shifts the strip and injects a new pixel at one end whose hue comes from the dominant frequency and whose brightness from the volume.
FreqMatrix effect preview speedscroll rate.fxsound-effect intensity (scales the injected brightness).lowBin / highBinthe frequency window mapped across the hue range.sensitivityinput gain (10–100).audioSpeedlet the volume modulate the scroll speed. Tests
Technical
WLED (audio) · by Andrew Tuline (WLED-SR) · via MoonLight
Lissajous 🐙 · 2D
A Lissajous curve traced across the grid from two phase-shifted sin8/cos8 sweeps, palette-coloured along its length, with a fading trail.
Lissajous effect preview xFrequencythe x-axis sweep frequency (sets the curve's lobe count).fadeRatetrail fade per frame.speedhow fast the curve's phase advances. Tests
Technical
WLED · by Andrew Tuline (WLED-SR) · via MoonLight
NoiseMeter 🐙📊 · 3D
An audio VU meter rendered as a noise bar: the volume sets how many rows light from the bottom, each row coloured by drifting Perlin noise, filling the full width and depth.
NoiseMeter effect preview fadeRatetrail decay per frame (200–254).widthhow strongly the volume drives the bar height. Tests
Technical
WLED (audio) · by Andrew Tuline (WLED-SR) · via MoonLight
Wave 🌊 · 2D
An oscilloscope waveform scrolls across the grid with a fading trail; six selectable shapes.
bpmtravel speed (phase advance per minute).fadetrail fade per frame (0 = instant clear, 255 = long tail).typewaveform shape (Sawtooth, Triangle, Sine, Square, Sin3, Noise). Tests
Technical
MoonLight · by Ewoud Wijma · via MoonLight

FastLED effects

Name Preview Controls Links
Fire ⚡️🦅 · 2D
Fire2012-style heat field — sparks at the base rise and cool through the active palette (heat = palette index, cold at the low end, hottest at the high end); spark count scales with width. The flame colour comes from the active palette. For the classic fire look pick the Lava palette (black→red→orange→yellow→white — the recommended default); any palette works, so an Ocean or Forest palette turns the flame blue or green.
Fire effect preview coolinghow fast heat dissipates as it rises (higher = shorter flames).sparkingchance of a new spark at the base each frame (higher = livelier fire). Tests
Technical
FastLED / MoonLight · Mark Kriegsman's Fire2012; MoonLight adapts MatrixFireFast (toggledbits)
Noise ⚡️ · 2D/3D
Smooth animated value noise; true 3D field on volumetric layouts.
Noise effect preview scalespatial frequency of the field (1–32, higher = finer detail).bpmscroll speed (8 noise cells per beat). Tests
Technical
FastLED · inoise field (Mark Kriegsman)

projectMM-native effects

Name Preview Controls Links
AudioSpectrum 📊
The 16 mic frequency bands spread across X, each column lit bottom-up by its magnitude.
colorModebar colouring: height (green base → red top, the VU look) or per-band (each column its own hue, the rainbow analyser look). Tests
Technical
projectMM original, on the WLED-SR GEQ / spectrum concept (Andrew Tuline) · via MoonLight
AudioVolume 🔊
A whole-grid VU meter: every light pulses with the mic level, colour indexing the palette by loudness.
brightnessoverall brightness ceiling for the VU pulse (1–255). Tests
Technical
projectMM original (VU meter)
DemoReel 🎬 · 3D
A demo reel: plays every other registered effect in turn, auto-advancing on a timer, so one Layer cycles the whole library hands-free — the showcase/test tool for everything. It hosts a single live effect at a time (created from the effect registry, rendered into this Layer) and swaps to the next when the interval elapses — new effects are picked up automatically. It can also pick a fresh palette each cycle and overlay the playing effect's name. The status line shows which effect is playing (e.g. playing: Plasma (3/20)). It never hosts itself, and it plays effects in sequence rather than compositing them (layering is the Layer stack's job).
intervalseconds each effect plays before advancing (1–120).shufflejump to a random next effect instead of registry order.randomPalettepick a random palette on each cycle (showcases the palette set); default on.showNameoverlay the playing effect's name in a small font; default on. Tests
Technical
FastLED · Mark Kriegsman's DemoReel100; projectMM reel
NetworkReceive 📡🌙
Receives lights-over-UDP (Art-Net, E1.31/sACN, DDP) and writes it into the layer — the receive side for Resolume/Madrix/xLights/LedFx. Wire contract: listens for Art-Net, E1.31 / sACN, and DDP simultaneously; universe_start + channels_per_universe map incoming universes onto the layer buffer. The end-to-end pair with NetworkSendDriver.
universe_startthe first incoming universe to map onto the layer (mirrors the sender).channels_per_universebytes each universe maps to (510 = whole RGB lights per universe, the xLights/Falcon convention; 512 for Madrix-style senders that pack pixels across universe boundaries). Tests
Technical
projectMM original (E1.31 / Art-Net receive)
Sine 🌀 · 3D
R/G/B each follow a sine along one axis at 120° phase offset — a glowing, scrolling colour box.
frequencyspatial frequency, waves across the box (1–20).amplitudepeak brightness (0–255, 255 = full).bpmscroll speed. Tests
Technical
MoonLight (Sinus, AI-generated) · via MoonLight