Skip to content

Latest commit

 

History

History
695 lines (393 loc) · 31.6 KB

File metadata and controls

695 lines (393 loc) · 31.6 KB

Effects

Every effect, one block each: its preview, what it does, and what each control means — together. An effect writes per-pixel color into its Layer's buffer each tick; modifiers reshape the result and a driver sends it out. Effects that name an index color 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, color 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

DistortionWaves 💫 · 2D

Two interfering sine waves beat against each other into a moiré color field.

  • freq_x / freq_y — horizontal/vertical wave frequency (1–8).
  • speed — animation rate (0 = frozen).

Origin: WLED · by ldirko & blazoncek (WLED port) · gallery · via MoonLight

Detail: technical

Tests

FixedRectangle 💫 · 3D

A solid color filling a positioned box within the grid, with an optional alternating-white checker on the box's pixels.

  • red / green / blue / white — the box color.
  • X position / Y position / Z position — the box's origin corner.
  • Rectangle width / Rectangle height / Rectangle depth — the box extent on each axis.
  • alternateWhite — alternate box pixels to white in a checker pattern.

Origin: MoonLight · by limpkin · via MoonLight

Detail: technical

Tests

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.

  • fade — background decay per frame.
  • increaser — how fast a band's speed ramps up with its magnitude.
  • decreaser — how fast a silent band's speed decays.
  • bpmMax — ceiling on a band's oscillation speed.
  • invert — flip alternate columns vertically.
  • keepOn — keep oscillating even when a band is silent.
  • method — phase model (Chaos, Chaos fix, BandPhases).

Origin: MoonLight (audio) · by @TroyHacks · via MoonLight

Detail: technical

Tests

LavaLamp 💫🦅 · 2D

LavaLamp effect preview

Three slow blobs through a black→red→orange→yellow→white ramp — atmospheric lava look.

  • bpm — blob drift speed.
  • radius — blob influence radius.
  • intensity — field gain into the black→red→orange→yellow→white ramp.

Origin: projectMM original (metaball lava lamp)

Detail: technical

Tests

Lines 💫 · —

Lines effect preview

Sweeps axis-aligned planes in sync; red/green/blue name the X/Y/Z axis — a preview-orientation test pattern.

  • speed — sweep BPM.
  • axis — which plane sweeps (all, x (red), y (green), z (blue)).

Origin: MoonLight · via MoonLight

Detail: technical

Metaballs 💫🦅 · 2D

Metaballs effect preview

count blobs orbit via integer sin/cos; metaball field per pixel — bright HSV merge/split.

  • bpm — orbit speed.
  • radius — blob influence radius.
  • count — number of orbiting balls (1–8).
  • hue_shift — rotate the palette index.

Origin: projectMM original (metaballs)

Detail: technical

Tests

Particles 💫🦅 · 2D

Particles effect preview

A swarm of drifting particles with persistent fading trails.

  • count — number of particles (1–255).
  • speed — drift velocity.
  • fade — trail persistence (higher = longer tails).
  • hue_shift — rotate every particle's hue.

Origin: MoonLight · by WildCats08 / @Brandon502 · via MoonLight

Detail: technical

Tests

Plasma 💫🦅 · 2D/3D

Plasma effect preview

Summed sine waves on orthogonal + diagonal axes; large rolling blobs (3D on volumetric layouts).

  • bpm — roll speed.
  • scale_x / scale_y — blob size on each axis (larger = bigger, calmer blobs, lower spatial frequency).
  • hue_shift — rotate the palette index.

Origin: FastLED / WLED lineage (classic plasma)

Detail: technical

Tests

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 / macroMutatorMax — the coarse mutator's beat frequency and its oscillation range.
  • microMutatorFreq / microMutatorMin / microMutatorMax — the fine mutator's beat frequency and range.

Origin: MoonLight · by MONSOONO / @Flavourdynamics · via MoonLight

Detail: technical

Tests

Rainbow 💫 · 2D

Rainbow effect preview

Diagonal animated rainbow — always-visible default/test effect.

  • speed — animation BPM (one full hue cycle per beat).

Origin: FastLED · Mark Kriegsman (rainbow) · via MoonLight

Detail: technical

Tests

Random 💫 · 3D

Lights one random light per frame in a random palette color over a fading background — a sparse, palette-tinted sparkle.

  • fade — how fast prior sparkles fade to black.

Origin: MoonLight · via MoonLight

Detail: technical

Tests

Rings 💫🦅 · 2D

Rings effect preview

Expanding concentric rings from random centres, additive overlap (calm defaults).

  • count — number of concentric rings (1–255).
  • speed — expansion rate.
  • thickness — ring band width.
  • hue_shift — rotate every ring's hue.

Origin: projectMM original (concentric rings)

Detail: technical

Tests

Ripples 💫🟦🦅 · 3D

Ripples effect preview

Distance-from-centre sets a per-column wave phase; the lit surface ripples like water.

  • speed — wave animation rate (0 = frozen, 99 = fast).
  • interval — wavefront spacing (low = tight rings, high = wide).

Origin: MoonLight · via MoonLight

Detail: technical

Tests

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 colors.

  • turnsPerSecond — how fast the cube turns.
  • cubeSize — the cube order (2×2 up to 8×8).
  • randomTurning — turn endlessly at random instead of scramble-then-solve.
  • usePalette — color the six faces from the system-wide palette instead of the classic Rubik's colors.

Origin: MoonLight · by WildCats08 / @Brandon502 · via MoonLight

Detail: technical

Tests

Solid 💫 · 3D

A flat fill with five color modes: a plain RGB(W) color, the active palette spread across the lights, an RMS-averaged single palette color, or the palette banded along the grid's rows or columns.

  • red / green / blue / white — the flat color in RGB(W) mode (ignored in the palette modes).
  • brightness — scales 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).
  • minRGB — in the band modes, drops palette entries whose every channel is below this floor.
  • randomColors — in the band modes, deterministically shuffles the surviving palette entries.

Origin: MoonLight · via MoonLight

Detail: technical

Tests

SphereMove 💫🧊 · 3D

A hollow spherical shell that bounces through the 3D volume, its surface colored from the palette, leaving no trail.

  • speed — how fast the sphere moves through the volume.

Origin: MoonLight · via MoonLight

Detail: technical

Tests

Spiral 💫🦅 · 2D

Spiral effect preview

Rotating spiral from angle + distance (atan2_8/dist8).

  • bpm — rotation speed.
  • twist — how tightly the arm winds (hue gain per unit of distance).
  • hue_shift — rotate the palette index.

Origin: projectMM original (rotating spiral)

Detail: technical

Tests

StarField 💫 · 2D

A perspective starfield: stars approach the viewer from a vanishing point, brightening as they near, then respawn at depth.

  • speed — how fast stars approach (frame throttle).
  • numStars — how many stars are active.
  • blur — motion-trail fade per frame.
  • usePalette — color the stars from the palette instead of white.

Origin: MoonLight · by @Brandon502, inspired by Daniel Shiffman / Coding Train · via MoonLight

Detail: technical

Tests

StarSky 💫 · 3D

StarSky effect preview

Twinkling stars at random light positions, each fading in and out independently over a dark background.

  • speed — fade rate per frame (how fast each star brightens/dims).
  • star_fill_ratio — how many stars (as a fraction of the light count).
  • usePalette — color the stars from the active palette instead of white.

Origin: MoonLight · by limpkin · via MoonLight

Detail: technical

Tests

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 color comes from the active palette.

  • text — the string to show; a multi-line text area (each line renders on its own row).
  • scroll — off (default) = static; on = horizontal marquee.
  • font — glyph size (4x6 compact, 6x8 larger).
  • speed — marquee speed (only used when scroll is on).
  • hue — palette index for the text color.

Origin: projectMM original, on MoonLight's Scrolling Text · via MoonLight

Detail: technical

Tests

MoonModules effects

GameOfLife 💫🌙 · 2D/3D

