Printing the impossible…in 3D
In light of my last post, I began thinking about other shapes I could 3D print using Shapeways. Since my last piece was somewhat flat, I decided to go for a more volumetric structure this time, and I was especially taken by the idea of a shape that links with itself. But I wanted to achieve this with a model made of one piece instead of a chain with jangling disconnected pieces — to create a seemingly impossible object with one contiguous ladder-like structure.
How might I create something like this? I was surfing YouTube one day and I came across this puppy:
This is the kind of structure I would like to make. Other people have also made linked mobius torus structures with varying materials:
I would like mine to be based on this shape but look more interesting. Like most problems I try to solve in mathematics, trying to make something more interesting usually is the same as trying to generalize it. When I try to generalize (say the concept of an equilateral triangle), I look for the following criteria:
- Is there a quantity inherent to the situation at hand that can be increased? (The triangle has three sides, but what would shapes look like with more than three sides?)
- Is there a constraint being imposed that we can remove to allow more interesting behavior? (What would it look like if each side need not be the same length?)
- Is there a context that the object is inherently using in its existence that can be modified? (The triangle is flat, but what if we allowed the triangle to live on a curved surface like a sphere?)
I began my design by constructing the basic shape with Mathematica. This consisted of a essentially toroidal shape given by the following parameterization:

However, I wanted the cross-section to be hexagonal, so this would mean I would need my parameter v to be discrete; I would need six samples in a full 2π rotation. On the other hand, my parameter u would also need to be discrete; I wanted to have 22 individual links joining across the piece. I wrote a little Mathematica program that would take my parameterization and would in turn write a “.txt” file to my hard drive. By changing the extension of this file to “.obj”, I obtained a three dimensional toroidal shape with a hexagonal crossection. However, this wasn’t exactly what I wanted. I needed to add a twist to the whole thing, akin to how one would add a twist in a mobius strip. However, since the crossection is hexagonal, we apply a 60˚ rotation as opposed to a 180˚ rotation. This corresponds to each side of the hexagonal structure meeting with its neighbor when the two ends of the strip meet. The next step was to open the result up in TopMod to see what it all looked like.
Notice the wrinkle in the face loop close to the front! This is understandable; I began with a torus, and performed a twist on the vertices appropriately to create the rotation. But if you start with a standard belt of paper, you can’t expect to twist it without breaking and end up with a mobius strip! Consequently, all of that twisting had to “pile up” somewhere, and this is exactly where I will cut each wrinkled edge, and reapply the edges appropriately. This creates a perfectly and evenly twisted mobius torus. The changes in this procedure are shown with semi-transparent regions; look closely and you’ll see the wrinkles vanish!

Now that we have a perfect mobius twist base, I used TopMod’s wireframe modelling mode to create a wireframe:

Then I deleted the crossbeams and put in my own crossbeams, which went diagonally across instead of around the perimeter to create a sort of linking effect. I decided that the most natural way to do this would be to rotate the crossbeams cyclically as shown in the figure. First, I would place a beam between corners 1 and 4, then from 2 to 5, then from 3 to 6. At this point I would repeat, laying down another beam from 1 to 4.

Once I was through with that business, I decided that it didn’t look quite organic enough, so I wrote a separate Mathematica program that would take an arbitrary 3D model and warp it according to a mathematical function. I wanted my shape to look less like a standard torus and more like a melted one (Dali style). Without getting too technical, this involved taking the model, projecting every vertex down to the torus’s “base circle” (the closest point on the circle going around the torus) then warping this base circle, carrying all of the projections with it, and then exploding the vertices back outward again via a rotated basis to account for the rotation that had taken place in the warping map. The result of all of this mess was good enough for me to render using Blender, a free, open source 3D content creation suite:

After finally having a result that I liked (on my first try I realized that my first model had an error with the cyclic pattern of bridges), I couldn’t contain myself, so I immediately uploaded my model to Shapeways to have it printed in “Winter Red Strong and Flexible,” and a couple weeks later my model arrived via UPS!

Here is a video of my model spinning to reveal the geometry more clearly. The trick is that there is a fine fishing line being used to hold up the model from the ceiling.
























This surface has similar geometry to an egg, but is lackluster. At this point, it still has meshlines and a generic default color assigned by Mathematica. The eggs need some more spice. I decided I wanted to color them like Easter Eggs, but the constraint I imposed on myself was that the colored patterns would need to be created directly from mathematical functions inside of Mathematica. Each function would go from the surface of the surface of the sphere into the real numbers, and therefore could be thought of as a simple function of two variables, u and v. The output of this function could then be mapped to a color to represent the desired color at that point.
Thankfully, there were no problems matching up edges on the rectangle [0,2π]x[0,π], because the Spherical Harmonics are made especially for spheres. At this point, I couldn’t help but try changing parameters on the eggs to obtain different patterns. For instance, one such parameter represents the number of blobs of color going from the top to bottom of the egg. The other parameter represents how many blobs go all the way around the equator. By changing these parameters, you can obtain very different looking eggs, especially when you make one parameter much larger than the other to create “slits” of color. You can see an orange version of these Spherical Harmonics in the bottom picture in the orange-colored egg on the very left of the image. You can see that I cranked up the number of blobs of color I required to fit from north pole to south pole in that one.
The first think I noticed about the egg is the spirals, but if you look directly down on this model from the north or the south pole, you will see a four-petaled flower. What I find interesting about this activity is that it requires not only artistic creativity, but also a familiarity with the behavior of mathematical functions so that one can define an egg that resembles the image one had in ones mind before beginning the project. However, unlike this visually attractive egg, the mathematical coloring equation is no where near as elegant. Ignoring various rescaling done to account for the desired input range to specify the colors, the mathematical equation that I used to generate this pattern was:




