Figure 1. Jeff Namkung - Slow Waltz (left); Janus (right) |
Adventures in 3D Puzzle Printing
The past fifteen years have been a fruitful period for interlocking mechanical puzzles, with the online archive Puzzle Will Be Played now indexing over five thousand published designs. Unfortunately, the sheer breadth of the puzzle catalog ensures that only a tiny minority of designs are commercially available at any given time. This can be quite frustrating to the casual collector, or to those seeking out a specific puzzle, which (if it has been produced at all) may be quite difficult to obtain.Over the past six months I've been exploring 3D printing as a solution to this problem, and found (somewhat to my surprise) that a vast range of puzzle designs - fully functional, and even aesthetically attractive - can be successfully realized with home 3D printers.
Figure 2. Yavuz Demirhan - Nembus 2 (left); Knotty 6 (right) |
In this post, I'll discuss some of the challenges with 3D puzzle printing, and I'll introduce puzzlecad, a software library that streamlines the creation of 3D printable puzzle models. Along the way, I'll showcase some of the puzzles I've successfully printed. All of the models pictured in this post were printed by me, at home, on a Prusa i3 MK3. I hope that this work will inspire more people with the realization that printing high-quality interlocking puzzles - even fairly complex ones - is fun and accessible to everyone.
Anything (Rectilinear) Can Be Made Printable
Figure 3. Two pieces from Coffin's Quartet. The piece on the left has an overhang; the one on the right is simply printable. |
However, 3D puzzle printing has historically been encumbered by several challenges. A significant obstacle arises when printing puzzle pieces with overhangs. Figure 3 shows two pieces from Stewart Coffin's "Coffin's Quartet". Let's call the piece on the right "simply printable" - it can be easily printed, in the orientation shown, on essentially any 3D printer. But the piece on the left poses more of a challenge: no matter how it is rotated, some part of it will have empty space underneath. Because 3D printers build up objects in layers, with each layer supported by the ones beneath it, pieces with overhangs are more difficult to print.
Figure 4. More simply printable puzzles: Bruce Love - Love's Dozen (left); Andrey Ustjuzhanin - Boxes and Frames (right) |
One option is to print with "supports", temporary structures that are detachable once the print is completed. However, removal of supports leaves scars that are aesthetically unpleasant - and even interfere with puzzle operation by reducing the accuracy of the tolerances. High-end printers can print supports with a special material designed to minimize scarring, but that option is unavailable on many 3D printers, and it introduces additional cost and complexity in any event. Commercial printing services such as Shapeways are another option, but they can be quite expensive.
Figure 5. Example of a snap joint. Once locked in place, the joint forms a permanent connection. |
Snap joints can be used to produce high-quality renditions of puzzles that are traditionally difficult to print. For example, Tim Alkema's Rift (Figure 6) can be printed using just a single joint each for the white and blue pieces (the yellow and green ones are simply printable). By using multiple snap joints when necessary, arbitrarily complex rectilinear puzzles may be constructed.
Figure 6. Tim Alkema - Rift |
Puzzlecad: A CAD Library for Puzzles
Puzzlecad is a new software library that streamlines the specification of puzzles for 3D printing, including puzzles that require snap joints. It's implemented in OpenSCAD, a general-purpose open-source modeling platform. Puzzlecad translates the structure (voxels) of an interlocking puzzle into a 3D printable model, automating the work of laying out the puzzle components, beveling, and joints. A typical puzzlecad specification for a single piece looks like this:
burr_piece(["x..|xxx|x.x", "...|...|x.."]);
Those strings of x and . represent arrays of voxels; an x puts a cube at the relevant position and a . leaves it empty. The example just given, in fact, produces the piece on the right in Figure 3 above. Puzzlecad allows for a wide range of customization; for example,
burr_piece(["x..|xxx|x.x", "...|...|x.."],
$burr_scale = 12, $burr_insets = 0.07, $burr_bevel = 0.5);
prints a piece with voxels 12mm on a side, 0.07mm tolerances, and 0.5mm beveling on the edges. (I've found that these particular settings work well for many puzzles.)
Snap joints can be easily modeled by annotating individual voxels within the puzzle specification. The following specifications give the two components of the jointed piece in Figure 5 above:
burr_piece(["..x|xxx|x{connect=mz+,clabel=Ay-}.."]);
burr_piece(["x|x", ".|x{connect=fz+,clabel=Ay-}"]);
Figure 7. Snap joint with the label "A" |
In this way, essentially any rectilinear interlocking puzzle can be prepared for printing in just a few minutes. Puzzlecad ships with documented examples that provide more detailed usage information.
For more examples and information on Puzzlecad, or to download the library, please visit:
https://www.thingiverse.com/thing:3198014
The Future of Puzzles and 3D Printing
Figure 9. Clockwise from top left: Oleg Smol'yakov - GELO-1234; Ken Irvine - Pink Ivory Ring; Osanori Yamamoto (arr. Ishino) - Pig Nose 2 |
3D printing offers a solution to both problems. Most of the puzzles in this blog post used roughly $2 worth of filament (the Stand By Cubes were the most expensive at around $4.50 each, partly because I used costlier "woodfill" filament for the bases). Decent printers are now available in the under-$400 price range. For a relatively modest investment, anyone can now select a puzzle from a vast menu in Puzzle Will Be Played, implement it in puzzlecad in a few minutes, and have a copy ready to play with the next day.
Figure 10. Stewart Coffin - Involute (left); Convolution (right) |
Since acquiring a 3D printer, I've enjoyed acquainting myself with new puzzle designs, many of which would otherwise be difficult for me to obtain. I look forward to more puzzle exploration in the months and years ahead!