Modifiers¶
Every modifier, one block each: its preview, what it does, and what each control means ā together. A modifier sits between an effect and the output: it reshapes where pixels land (or masks them) without changing the effect's drawing. Modifiers compose ā a Layer folds its whole modifier stack each rebuild; a dynamic modifier (one that overrides modifyLive) also runs a per-frame pass. See ModifierBase for the static-vs-dynamic split. Each block's emoji are its tags() (see the tag emoji legend); Kind is static (baked into the mapping at rebuild) or dynamic (per-frame remap). Modifiers are grouped into sections, and each block carries that modifier's preview, behaviour, and control descriptions together. (For how this page maps to the source/asset folders, see the folder-structure decision.)
MoonLight modifiers¶
| Name | Preview | Controls | Links |
|---|---|---|---|
| Block š« Ā· static Expands a 1D effect into concentric square rings (Chebyshev distance from the centre): the effect's linear position becomes the ring index, so a gradient effect draws nested squares. |
ā | ā | Tests Technical MoonLight Ā· via MoonLight |
| Checkerboard š« Ā· static Masks the layer in a checkerboard: "off" squares are dropped, "on" squares pass through unchanged. |
![]() |
size ā checker square edge in lights (ā„1).invert ā flip which squares pass through vs are masked. |
Tests Technical MoonLight Ā· by WildCats08 / @Brandon502 Ā· via MoonLight |
| Circle š« Ā· static Expands a 1D effect into concentric circular rings (Euclidean distance from the centre): the effect's linear position becomes the radius, so a gradient effect draws nested circles. The circular counterpart to Block. |
ā | ā | Tests Technical MoonLight Ā· via MoonLight |
| Mirror š« Ā· static Folds the far half of the box back onto the near half per axis, mirroring the image across the box centre (top-left quadrant reflected into the others in 2D, near octant into all eight in 3D). |
ā | mirrorX / mirrorY / mirrorZ ā mirror across the centre on that axis (each default on; enabling an axis the layout doesn't use is a no-op). |
Tests Technical MoonLight Ā· via MoonLight |
| Multiply š« Ā· static Tiles the logical image across the box multiply times per axis, optionally mirroring alternate tiles (a pure mirror is multiply = 2, mirror = true). |
![]() |
multiplyX / multiplyY / multiplyZ ā tile count per axis (1ā64; 1 = no tiling).mirrorX / mirrorY / mirrorZ ā reflect alternate tiles on that axis (with a count of 2, folds the axis in half ā the kaleidoscope mirror). |
Tests Technical MoonLight Ā· via MoonLight |
| Pinwheel š« Ā· static Remaps the grid into radial petals around the centre ā the angle to each pixel picks its petal, with an optional swirl (angle sheared by radius), symmetry, and z-twist. Turns a linear or 2D effect into a rotating flower/spokes pattern. |
ā | petals ā number of petals radiating from the centre.swirl ā shear the angle by radius (ā127..127; a spiral; negative reverses).reverse ā reverse the petal order.symmetry ā fold the petals into a factor-of-360 symmetry.zTwist ā twist the petals along z (3D). |
Tests Technical MoonLight Ā· via MoonLight |
| RippleXZ š« Ā· static Collapses an axis to a single plane so a higher-dimensional effect ripples along the remaining axes ā used to drive a 1Dā2D/3D ripple. |
ā | shrink ā collapse the selected axis (on = collapse).towardsX / towardsZ ā which axis collapses to a single line. |
Tests Technical MoonLight Ā· by @Troy (WLEDMM Art-Net) Ā· via MoonLight |
| Transpose š« Ā· static Swaps a pair of box axes (and every coordinate through them), then optionally inverts each axis ā rotate/flip the image without redrawing the effect. |
ā | XY / XZ / YZ ā swap that pair of axes.inverse X / inverse Y / inverse Z ā flip that axis after the swap. |
Tests Technical MoonLight Ā· via MoonLight |
projectMM-native modifiers¶
| Name | Preview | Controls | Links |
|---|---|---|---|
| RandomMap Ā· dynamic Remaps every light to another via a true 1:1 permutation, reshuffling to a fresh permutation on a bpm timer ā the arrangement scrambles each beat, the content is untouched. |
ā | bpm ā reshuffles per minute (0ā60; 6 ā a fresh permutation every 10 s; 0 = frozen). |
Tests Technical MoonLight Ā· via MoonLight |
| Region Ā· static Carves the layer to a sub-rectangle given as percentages of the physical extent (so it survives a resize); outside the region is dark. |
ā | startX / startY / startZ and endX / endY / endZ ā the sub-rectangle bounds as percentages of each axis's physical extent (0 = start of axis, 100 = end), so the region survives a resize; values may go negative or past 100 to push the window off-screen. |
Tests Technical MoonLight Ā· via MoonLight |
| Rotate Ā· dynamic Rotates the 2D image around its centre, turning continuously over time (the codebase's transform-matrix reference). |
ā | speed ā rotation speed (1ā255; turns faster as it rises). |
Tests Technical MoonLight Ā· by WildCats08 / @Brandon502 Ā· via MoonLight |

