Introduction: Generative 3D Voronoi Puzzles

About: Reza is a computational designer & creative engineer. He uses code to express himself, and creates tools and libraries to help others create. He is the author of ofxUI, one of the most popular addons for openf…

Last year, I became interested in voronoi patterns. These patterns are found in nature (ex., soap bubbles, butterfly wings, giraffe spots, etc). In addition, these patterns are applied in economics, math, and computational geometry as well. They are referred to as a "Voronoi Diagram". Other Machine Co. has a great definition for Voronoi Diagram:

A Voronoi diagram is a mathematical method of dividing space into regions. Seed spots are spread along a field, and polygons are generated around these seed spots. The polygons are every point in space around a seed spot that are closer to that seed spot than any other (here's a little more about them if you are curious).

As a computational designer, I am constantly searching for new algorithms to help create new and novel forms. After much research on voronoi patterns I started sketching with code (openFrameworks).

I then created an application which allowed me to analyze the cell sites of the voronoi diagram and to understand how these 2D diagrams evolve over time. The application also allowed me to see the 3D forms created by the 2D cell slices stacked over time. You can see some of what I am referring to in the video above; note how the 3D forms evolve over time as the cell sites move.

Individually, these 3D shapes are out of this world. They create a challenging, but fun, puzzle to put together. I extended the application in order to 3D print the puzzle. In this Instructable, I'll be describing how to generate and print the puzzle shown above.

Step 1: Generate 3D Voronoi Puzzle

The puzzle was generated by the previously described application. This application uses a particle system to control cell site position. These particles were given several behaviors to vary their positions over time. These behaviors represent forces used to influence particle positioning.

The application has the ability to generate millions of unique puzzles. It's user interface exposes variables that control the particle system (which then control how the cell sites move over time). This interface also controls puzzle dimensions and resolution of the 3D forms (number of time slices). Check out screenshots from the application.

Step 2: Post Process Puzzle Via Maya (MEL Script)

In addition to exporting the 3D models, the application writes a MEL script. This script creates a base plate for the puzzle and imports the models previously exported by the application. It then creates holes in the bottom of the pieces and plate. The holes in the base plate and pieces line up perfectly.

Cylindrical magnets are glued into the holes so that the puzzle pieces stick to the base plate. The magnets make putting the puzzle together easier, as the pieces are now less mobile.

Further, the script lays out the pieces and base plate so they do not touch.

Lastly, the script exports all the pieces and base plate as a single OBJ file.

I then used Rhino to convert the file format from an OBJ to STL.

Note: this instructable will show a puzzle that was made before the holes and magnets were conceived and implemented.

Step 3: Print Puzzle & Clean

The STL file was imported into the Objet software and 3D-printed in Velo Clear on an Objet Connex 500 @ Pier 9.

After printing, I used the spray booth to throughly clean off the support material, and then used various grades of sand paper to polish the tops and bottoms of the puzzle pieces.

Step 4: Solve the Puzzle

I gave the puzzle to a couple of friends to solve. The average time it took to solve the puzzle was 20 minutes.

3D Design Contest

Participated in the
3D Design Contest