Emergence of Hilbert

Date started: September 2019
Leads: Judy Holdener


The human brain is remarkable in its ability to fill in missing information as it works to make sense of the data it receives from the surrounding world. In this project I illustrate this phenomenon in the context of the visual system using Hilbert’s famous space-filling curve.  Varying the thickness of the sixth iterate of the curve as it traverses the plane, I 3D printed a portrait of David Hilbert. Using Python script within the modeling program Rhino, my code reads in an image and uses pixel data to generate a rectangular piping along the curve. The width of the rectangular profile of the piping at a point depends on the intensity of the pixel at that point; it is wider when the intensity of the pixel is lower (where the image is darker) and thinner when the intensity of the pixel is higher (where the image is brighter).


I created Hilbert’s portrait using the sixth iterate of the Hilbert curve, which I constructed in pieces — printing off 16 “subsquares” of the curve on an Ultimaker 3.  Each subsquare is approximately 5 inches in width and was generated using the fourth iterate of the Hilbert curve.

One of the 16 subsquares printing on an Ultimaker 3

The height of the piping remains fixed throughout the entirety of the curve for this project, but in future work I intend to vary the height as well as the width.  I also intend to make use of other varieties of space-filling curves to render other images.

A close-up reveals the varying width of the rectangular piping
Another view of the portrait illustrating its three-dimensional nature
David Hilbert rendered with his well-known space-filling curve, 20 × 20 inches

Acknowledgments:  I want to thank Henry Segerman for leading a terrific introductory workshop on Rhino and David Dumas and Laura Taalman for teaching me almost everything I know about 3D printing.