Glow Orb

August 21, 2025

Over the last couple of years, I experimented a lot with DIY light installations after having been inspired by DarkMatter Berlin, which I actually visited last year.

While thinking about ways to dimly light a room, the idea of shining light through a clear crystal ball came to mind.
I originally intended for the sphere to be lit, but after building a small prototype using a glass marble, I noticed that the refracted lights would show up on the ceiling like stars.

To be honest, I didn’t really like them showing up at first, but after finishing the 3D model, I was so happy with how they looked.
Sitting under these lights is just so relaxing, which is why I decided to publish the model for you to enjoy.

Materials

Base

I designed the base using OpenSCAD because I love being able to type down what I envisioned in my head as code.

The base is made up of two pieces, which can be printed seperately.
The bottom piece has a recess to mount the ESP32 microcontroller and extends a thin cylinder shell upwards for the light strip to run inside, with a small hole connecting the bottom and top cavity.
The top piece is designed to friction fit onto the bottom and has a cutout on the top, which matches the sphere curvature.

I printed the base using my FiberWood Brown PLA because I love the matte finish along the layer lines.
I also enabled supports on the build plate to support the recessed section, where the ESP will be mounted.

Printed top and bottom parts on a black backdrop.
They have been printed in a brown wood filament, which gives them a matte and slightly bumpy texture.
The bottom part is shaped like a hollow cylinder with an extended ledge at the bottom, closing it off, and a small rectangular cutout on one side.
The top part is an open cylinder with a slight ledge on the top. It has been flipped upside down so that its top is facing down.

Wiring

After removing all the support material, you are ready to assemble the base.

Start with lining the inside of the bottom part with the LED strip, and cut it to length.
In my case, the base can fit exactly 15 LEDs.

Afterwards, solder a thin wire to each of the three contact pads, run them through the wire hole, and fix the light strip in place (I just pressure-fitted mine because it fits quite snugly).

LED strip running along the inside of the bottom cylinder.
Three wires can be seen running through the base plate and out the back.

With the wires running through the bottom, you can flip it over, press the ESP into place, and solder the wires to the appropriate pins. (You might want to use hotglue, especially to glue down the ESP; mine just pressure fitted quite nicely)

A small blue circuit board has been placed in the rectangular recess on the bottom piece.
Three wires are soldered to its pins, and the USB-C port is sticking out the side.

You might notice that the USB-C port of the ESP32-S3 Zero is slightly sticking out the bottom.
Before we address this, let’s set up the software so we can confirm that we wired everything up correctly.

Software

Ever since discovering it years ago, I’ve been using WLED in all my LED projects.
Whilst the UI might be complicated in some areas, it has way more features than I could ever build into a project myself and is supported by a large community.

After installing WLED by following the instructions on their website, you can plug in the power and connect your phone to the WLED AP network with the password wled1234. (You might want to check their website for updated information.).
If the AP doesn’t appear for you, you might want to try an older version of WLED: for whatever reason I can only get 0.14 to work on my S3 Zeros, even though 0.15 is the latest version.

Open the controls inside the captive portal login and head into the config.
Inside the config you can find WiFi Setup using which you can later use to connect the device to your home network.
Most importantly, you will want to head into LED Preferences, and change the GPIO pin in the LED Outputs section, to the pin you soldered the DT cable to. In my case, this is 7.
You’ll also want to change the Length to the number of LEDs. In my case, this is 15.
Hit Save and wait for the page to reload.

If you see your strip light up, you’ve done everything correctly.
If not, you most likely misconfigured the GPIO pin or made a mistake with the wiring.
Check the pin number using the board pinout and verify you have correctly connected the 5V, GND, and Data line.
You might even want to try a different GPIO pin for the data line.

Final assembly

With everything working properly, we can close up the case by pushing down the top, locking it in place.
If you have a visible seam, I’d recommend placing that part above the USB-C port so it won’t be visible from the front.

Assembled base without a crystal ball on top.
The camera is pointing at it from an angle, revealing the lead strip, which lines the inside.
You can also make out the curved side section.

To create enough clearance for the USB-C port, cut two 3 cm foam adhesive strips and stick one over the ESP32 and one on the other side, leaving about 5 mm distance to the edge of the base.
This should also preven the ESP from falling out.

The assembled base, but flipped upside down, showing two black foam adhesive strips stuck to it.
One is partially obscuring the ESP. The strips still have their backing paper on them.

To complete the bottom, cut out a 4.5 cm circle from the foam sheet and stick it to the foam adhesive. (I ran out of black foam sheets, so I used dark brown instead.)

A circular brown foam cutout glued to the foam adhesive strips.
Only the outer section of the base is visible with parts of the USB-C port.

Showcase

Picture of switched-off GlowOrb, with a crystal ball placed on the base.
A lamp above reflects in the glass. The ball itself appears dark.

Now that the base is completed, all you have to do is place the crystal ball on top, plug in the power, and enjoy your lamp.
I’d recommend you play around with all the different WLED effects and see what you like best.
In my case, I set the Aurora effect to be the default effect.
But I think that the light looks just as amazing in single-color mode.

GlowOrb placed on a nightstand besides a potted plant and a phone.
The lights inside partially reflect onto the night stand surface right next to the base.
Some fingerprints can be seen on the glass surface.
The crystal ball itself appears to glow white with a slight hint of orange.

I won’t include videos in this post directly, but I might post some on my social media.

GlowOrb sitting on the same nightstand, with a second planter visible.
The ball is now glowing blue and green and reflecting light on both planters.

Because the crystal ball refracts the light, you also get to enjoy a lovely pattern on your ceiling.

Three dots of blue and green lights in different intensities lighting up parts of the ceiling.
The picture appears dark otherwise.

The model and source files are licensed under CC-BY-SA 4.0