Given that I have a 3D printer and a five-year-old son, it was inevitable that I would eventually print some LEGO-compatible bricks.1 I knew that bricks were a popular “look what I can print” demo, but after I tried out a few of the popular printable LEGO-compatible models [1] [2], I found that none of them were designed accurately enough to reliably interlock with genuine LEGO bricks, and none of the libraries included support for any shapes besides the basic rectangular brick.

To solve this problem, I’ve written a LEGO-compatible brick generator that is more feature-rich than any other. It has support for customizing the following brick aspects:

Length, width, and height

Shape: brick, tile (smooth-topped brick), wing, slope (brick with an angled face), curve (brick with a curved face), or baseplate.

Size: LEGO or DUPLO

Hollow or solid studs (the little bumps on top of the bricks)

Horizontal rod holes

Vertical axle holes

Notched sides on wings so that the wing can be attached to a plate.

Slope/curve length/angle

Curve style: convex or concave

Double-sided bricks (studs on both the top and bottom)

Roadways: smooth sections on the top of a brick

These characteristics can combine to create millions of unique bricks. You can generate anything from this vanilla 2×4:

to this extensively customized brick that you’ll never be able to buy from LEGO:

This assortment of bricks contains examples of all of the available customizations:

But this is still just a tiny fraction of the possible permutations.

Here are a few bricks I’ve printed. I haven’t gone crazy with customizations, mainly because what I print is dictated by what my son asks for, and he’s only been requesting wings, wings, and more wings so he can build spaceships.

The script is available on GitHub, and I’ve published it on Thingiverse as well for easy customizing. (It’s by far my most popular Thingiverse model.) Download the script, print your own bricks, and send me a photo.