Procedural Model Generation

As a programmer, it didn’t take me very long to look into programmatic modeling tools after I got my 3D Printer. And it turns out there are some pretty good options available. Here’s what I have done so far:


OpenSCAD is a programmatic CAD tool. It’s essentially an editor that lets you code in a simple programming language, with a display window in which to view your model. The simplicity of OpenSCAD is very powerful, and within a few minutes I was creating new designs.

The first model I made was a simple spiral staricase. In 10 lines of code I was able to produce this:

Tiny Little Staircase

Tiny Little Staircase

My apologies for the low quality image, but I hope the point comes across: programmatic modeling is awesome! Later, in quite a few more lines of code, I produced this:

Weird Basket Thing

Weird Basket Thing

OpenSCAD is fun, but its language (and editor) are a bit lacking, and I quickly began missing the advantage of a real programming language.

Getting more power out of OpenSCAD

OpenSCAD has a feature which monitors a .scad file, and re-renders the file every time it changes. This is great for using your preferred editor, and especially great if you want to programmatically generate .scad programs.

There are a few scad generation libraries around, but I went with SolidPython. Now that I was using a more powerful language, I had much more freedom with my creativity. My first piece:

Brownian Motion Vase

Brownian Motion Vase

I’m very pleased with the result of this print. I’m continually amazed by the overhangs I can get away with.

Vase mid-print

Vase mid-print

And my most recent project, a procedurally generated tree (again, the overhangs never cease to amaze me):


Printing Moving Parts

Printing Static Models is fun, but I’ve quickly become infatuated with the idea of printing things that move. I’ve only scratched the surface, but here’s what I’ve done so far:


After a brainstorming session with my friend Zack, one of the ideas we came up with was printing louvers. The idea would be create a panel or a brick or something that could be built into a larger structure, and the object would contain hundreds of little louvers that could be activated to shut out or let in light and air.

Eventually we want to be able to print a solid piece and have it be functional without assembly (possibly using a dual extrusion printer with dissolvable material). For now I’ve just prototyped a 2 piece assembled louver panel. I designed it using tinkercad, which is super easy to use.

Louver Design

Louver Design in Tinkercad

Assembled Louver

Assembled Louver

I made the hole for the axle 5mm in diameter, and the axle 4mm. This worked pretty well, but the axle is a little loose in the socket.

Wheeled Vehicle

Last week I bought some assorted nuts and bolts, with no clear idea of what I would use them for, except that I thought they would be useful in assembling 3D prints. I designed this build explicitly to experiment with multi-part builds and moving parts. Again, I designed the model using tinkercad.

Design of Car

Design of Car

Partially Assembled Car

Partially Assembled Car

One Side of the Car

One Side of the Car


The other side of the Car

This one took a couple of iterations to figure out how everything would fit together. At first I made the axle too small to fit through the wheel. PLA doesn’t have very good traction, so next time I’ll probably buy little rubber wheels.

First Week with the Makerbot Replicator 2

I recently acquired a Makerbot Replicator 2 3D printer, and I’ve been playing with it a ton. Here are a few things I’ve learned along the way.

Filament sticks to the Build Surface really well.

I’ve found a few things to keep it from sticking:

  • Oil from the Skin on my fingers – Works alright for the main print, but is very useful for the initial strip of filament it lays down on the front edge. I rub my finger along that edge before every build.
  • Hand Cream – Works better than Skin Oil, but still not great. I Probably should experiment with other lubricants, but that’s all I could find in my apartment.
  • Painter’s Tape – Makerbot recommends using painter’s tape and laying it on the build surface. They include a few large sheets of tape as well. This works well, but the tape tears easily, requiring frequent replacement. Originally I would use a spatula or a flat head screwdriver to wedge under the print to get it off, but doing this quickly destroyed the layer of tape. I’ve found that lightly twisting the print using pliers works better and does less damage to the tape.
  • Printing with a Raft – The raft seems to be easier to pry off the surface in some situations, and it peels off of the print surprisingly well. The MakerWare software makes adding a raft really easy.

The edges of the acrylic plate are sharp.

I gave myself a nasty cut when my finger hit the plate while trying to dislodge a print. I’m very careful now when I’m prying off a print, and I’ll often remove the build plate if a print is stuck too well.

Always watch the first layer of a print.

Almost all of my failed prints failed in the first minute of printing. During the warm-up stage, some material oozes out, and sometimes this can get stuck on the extruder head. I’ve always caught this early, but there are horror stories about the extruder head getting covered in filament.

Overhangs work amazingly well.

I’m continually impressed at the overhang angles that I can print. On sharp overhangs you can get some drip artifacts, but I’ve yet to have a build fail due to overhang.

Printing from the SD card is prone to errors.

This was true for me, but I’ve read that this can be an issue for some people more than others. I would get SD cards errors approximately once every 45 minutes of printing, which was terrible for long builds. I switched to using USB from my computer, and it’s worked great ever since.

Overall, I’m incredibly pleased with my printer, and can’t wait to learn more.