Lab
Interactive experiments and technical explorations: things I'm building, testing, or just curious about.
GRID — a lamp you sculpt
GRID is a lamp: sixteen frosted cylinders in a 4×4 bed, each on its own lead screw with its own tunable-white LEDs. Hold a cylinder, in the app or straight in the 3D scene, and it rises. Hold it again quickly and it lowers. Each cylinder is one number: height, brightness and color temperature all come from it. Low cylinders glow like a 1800 K ember; the light only cools toward the slider's ceiling as they rise.
There are static set-points (Full, Night, Off, plus anything you sculpt and save) and four motion patterns: wave, ripple, fireplace, noise. The motors are simulated too, 28BYJ-48 steppers with trapezoidal ramps, so everything on screen moves at the speed the real lamp would.
Both views below run off the same state. Change something in the app and the lamp follows. Works the other way too.
16 PTS · Ø50MM COLUMNS · 60MM PITCH · TRAVEL 60/110MM · 1800–6500K
- TAP a pad and its cylinder steps 10 mm · HOLD and it travels until you release
- RE-HOLD quickly to reverse and lower
- FULL / NIGHT / OFF are set-points · sculpt something and SAVE it as P1–P3
- MOTION runs patterns (the grid becomes read-only) · TEMP sets the white-point ceiling · RANGE clamps travel
- DRAG to orbit · SCROLL to zoom · DOUBLE-CLICK returns to the hero cam
- TAP / HOLD a cylinder in the scene for the same steps and jogs as the app
- HERO / TOP / LOW camera presets · AUTO-ORBIT spins the scene slowly
- 60 / 110 MM switches the build-plan travel · stroke time updates live
Why the controls work this way
Jog, not slider. Hold means keep moving; release means stop. And the app draws where each cylinder actually is, not where you told it to go: anything still traveling gets a pulsing rim. I didn't want a screen showing a lamp that doesn't exist yet.
One number per cylinder. Height, brightness and color are locked together on purpose. Dim light is always warm; there's no way to build a low, cold scene, and I consider that a feature. Night mode caps the ceiling at 2700 K, and the cap eases in rather than snapping, the way firmware would fade it.
The motors set the rules. Range clamps travel for everything: set-points, patterns, your fingers. And the patterns run through the same motor model as manual holds, so a fireplace flicker can only ever move as fast as a lead screw turns.
The sim exists so the hardware decisions get made cheaply. Jog feel, 60 vs 110 mm of travel, the shape of the warm-to-cool ramp, whether the patterns still read at real motor speed: all decided here, before committing to parts.
Some questions only the build can answer. How loud are sixteen steppers in a quiet room? Does real frosted plastic scatter anything like the shader? How low can the LEDs dim before the ember falls apart?
▸ NEXT · BUILD PHOTOS LAND IN grid_photo AS THE HARDWARE COMES TOGETHER