A lamp, built for Lamp Show at Highland Collective.

Two finished lamps lit in pink and white, one in the foreground and one further back
I ended up building two.

How it was built

An acrylic tube with a 3D printed base and top. A single length of 2020 aluminum extrusion runs up the middle, and that is what actually holds the thing together: the top and the base bolt to it, and the tube just sits in a recess cut into each. Addressable LEDs sit down in the extrusion’s channels, and an almost problematic amount of marbles fills everything around them. Somewhere in the range of twelve hundred of them.

Fusion 360 model of the lamp, showing the tube, the central extrusion and the conical base
The extrusion is the only load bearing part in there.

So the light source is the structure. It radiates outward from the center of the column, through the marbles, to whoever is looking at it.

Fusion 360 detail of the base, drawn transparent, showing the platform and standoffs for the circuit board
The base, with somewhere for the electronics to live designed in from the start.

The conical base printing in white filament on a Creality bed
The base coming off an Ender 3 v2 in white PETG.

A green perfboard carrying a small microcontroller and a microSD module, mounted on a printed riser on the white base plate
The prototype electronics. A microcontroller, a microSD module and some perfboard, sitting on a printed riser.

A black custom PCB labeled marble soda and Colin Gimenez, with a microSD slot, a Seeed microcontroller, and JST connectors for NeoPixels, DotStars and Touch
The perfboard eventually became a real board. Rev. 1, with the microSD slot, the microcontroller and keyed connectors for everything it drives.

The marbles

The marbles are the whole trick. A bare LED strip is a line of colored dots. Push that light through twelve hundred glass spheres and it scatters into something with depth, which is a lot of physics happening for free.

A cardboard box filled with clear glass marbles, with a black and white dog leaning in to sniff them
Twelve hundred marbles, delivered. Rosco QC’d every one of them.

A render of clear marbles inside a tube, lit in a vertical gradient of red, blue, green and orange
A previs render, made before any of it existed, to find out whether the idea was worth building.

The simulation

What plays across it is a lava lamp simulation, and it is not running on the lamp.

Twelve hours of fluid, just shy of 2.6 million frames, which works out to sixty a second. It took about a month to simulate. The result went onto an SD card, and the lamp’s entire job at runtime is reading that file back.

Only the motion is baked in. Color is applied live during playback, so the palette stays a parameter instead of something committed to a month ago.

Simulating fluid in real time on a microcontroller this small is a losing fight. Simulating it once somewhere with a real processor, and leaving the lamp to read a file, is not. Twelve hours is also long enough that nobody is going to catch it repeating.

Lamp Show

Poster for Lamp Show at Highland Collective, showing a green banker's lamp on a red background
Highland Collective, 6401 Airport Blvd, Austin. December 8th, 2024.