Conway's cellular automaton generalised to 2D/3D: selectable rulesets (+ custom B#/S#), cells that inherit a neighbour's palette color on birth, optional green→red age coloring, a dead-cell blur fading toward the background color, toroidal wrap, a 1.5 s settle pause, and 3-CRC stasis self-respawn (R-pentomino/glider) when the board goes static.

  • backgroundColorR / backgroundColorG / backgroundColorB — the color dead cells fade toward (0–255 each).
  • ruleset — the birth/survive rule (Conway, HighLife, InverseLife, Maze, Mazecentric, DrighLife, or Custom).
  • customRuleString — a 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 color (0–100).
  • wrap — toroidal edges (cells wrap around).
  • disablePause — skip the 1.5 s settle pause between boards.
  • colorByAge — green→red aging instead of inheriting a neighbour's palette color.
  • infinite — respawn on stasis (R-pentomino/glider) instead of resetting.
  • blur — dead-cell fade strength toward the background color.

Origin: MoonModules · by Ewoud Wijma (2022), mods by Brandon Butler / @Brandon502 · natureofcode · via MoonLight

Detail: technical

Tests

GEQ 💫🐙📊 · 2D

GEQ effect preview

A flat graphic equaliser: the 16 audio bands rise as vertical bars from the bottom, with optional smoothing between bars, per-bar palette coloring, and falling peak markers.

  • fadeOut — how fast bars fade each frame.
  • ripple — falling-peak marker decay.
  • colorBars — color each bar from the palette by band instead of by row.
  • smoothBars — blend neighbouring bands for smoother bar heights.

Origin: WLED (audio) · by Andrew Tuline (WLED-SR) · via MoonLight

Detail: technical

Tests

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.

  • speed — projector sweep rate (1–10, higher = faster).
  • frontFill — bar front-face fill strength (0–255).
  • horizon — vanishing-point row the projector sits on.
  • depth — how far the side/top perspective lines reach toward the projector.
  • numBands — bands shown (2–16, fewer = wider bars).
  • borders — outline each bar.

Origin: MoonModules (audio) · by @TroyHacks (GPLv3) · via MoonLight

Detail: technical

Tests

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.

  • speed — how fast the field morphs (time-flow rate).
  • scale — noise zoom (higher = finer, more detailed).

Origin: WLED · via MoonLight

Detail: technical

Tests

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.

  • oscillatorOffset — phase-spread between the oscillating endpoints (0–16).
  • numLines — parallel animated strokes (2–255).
  • fadeRate — background decay per frame (0–128, higher = shorter strokes).
  • minLength — a stroke draws only if longer than this, so quiet bands stay dark.
  • color_chaos — per-line random hue vs a per-band gradient.
  • phase_chaos — random per-frame phase jitter.

Origin: MoonModules (audio) · by @TroyHacks (GPLv3) · via MoonLight

Detail: technical

Tests

Tetrix 💫🌙 · 2D

Falling Tetris-style blocks: each column drops a brick that lands on the growing stack, fills the column, then clears and restarts.

  • speed — fall speed (0 = randomised per brick).
  • width — brick height (0 = randomised).
  • oneColor — one advancing palette color for all bricks instead of random per-brick colors.

Origin: WLED · by Andrew Tuline (WLED-SR) · via MoonLight

Detail: technical

Tests

WLED effects

Blurz 🐙📊 · 2D

Blurz effect preview

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.

  • fadeRate — background decay per frame.
  • blur — blur strength applied each frame.
  • freqMap — place the dot by the major-peak frequency instead of scanning bands.
  • geqScanner — scan the dot across the strip in a GEQ-like sweep.

Origin: WLED (audio) · by Andrew Tuline (WLED-SR), enhancements by @softhack007 · via MoonLight

Detail: technical

Tests

BouncingBalls 🐙 · 2D

BouncingBalls effect preview

A row of balls per column bounce under gravity, each losing energy on impact and relaunching when it stops, palette-colored by ball index over a fading background.

  • grav — gravity strength (higher = faster fall, snappier bounce).
  • numBalls — balls per column (1–16).

Origin: WLED · by Andrew Tuline (WLED-SR) · via MoonLight

Detail: technical

Tests

FreqMatrix 🐙📊 · 1D

