Skip to content

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.
Checkerboard modifier preview 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).
Multiply modifier preview 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