The browser viewer above is a pseudorandom-driven preview. Below: the patterns the production engine cycles through on the chandelier, the palettes they draw from, the glitch mechanics that respond to live QRNG state, the aesthetic profiles that tune the rotation, and the apparatus the system supports.
Pattern lineup
The production engine ships 17 user-facing patterns. Each frame, the engine picks the next pattern via a chi-square uniformity statistic on the RNG buffer; the active pattern then emits HSV per pixel, which is wrapped, saturation-scaled by an interest score, and converted to RGB. Listed in selection order:
Moving Lemon
A slow, continuous rainbow wave that scrolls diagonally across the grid. Sine and cosine drive the hue field directly, so every color bleeds into the next with no visible seam and no stepped banding. On a 9x9 you see about two full color cycles at any moment, drifting like a prism being dragged across the surface.
Glitch progression: at 0.0 the rainbow flows cleanly with at most a faint shimmer; mid-range introduces visible eddies and whorls in the color field; by 1.0 the smooth prism is gone and the gradient reads as rainbow-tinted static.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Shimmering Stripes
Undulating curtains of color that ripple horizontally, layered on top of each other like aurora bands swaying in slow drift. Three or four overlapping color curtains move at slightly different phases. On a wide 8x24 chandelier the wave shapes read as peaks and troughs rolling across the surface; on a 9x9 it reads more as vertical color bands with internal motion.
Glitch progression: from 0.0 through about 0.6 the waves stay calm and attractive, just shifting from slow wide rolls to tighter ripples; mid-to-high values pack the wave crests close enough to look busy; by 1.0 the curtain metaphor collapses into high-frequency interference that approaches flicker.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Chaos
A pattern with a split personality. At rest it renders a recognizable heart shape on the grid, breathing softly through subtle color shifts. As glitch rises the heart degrades pixel by pixel into pure noise -- a direct visual stand-in for the project's coherence-versus-entropy thesis.
Glitch progression: 0.0 to 0.2 shows a clean, immediately-recognizable heart with breathing color; mid-range produces a degrading heart with rough edges and random pixels appearing within the boundary; from 0.5 to 1.0 the template is ignored entirely and the display reads as television static with a color palette applied.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Snake
A fully autonomous game of Snake driven by a BFS pathfinding AI. A hot-pink border frames a 7x7 playable area, a green snake whose segments fade from bright head to dark tail navigates toward a single red food pixel, then resets when it dies. The snake moves one cell every 15 frames, slow enough to follow but fast enough to read as a real game.
Glitch progression: at 0.0 the border is solid, the head-to-tail gradient is clean, and the AI's intent is easy to read; mid-range introduces border flicker, multicolored snake segments, and brief disappearances; near 1.0 the border is mostly gone and the snake is multicolored and intermittently invisible, so the BFS is still running but the visual has decoupled from the game state.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Vertical Stripes
Distinct one-to-two-pixel-wide columns of color scrolling horizontally across the grid. Unlike Moving Lemon, the bands have hard edges -- each column carries a uniform color and neighboring columns differ clearly. The visual rhythm is steady: columns appear on one edge, march across, leave on the other.
Glitch progression: 0.0 to 0.3 keeps the columns straight and crisp; mid-range introduces wobble and wave, with pixels occasionally jumping into neighboring columns; near 1.0 the vertical structure largely disintegrates into colored noise with faint vertical tendencies.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Horizontal Stripes
The rotated counterpart to Vertical Stripes -- one-to-two-pixel-tall horizontal bands scrolling vertically through the grid. Reads as geological strata or compressed sunset bars sliding past a window, with four or five layers visible at once.
Glitch progression: at 0.0 the bands are perfectly horizontal with sharp boundaries; mid-range warps them into rippling, water-reflection lines with pixels dripping into adjacent rows; near 1.0 the horizontal banding collapses into scattered noise with faint horizontal streaking.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Tetris
A complete self-playing game of Tetris with standard rules, all seven tetrominoes, and a competent AI evaluator that weighs holes, height, bumpiness, and wells. Pieces drop at roughly 14 frames per gravity tick, lines clear with a brief flash, and the AI's hole-averse scoring keeps the stack flat and tidy. The visual rhythm is vertical accumulation punctuated by horizontal clearing.
Glitch progression: 0.0 to 0.4 plays cleanly with standard piece colors and smooth drops; mid-range introduces color shifts and brief piece invisibility, like a bad display cable; near 1.0 piece colors randomize frame-to-frame and the falling piece is invisible more often than visible, so the game runs underneath but reads as colored noise that occasionally resolves into recognizable states.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Wave
A two-center interference field, biased for the chandelier's vertical geometry. The two drop centers drift through the grid emitting concentric ripples that reinforce where they meet and cancel toward black where they oppose. The Y axis is weighted 1.5x heavier than X and an extra downward traveling component is layered on, so the dominant sensation on the 8x24 tube is of waves rolling downward -- rain hitting water above the viewer.
Glitch progression: 0.0 to 0.3 holds clean interference with smooth center motion; mid-range jitters the drop locations vertically and pops a localized noise zone in and out of the field; by 1.0 both centers swing erratically and the clean ripple structure is largely lost to noise inside the glitch zone while the rest of the field shimmers.
Allowed palettes: pink_only
Wave (ch192)
The chandelier-tuned, tighter sibling of Wave. Same two-center interference architecture but isotropic -- circles instead of vertical ovals, no axis preferred -- and roughly six times faster, so the ripples carry energy rather than drift. The broader palette pool means a single wavefront can sweep through a wide hue range as it travels.
Glitch progression: noise is clamped to WAVE_CH192_NOISE_UL (0.05) and injected continuously rather than through a glitch zone, so 0.0 through about 0.4 is textbook clean, mid-range adds a faint bounded jitter to the centers, and even at 1.0 the interference stays whole with only the meeting points of the ripples drifting more abruptly.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, jewel_tones, jewel_tones_dark
Digital Rain
The Matrix-style falling-column pattern, adapted for an LED grid. Each column carries its own phase, so drops in different columns fall out of sync. Inside a column, sharpened sine pulses produce tight bright peaks with soft trailing tails. Hue is clamped near green and saturation stays high -- vertical streams of green light at independent paces.
Glitch progression: at 0.0 the rain is orderly, with many slow drops per column and clean spacing; mid-range speeds the fall, widens the gaps, and adds occasional flicker pixels and hue drift toward the edges of the green band; by 1.0 drops race down with wide gaps, flicker reads as a separate noise layer, and hue is visibly off-green.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Digirain (ch192)
The chandelier-tuned, calm sibling of Digital Rain. Same per-column phase-offset architecture and trailing-pulse shape, but fall speed, drop spacing, hue, and saturation are all locked constants -- the pattern reads as steady single-hue rain (red by default, blue/green/aqua depending on the palette draw). The only glitch-responsive element is a small flicker overlay.
Glitch progression: 0.0 to about 0.5 is pure rain with no flicker; from there up to 1.0 a small percentage of pixels start flickering with random brightness, dusted over the otherwise-unchanged motion. Flicker density is clamped by DIGIRAIN_CH192_NOISE_UL (0.05), so even at 1.0 only about 5% of pixels are ever flickering.
Allowed palettes: pink_only, blue_only, green_only, aqua_only
Cascade
A waterfall in glass. A downward-traveling sine wave runs in each column with per-column phase offsets so the streams flow at slightly different rates, the way real water does. A top-heavy brightness gradient gives the "source up high, dispersing below" feel, and hue clamps to the cyan-to-blue water band regardless of palette.
Glitch progression: 0.0 to 0.3 is a calm waterfall with slow downward streams and clearly out-of-phase columns; mid-range speeds the streams and blurs the wave structure with turbulence; by 1.0 the streams race down with significant chop, the clean wave shape is largely lost, but the downward direction and cyan-blue hue hold.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Column Pulse
The chandelier as a row of breathing columns. Each column carries a phase derived from its X position, so the pulse rolls across the array in a slow staggered wave, with a second internal wave traveling up each column at the same time. The base hue is violet, and saturation and brightness both breathe with the pulse, so peaks read fully saturated and troughs drop toward gray.
Glitch progression: 0.0 to 0.3 holds the synchronized breath rolling across the columns in the violet band; mid-range desynchronizes the columns and lets hue start to wander off purple in small flashes; by 1.0 each column breathes on its own schedule and hue jitters visibly off the base, so the "single organism" feel resolves into a row of independent breathers.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Northern Lights
Slow-drifting aurora curtains, built from several sinusoidal layers at different spatial frequencies and time rates. Hue is clamped to the cold green-cyan-blue-purple aurora band -- never warm. Speed is 0.12, the slowest pattern in the system, so on the vertical chandelier the curtains read as broad bands of color drifting across the tube with internal vertical streaks that swell and fade.
Glitch progression: 0.0 to 0.3 blends the four layers cleanly into smooth, drifting curtains; mid-range textures the surface with rippling noise so the curtains look "windy"; from about 0.6 upward a tear event begins knocking individual pixels dark inside the curtains, leaving holes and frayed edges while the cold aurora hue stays intact.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Meteor Shower
Sharper, hotter cousin of Digital Rain. Per-column phase offsets stagger when streams arrive; inside each column, cubed sine peaks produce pointy meteor cores trailed by a six-pixel falling fade. Hue stays in the orange meteor band, with the brightest cores desaturating toward white the way real meteor light overwhelms color perception.
Glitch progression: 0.0 to 0.3 gives a steady shower -- several meteors per column at a calm pace with clean trails; mid-range speeds the fall, widens the gaps, and starts painting random brightness bursts across the field; by 1.0 meteors race down with significant gaps and the orderly fall is partly drowned by burst overlay, though the warm hue holds.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Shimmer Cascade
A calm cyan flow with a random-rainbow sparkle layer on top. The base is a single sine wave drifting downward slowly -- more tidal swell than waterfall. Each frame, some fraction of pixels are selected for sparkle treatment and painted with random hue at full saturation, so they pop vividly against the blue field.
Glitch progression: at 0.0 about 2% of pixels sparkle at any moment, reading as faint glitter on still water; mid-range raises sparkle density and speeds the underlying flow, so the rainbow flickers become a constant presence; by 1.0 up to roughly 17% of pixels are sparkles at any frame, partly hiding the cyan base under independent, non-synchronized rainbow flicker.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark
Column Chase
A bright Gaussian pulse on each column, racing along its tube in a rolling staggered sequence. Each column lights with a sequential delay, so the chase rolls from one side to the other. Hue is a position-and-time formula that gives each column its own color and drifts the whole rainbow sideways over time -- the rainbow is built directly, so palette choice has no effect on output.
Glitch progression: 0.0 to 0.3 keeps all pulses traveling the same direction at moderate width, reading as one coherent visual event sweeping the columns; above about 0.2 scaled glitch each column independently picks +1 or -1 direction per frame; by 1.0 pulses race in random directions at high speed with very narrow widths, each column reading as an independent racing light.
Allowed palettes: aqua_to_purple, aqua_to_blue, aqua_to_red, frosty_forest, rainbow, gnu2, pink_only, blue_only, green_only, aqua_only, lava, jewel_tones, jewel_tones_dark