SpeakerGen – Parametric 3d Printed Speaker Enclosures

3d print your own speaker enclosures!

This OpenSCAD / Thingiverse Customizer script lets you:
– Generate a box of any desired volume / ratio / wall thickness- Determine optimal sealed box size for any driver using Thiele / Small parameters (Qts, Vas and Fs)- Include cutouts for speaker / terminal (and screw holes)- Include a bass port of any dimensions

Click Here to use SpeakerGen online or download the OpenSCAD script.

With a wide variety of inexpensive full-range drivers – you can easily 3d print a set of speakers that sound great.

SpeakerGen provides a built-in tool that can automatically create an optimized sealed box for your driver’s parameters. Speaker drivers’ acoustic properties are described using “Thiele/Small” parameters (Qts, Fs and Vas). You can use these parameters to help determine what kind of box will work well for your speakers.

While printing speaker boxes is slow – and only really an option for smaller enclosures – it has several advantages. Assembly is almost instant – and printed enclosures intrinsically don’t have issues with panel fit. They are almost certain to be air-tight. If your speaker doesn’t seem solid enough – just reprint with a higher infill percent!

So far I’ve only printed in enclosures in PLA. I can only speculate how boxes made with materials like rubber, wood, nylon or bronze would perform.

Notes on loudspeaker design / printing

Sealed Boxes

Sealed boxes are the simplest to design with primarily one variable: size. They are also very flexible. A speaker driver that sounds good in a 1.0 liter sealed box probably sounds pretty decent in a 1.25 liter sealed box.

A sealed box / driver system is acoustically described using a number of parameters – an important one being “Q.” A box’s Q describes behavior around its resonance frequency – and hence helps dictate F3 value (bass frequency with a 3db drop in response). Sealed box speakers commonly have Q values in the 0.7 to 1.4 range. The Q of a sealed enclosure system will always be larger than its driver’s Qts. The Q of a box decreases as its size goes up – and vice versa.

A Q of 0.7 provides the lowest possible F3 value – and by that argument is the optimal value for sealed speaker design. That said – accepting a larger Q value (say 0.9) allows of a significantly smaller box – with only some loss in bass response. Larger Q values still (say 1.4) result in a further loss in low-end response – but also introduce an upper-bass response peak – which can result in a boomy sound.

SpeakerGen uses some simple math to estimate what box size a given driver needs to obtain a certain Q value – and what F3 frequency that will result in. It works similarly to other online closed box calculators – such as this one:


Ported Boxes

“Ported” boxes utilize a tuned port to enhance bass response (aka bass reflex, vented, etc.). These boxes are more finicky to design – and aren’t too hard to get “wrong” (thin bass, boomy bass, etc.). Diameter and length of the port need to be calculated with a moderate degree of precision – otherwise things can go very badly (don’t guess).

Ported boxes tend to be larger (and hence take longer to print). However – they can significantly extend the bass range of smaller full-range drivers – which can make them a good choice for a 3d printed single-driver system.

SpeakerGen can easily produce a speaker box including a bass port of any specification you can print. However – since the math is a bit trickier – I’m leaving it up to other people who know better. To determine the correct dimensions for your vented box and bass port – check out these resources:


Print Tips / Pictured Speaker

The pictured speaker uses an AuraSound NS3-193-8A in a 1.7 liter enclosure with a bass port tuned to 70hz. This provides a calculated F3 frequency of 66hz – not bad for a 3″ driver! It sounds great – but falls off a bit over 12khz – so treble adjustment is recommended. The speaker box weighs about 1lbs – and took about 17 hours to print.

For my first attempt – I printed a box at 10% infill with only 2 shells. The speaker sounded OK – but subjectively seemed a bit flimsy. For my second print (the one pictured) – I used 20% infill and 3 shells. This produced a solid feeling speaker cabinet. I think these are reasonable settings for smaller speakers (maybe under 1.75 liter). Larger speakers may do better with more infill / thicker walls.

Both prints were at 300 micron with 7mm walls. The inside top of the first print came out a little flimsy feeling (I believe due to having to “bridge” such a large area). For the second print I increased the floor and ceiling thicknesses from the default 0.8mm to 1.5mm – this seemed to address the issue. My gut is this might not be needed for a 200 micron print.


Cabinet assembly is pretty easy! Jut use wood screws to mount the speaker. Be careful not to over-tighten to avoid cracking. If the screws seem difficult to screw-in – try chasing out the holes with a drill bit.

Stuffing your cabinet with “polyfill” is highly recommended as it can reduce resonances – and slightly increase the effective size of your enclosure.

Driver Selection

There are lots of great full-range speakers available on parts-express.com in the $10-30 range. A few good candidates:

Have fun!

Related Posts

3 thoughts on “SpeakerGen – Parametric 3d Printed Speaker Enclosures

  1. Talking about fill: can you leave the web open enough to be able to fill the gaps with another product? In other words, make a double shell with lightweight supports, and fill it with plaster of Paris, or a low-viscosity silicone. Talk about a non-resonant enclosure!

  2. Do you have any good recommendations for the rest of the hardware? Audio inputs and stuff? Also, could I build a surround sound system with these?

Leave a Reply

Your email address will not be published. Required fields are marked *