Light Geometry: Building a Voronoi LED Uplight Decorative Lamp

by andrei.erdei in Circuits > LEDs

2863 Views, 52 Favorites, 0 Comments

Light Geometry: Building a Voronoi LED Uplight Decorative Lamp

main1.jpg
main2.jpg
main3.jpg

Hi everyone! I've always been fascinated by the intricate patterns of a Voronoi diagram. I decided to bring those geometric wonders to life with this unique LED uplight project. I'm combining the elegance of Voronoi cells with the vibrant versatility of WS2812 LEDs to create a stunning, customizable lamp.

Why Voronoi?

For me, Voronoi diagrams aren't just visually appealing; they offer a natural way to divide a space into organic-looking cells. This makes them perfect for a lighting project where I want a blend of structure and randomness. Each cell will house its own LED, allowing for endless possibilities in light shows and animations.

Note: While hundreds, if not thousands, of lamp projects incorporate Voronoi diagrams in their design, very few treat each cell individually. In fact, I've only come across one other example here.

My Project Goals

  • Ultra-slim Design: This uplight is all about sleekness. I'm aiming for a minimal profile that hugs the wall, casting a wash of color upwards.
  • WS2812 Magic: These individually addressable LEDs are my secret weapon. I'll control them with a Wemos D1 mini to create mesmerizing patterns, color gradients, and even interactive effects.
  • Customization: This project is a playground for creativity. I'll be able to design my own Voronoi layout, choose my favorite colors, and even program unique light sequences.

Let's Get This Shining!

Whether you're a coding whiz or a soldering newbie like me, this project is approachable for all skill levels. I'll walk you through the steps of designing the Voronoi pattern, assembling the LED lamp, and writing the Arduino code to bring it all together. Let's transform our spaces with a touch of light geometry!

Supplies

c1a.jpg
c1b.jpg
c2.jpg
c3.jpg
c4.jpg
c5.jpg
c6.jpg
c7.jpg

You'll only need a handful of components to complete this project:

  • 3D printed parts, there are on Tinkercad;
  • some (52 pcs) LEDs from a 100 led/m led strip;
  • Wemos D1 mini module;
  • a 5V/2A power source;
  • a female DC jack (2.5mm) with a 2 wire 10cm cable;
  • multiple color wires;

Design and Construction

p1.png
p2.png
p3.png
p4.png
p5.png
schematic.png
d1.jpg
d2.jpg
d3.jpg
d4.jpg
d5.jpg
d6.jpg
d7.jpg
d8.jpg
d9.jpg
d10.jpg
d11.jpg
d12.jpg
d13.jpg

Designing the Components

To design the 3D printable parts, I used two applications: the "Parametric Voronoi Generator" web app for creating the Voronoi diagram, and the well-known free vector editing software "Inkscape".

I started by using the Voronoi generator's settings to create a diagram that I liked. I made some adjustments, pulling cells from the edges inward using the mouse and adding/deleting cells as needed. I exported the result (just the cells) as an SVG file and opened it in Inkscape.

In Inkscape, I removed any cells touching the edges, set the stroke to black with a 0.1mm thickness, and filled the cells with white. I then resized the result to approximately 170mm x 170mm. Under Edit -> Preferences -> Behavior -> Steps, I set Inset/Outset to 1mm. I made a copy of the vectors, selected the originals, and applied a 1mm Outset (Path -> Outset). After removing any internal artifacts, I grouped the copied vectors and aligned them with the outset result. This created the divider, which I imported into Tinkercad and adjusted to the desired height.

I generated the remaining components by performing outset/inset operations on the divider's outer path. I ensured the LED holder would fit snugly around the divider and the semi-transparent cover would fit tightly over the LED holder. I added necessary holes in Tinkercad, and that was it for the design phase.

Assembling the LED Panel

With the LED holder printed, I moved on to the most time-consuming part: mounting the WS2812 LEDs into the cells. While WS2812 modules exist, they're quite expensive, so I opted for individual LEDs from a strip. I used a 100 LEDs/meter strip, cutting 10mm pieces that fit perfectly into my Voronoi cells. While 60 LEDs/meter strips are available, they may not provide enough density for this design. Another option would be 144 LEDs/meter strips, though these smaller LEDs can be a bit more challenging to solder.

Once the LEDs were mounted, soldered, and interconnected, the rest was straightforward. I glued the support piece to the LED holder, made the connections according to the wiring diagram, and glued on the cover for the D1 mini module. I inserted the divider into the LED holder and finally, secured the cover.

A note: I printed the cover using Fillamentum's "PLA ExtraFill Volcanic Dust" filament, which has a unique transparent black texture. I printed the cover normally but with a 30% infill. Of course, other transparent black filaments could be used as well.

Finishing

For programming the Wemos D1 mini, the easiest option is WLED, which offers numerous effects, a web interface, and MQTT capability. Despite this I wrote a simple program that randomly displays a color palette for every ten seconds. The code is attached below.

The video in the next step demonstrates a few of the color palettes from the program.

The Video

A Voronoi LED Uplight Decorative Lamp

Some Conclusions...

This Voronoi LED uplight decorative lamp is just a starting point. The possibilities for customization and experimentation are endless. Consider incorporating different materials for the cover, adding sound-reactive features, make it bigger or even integrating the lamp into a larger smart home system. The only limit is your imagination!

I encourage you to take this project as a foundation and build upon it. Share your modifications, improvements, and unique creations with us.

I'd love to hear your thoughts and answer any questions you might have about this project. Please don't hesitate to leave a comment below!