3D Printable Parametric “Bullet Style” LED Diffuser


Diffusers make or break LED art. I’ve wanted to play around with 3d printed diffusers as they offer not only an easy way to manufacture diffusers but also allow easy rapid prototyping iteration until the project looks just how you want. I think it’s a great application for 3d printers.

I wanted to prove out (quickly before TTITD) a basic, but tasteful, diffuser for my bike I could recognize. I’m most productive in the 11th hour and threw this together the week before I left, so some of this is a bit rough. Anyhow here’s an openscad design for a grid based diffuser for these 10mm driver in epoxy leds. Here’s how it looks from the front. This is two cubes taped together, 25 leds each. The LED strips come in 50s so this is sort of the simplest way to use all of them. Alternatively you could run a 9x9 and clip and LED, but I digress…


…here’s the back. The wiring isn’t that big of a deal because you can just pop the pre-wired LEDs into place, super easy. It does require you to “snake” them in to place, but many LED drivers and mappers have provisions for this layout.


Here’s what the internal interface the LED press fits into looks like. This one is covered in some dust.


And here’s how the front looks without the LEDs on. There’s a hint of the form beneath, although I suspect a thicker diffuser would make this less obvious. Those of you with 3d printers and are familiar with shells and first layer thickness etc can probably imagine many ways to change the surface to alter the effect.


Here’s top shot showing the density difference playing with the light.


I printed this on what may be generously called a low cost 3d printer kit. Your printer should be able to handle it. If you’ve got a glass print bed you can get a nice finish on the diffuser by printing diffuser side down.

Without further ado, here’s the source which you can feel free to modify to whatever parameters you need.

// Author: Sean Connell 
// What: This is a rough toy diffuser that press fits 10mm leds (with some minor adjustment based on your 3d printer)
// Intended to allow plugging in a bunch of leds into the diffuser.

//Try playing with these values to find your favorite look.
diffuser = 1; //thickness of diffuser
led_tip = 8; //width of the inner led tip. play with this to get the right amount of press fit force/friction
row = 5; //how many leds tall
col = 5; //how many leds wide
bottom_snap = 28; //offset of led emission to diffuser. Controls sharpness of light on diffuser
bottom = 6; //distance from LED tip inside of inner ring to diffuser. 

//you probably don't need to touch anything below this line
rowsize = 20 * row;
colsize = 20 * col;

quality = 100;
translate([0,0,led_tip + bottom + bottom_snap]) plate(diffuser);
translate([0,0, bottom + bottom_snap]) bored_plate(led_tip, 4.5);
translate([0,0, bottom_snap]) bored_plate(bottom, 6.5);
bored_plate(bottom_snap, 7);

module plate(height) {
    linear_extrude(height) {

module bored_plate(height, hole_radius) {
quality = 300;
    linear_extrude(height) {
        difference() {
           square([rowsize,colsize], center=false, $fn=quality);
           for (x = [1:2:col * 2]) {
               for( y= [1:2:row * 2]) {
                                  translate([x*10,y*10,0]) circle(r = hole_radius, $fn=quality);


If you’re just interested in just trying a print, here’s the STL I used to create the diffuser in the above images, a 5x5 LED diffuser. You will probably have to adjust the overall scale to get the LEDs to fit correctly, likely only a percent or two.

I hope this helps people design and implement LED diffusers! I am working on a much more complex version that I need to upgrade my printer to pull off. Maybe I’ll update about that later in the repo.


Now read this

Electric Sheep in 4k

I’ve loved the electric sheep project, in theory and result, for over a decade now. However as time has worn on those old renders, even the 1080p ones, are starting to show their age. Since AMD is selling processors like they’ve got... Continue →