Layouts¶
Every layout, one block each: what it does and what each control means — together. A layout maps light indices to physical (x, y, z) positions — it defines the shape an effect draws onto and a driver sends out. The Layouts container holds one or more layout children and composes them into one coordinate space; a Layer renders over that combined space. (For how this page maps to the source/asset folders, see the folder-structure decision.)
MoonLight layouts¶
| Name | Preview | Controls | Links |
|---|---|---|---|
| Car Lights A pair of concentric-ring "headlight" clusters (nested rings of 1/8/12/16/24 LEDs) positioned to mimic a car's front lights — a fixed arrangement composed from Ring geometry. |
![]() |
scale — overall size scale (1–10). |
Technical Eric Marciniak (Discord) — custom car-lights fixture |
| Cube A 3D cube volume, width×height×depth, wired in a configurable axis order with optional per-axis serpentine — the 3D generalisation of Panel. |
— | width / height / depth — cube extent per axis (1–128).wiringOrder — the axis nesting order the strip follows.X++ / Y++ / Z++ — count up (vs down) along that axis.snakeX / snakeY / snakeZ — serpentine (alternate rows/columns reverse) on that axis. |
Technical MoonLight · via MoonLight |
| Human-Sized Cube A hollow walk-in cube built from five LED-curtain faces (front, back, top, left, right), each a width×height×depth curtain — for large/room-scale cube installations. |
— | width / height / depth — cube extent per axis (1–20). |
Technical MoonLight · via MoonLight |
| Panel A 2D matrix panel with full wiring control: choose the axis order, per-axis direction, and serpentine — the general matrix layout (Grid is the simple case). |
— | panelWidth / panelHeight — panel size in lights (1–512).wiringOrder — XY (rows) or YX (columns) nesting.X++ / Y++ — count up vs down along that axis.snake — serpentine wiring (alternate lines reverse). |
Technical MoonLight · via MoonLight |
| Panels Tiles an M×N grid of full matrix panels into one large display: an outer walk over the panel grid plus an inner walk over each panel's lights, both independently wired — for multi-panel video walls. |
— | horizontalPanels / verticalPanels — panel-grid size (1–32 each).wiringOrderP / X++P / Y++P / snakeP — the panel-to-panel wiring (order, direction, serpentine).panelWidth / panelHeight — each panel's size (1–512).wiringOrder / X++ / Y++ / snake — the per-panel light wiring. |
Technical MoonLight · via MoonLight |
| Ring A single ring of LEDs evenly spaced around a circle — nrOfLEDs points, starting at angleFirst, spanning rotation degrees. |
— | nrOfLEDs — LEDs around the ring (1–255).angleFirst — starting angle in degrees.rotation — arc spanned (360 = full circle).clockwise — direction of travel.scale — spacing/radius scale. |
Technical MoonLight · via MoonLight |
| Rings 241 The classic 241-LED concentric-ring disc: nested rings of 1, 8, 12, 16, 24, 32, 40, 48, 60 LEDs sharing a centre. |
— | scale — overall radius scale (1–10). |
Technical MoonLight · via MoonLight |
| Single Column A vertical line of LEDs at a fixed X — the 1D column primitive. |
— | starting Y — the column's start row.height — LEDs in the column (1–1000).X position — the column's x.reversed order — wire top-to-bottom instead of bottom-to-top. |
Technical MoonLight · via MoonLight |
| Single Row A horizontal line of LEDs at a fixed Y — the 1D row primitive. |
— | starting X — the row's start column.width — LEDs in the row (1–1000).Y position — the row's y.reversed order — wire right-to-left instead of left-to-right. |
Technical MoonLight · via MoonLight |
| Spiral A conical spiral: ledCount LEDs winding up a cone from bottomRadius to a point over height. |
— | ledCount — LEDs along the spiral (1–2048).bottomRadius — radius at the base.height — spiral height. |
Technical MoonLight · via MoonLight |
| Toronto Bar Gourds Maps a set of decorative "gourd" objects (a specific bar installation), each rendered at one of three granularities — one light per gourd, per side, or per LED. |
![]() |
granularity — One Gourd One Light, One Side One Light, or One LED One Light.nrOfLightsPerGourd — LEDs per gourd in the coarsest mode (1–128). |
Technical troyhacks — custom Toronto bar gourd installation |
| Tubes Parallel vertical tubes: nrOfTubes columns of ledsPerTube LEDs, spaced tubeDistance apart. |
— | nrOfTubes — number of tubes (1–64).ledsPerTube — LEDs per tube (1–255).tubeDistance — spacing between tubes.reversed — reverse the wiring order. |
Technical MoonLight · via MoonLight |
projectMM-native layouts¶
| Name | Preview | Controls | Links |
|---|---|---|---|
| Grid A dense 3D grid, row-major (x fastest, then y, then z); every position maps to a light. |
— | width / height / depth — grid extent on each axis in lights (1–512).serpentine — boustrophedon-wire alternate rows (every other row runs in reverse, matching a snaked strip). |
Tests Technical MoonLight · via MoonLight |
| GridBlacks A Grid with mid-strand dark columns (a spacer). Columns [blackStart, blackStart+blackCount) are held black in every row, for a sealed/continuous panel that must stay dark down a strip, or a slat wall. A dark column is still a physical wire position the driver clocks, so WS2812 data flows through the unlit LEDs to reach the lit columns beyond; the lit columns keep their true positions (the picture is holed, not squeezed), so an effect maps straight across the gap. Use plain Grid when you need no dark columns. |
— | width / height / depth — grid extent on each axis in lights (1–512).serpentine — boustrophedon-wire alternate rows.blackCount — number of dark columns; 0 (the default) means no gap, so it renders exactly like a Grid.blackStart — first dark column (shown only once blackCount is set). |
Tests Technical projectMM |
| Sphere Lights on the surface of a hollow sphere — a one-light-thick shell inside a (2·radius+1)³ box, no interior lights. |
— | radius — surface radius in light-units (1–64); the shell is every cell whose distance from the centre rounds to radius. |
Tests Technical MoonLight · via MoonLight |
| Wheel A bicycle-wheel: spokes straight rows radiate from a centre hub, each carrying ledsPerSpoke LEDs spaced one unit apart outward. The Layouts container itself takes no controls — see its page for coordinate iteration, reordering, and rebuild propagation. |
— | spokes — number of spokes radiating from the hub (2–64).ledsPerSpoke — LEDs along each spoke, spaced one unit apart from the centre outward. |
Tests Technical MoonLight · via MoonLight |