FreqMatrix effect preview

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.

  • speed — scroll rate.
  • fx — sound-effect intensity (scales the injected brightness).
  • lowBin / highBin — the frequency window mapped across the hue range.
  • sensitivity — input gain (10–100).
  • audioSpeed — let the volume modulate the scroll speed.

Origin: WLED (audio) · by Andrew Tuline (WLED-SR) · via MoonLight

Detail: technical

Tests

Lissajous 🐙 · 2D

Lissajous effect preview

A Lissajous curve traced across the grid from two phase-shifted sin8/cos8 sweeps, palette-colored along its length, with a fading trail.

  • xFrequency — the x-axis sweep frequency (sets the curve's lobe count).
  • fadeRate — trail fade per frame.
  • speed — how fast the curve's phase advances.

Origin: WLED · by Andrew Tuline (WLED-SR) · via MoonLight

Detail: technical

Tests

NoiseMeter 🐙📊 · 3D

NoiseMeter effect preview

An audio VU meter rendered as a noise bar: the volume sets how many rows light from the bottom, each row colored by drifting Perlin noise, filling the full width and depth.

  • fadeRate — trail decay per frame (200–254).
  • width — how strongly the volume drives the bar height.

Origin: WLED (audio) · by Andrew Tuline (WLED-SR) · via MoonLight

Detail: technical

Tests

Wave 🌊 · 2D

An oscilloscope waveform scrolls across the grid with a fading trail; six selectable shapes.

  • bpm — travel speed (phase advance per minute).
  • fade — trail fade per frame (0 = instant clear, 255 = long tail).
  • type — waveform shape (Sawtooth, Triangle, Sine, Square, Sin3, Noise).

Origin: MoonLight · by Ewoud Wijma · via MoonLight

Detail: technical

Tests

FastLED effects

Fire ⚡️🦅 · 2D

Fire effect preview

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.

  • cooling — how fast heat dissipates as it rises (higher = shorter flames).
  • sparking — chance of a new spark at the base each frame (higher = livelier fire).

The flame color 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.

Origin: FastLED / MoonLight · Mark Kriegsman's Fire2012; MoonLight adapts MatrixFireFast (toggledbits)

Detail: technical

Tests

Noise ⚡️ · 2D/3D

Noise effect preview

Smooth animated value noise; true 3D field on volumetric layouts.

  • scale — spatial frequency of the field (1–32, higher = finer detail).
  • bpm — scroll speed (8 noise cells per beat).

Origin: FastLED · inoise field (Mark Kriegsman)

Detail: technical

Tests

projectMM-native effects

AudioSpectrum 📊

The 16 mic frequency bands spread across X, each column lit bottom-up by its magnitude.

  • colorMode — bar coloring: height (green base → red top, the VU look) or per-band (each column its own hue, the rainbow analyser look).

Origin: projectMM original, on the WLED-SR GEQ / spectrum concept (Andrew Tuline) · via MoonLight

Detail: technical

Tests

AudioVolume 🔊

A whole-grid VU meter: every light pulses with the mic level, color indexing the palette by loudness.

  • brightness — overall brightness ceiling for the VU pulse (1–255).

Origin: projectMM original (VU meter)

Detail: technical

Tests

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).

  • interval — seconds each effect plays before advancing (1–120).
  • shuffle — jump to a random next effect instead of registry order.
  • randomPalette — pick a random palette on each cycle (showcases the palette set); default on.
  • showName — overlay the playing effect's name in a small font; default on.

Origin: FastLED · Mark Kriegsman's DemoReel100; projectMM reel

Detail: technical

Tests

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.

  • universe_start — the first incoming universe to map onto the layer (mirrors the sender).
  • channels_per_universe — bytes 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).

Origin: projectMM original (E1.31 / Art-Net receive)

Detail: technical

Tests

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.

Sine 🌀 · 3D

R/G/B each follow a sine along one axis at 120° phase offset — a glowing, scrolling color box.

  • frequency — spatial frequency, waves across the box (1–20).
  • amplitude — peak brightness (0–255, 255 = full).
  • bpm — scroll speed.

Origin: MoonLight (Sinus, AI-generated) · via MoonLight

Detail: technical

Tests