Doubly-ruled surfaces

three blue curved surfaces against a black background

An example of a hyperboloid of one sheet.

Some of the most interesting quadratic surfaces are the doubly-ruled surfaces: the hyperboloid of one sheet (like x2+y2-z2=1)  and the hyperbolic paraboloid (like z=x2-y2). These surfaces have made an appearance in this blog previously when we discussed how to create good 3D printable models of these surfaces.

Two grey curved surfaces with equations on them against a black background.

An example of a hyperbolic paraboloid.

Ruled surfaces have been studied extensively in geometry. Formally, a ruled surface is a surface which is a union of straight lines. The straight lines are called rulings (or the generators) of the surface. An example to think about is a cylinder: this is a union of straight lines, each of which intersects a circle. Just as with the circle and the cylinder, in a general ruled surface there is a curve in space which intersects each of the lines. Thus the surface can easily be parametrized as follows. Let g:(a,b)->R3 be a parametrization of the curve on the surface, let vt be a vector at point g(t) which points in the direction of the line passing through g(t). Then the surface is parametrized by f:(a,b)x(c,d)->R3 defined by f(t,s) = g(t)+svt.

A two sided twisted surface. One side is in blue, the other red.

A helicoid. Image from https://minimalsurfaces.blog/

A nice example of such a surface is the helicoid where lines parallel to the xy-place pass through each point of a helix (for example parametrized by g(t)=(cos(t), sin(t),t)). One possible parametrization of a helicoid is f(t,s) = (s.cos(t), s.sin(t), t).  Ruled surfaces are very familiar to us, if the rulings are all parallel to each other, then the ruled surface is a generalized cylinder. For example, the surface given by y=x2 in R3 is a generalized cylinder parametrized by f(t,s)=(t,t2,s).

Image of a saddle shaped surface with lines on it.

The two rulings on a hyperbolic paraboloid surface.

Now there are surfaces which are doubly-ruled surfaces, meaning that each point of this surface belongs to two distinct lines. In other words, this surface has two distinct rulings. You can use projective geometry to show that this surface, the plane, and the hyperboloic paraboloid are the only surfaces that have this property. Robert Byrant has a nice proof of this fact using differential geometry in a 2012 Math Overflow post

Let us focus our attention on the hyperboloid one sheet given by  x2+y2-z2=1.  To give explicit equations for the two rulings, I will follow the text Elementary Differential Geometry by Andrew Pressley. For every t, we can show the straight line Lt given by \[(x-z)\cos t=(1-y)\sin t, \ \ \  (x+z)\sin t = (1+y)\cos t\] lies on the surface. To see this, multiply the two equations together to get \[(x^2-z^2)\sin t\cos t =(1-y^2)\sin t\cos t.\] in other words x2+y2-z2=1 unless cos(t)=0 or sin(t)=0. If cos(t)=0, then x=-z and y=1, and if sin(t)=0 then x=z and y=-1, and both of these lines lie on the surface. A short computation reveals that for each t,  line Lt contains the point (sin(2t),-cos(2t), 0) and is parallel to the vector (cos(2t), sin(2t), 1). We thus get all lines in one ruling for t in [0,π).

Orange cylindrical shaped surface

One set of rulings on a hyperboloid of one sheet.

We now show that any point on the hyperboloid lies on one of these lines. Take a point (x,y,z) on the surface x2+y2-z2=1. If x does not equal z, then let t be such that cot(t) = (1-y)/(x-z). If x does not equal -z, then let t be such that tan(t) = (1+y)(x+z). In both cases the point is on Lt. The only cases left are the points (0,1,0) and (0,-1,0). But these points lie on the lines Lt when t=π/2 and t=0 respectively.  In addition, we can check that the lines in this ruling do not intersect. Suppose (x,y,z) lies on Lt and Ls and t does not equal s. Then \[(1-y)\tan t  = (1-y)\tan s, \ \ \text{and} \ \ (1+y)\cot t = (1+y)\cot s.\] Assuming the tan and cot functions are not zero or undefined gives both y=1 and y=-1, a contradiction. The case where t=0 and s=π/2 give disjoint lines too: \[ L_0(t) = (t,-1,t) \ \ \text{and} \ \ L_{\pi/2}(s)=(-s,1,s).\]

What is the other ruling? For every t, we can show the straight line Ms given by \[(x-z)\cos s=(1+y)\sin s, \ \ \  (x+z)\sin s = (1-y)\cos s\] lies on the surface. The computations are almost identical, so we omit them. Each point of the surface lies on a line in Ms and the lines in this ruling do not intersect.

Orange colored curvy cylindrical surface

The second set of rulings on a hyperboloid of one sheet.

Another computation shows that if t+s is not a multiple of π, then Lt and Ms intersect in the point \[\left( \frac{\cos(t-s)}{\sin(t+s)}, \frac{\sin(t-s)}{\sin(t+s)}, \frac{\cos(t+s)}{\sin(t+s)} \right).  \]  For each t in [0,π), there is one s in [0,π) such that t+s is a multiple of π, and the lines Lt and Ms do not intersect. Intuitively, the two lines are on opposite sides of the hyperboloid of one sheet.

There are many other interesting observations to be made about these surfaces. For example, any set of three skew lines generates such a surface and the three skew lines lie in one of the rulings. Ian Agol posted a nice proof of this in the same 2012 Math Overflow post.

More quadratic surfaces

In July it was time to get back to designing and 3D printing some more math models. I had previously seen some beautiful models printed by Dave Pfaff on the Series 1 Pro, using its ability to print in a spiral. I wanted to print a large hyperboloid of one sheet using this printing technique.

So I went back to Cinema4D to design the model. I used the Function tool to make the hyperbola \(\frac{x^2}{4} -\frac{y^2}{9}=1\), which has asymptotes \( y=\pm \frac{3x}{2}\). I then used the Lathe tool to revolve the hyperbola around the \(y\)-axis and create a hyperboloid of one sheet. I knew, from the asymptotes, that the surface would have an angle  greater than \(45^\circ\) angle with the \(xz\)-plane. (Recall that in Cinema 4D, the \(y\)-axis points upwards where the \(z\)-axis usually points in mathematics.) Having a steep angle with the plane is important feature when 3D printing in a spiral. Since there won’t be any supports printed, a steep angle increases the chances of a good print.

At this point I used the surface I had created to make two different kinds of models. For the first model, I simply added a top and bottom to create a closed volume.  For the second model, I thickened the surface using the Extrude tool (2mm), again creating a closed volume. The extruded surface had raised top and bottom rims, which meant the model would not sit flat. So I selected all the point around the top (respectively bottom) rim and brought them down (resp. up) an appropriate distance. Apart from this, this thickened model needed very little doing to it. I then created a third model by adding equations and removing them from the thickened surface. This ended up being quite involved as I used the Bend Tool to make sure the equations sat nicely on the surface.

hyperboloid-tallIn order to get a spiral print, I took the first closed model, and adjusted the print settings on the Series 1 Pro printer. The top and bottom layers of the model are not printed; instead the nozzle goes around in a spiral, printing the surface 1 layer thick. Initially, we had trouble with both the fan and print speed settings. This meant the filament was not setting at the bottom of the model, leaving a gaps and giving a ragged appearance. After we slowed the print speed down and made sure the fan turned on after 1mm (rather than after 10mm), the prints turned out beautifully. The small model is about 13cm tall, and the large one about 20cm tall. These models can be found on Thingiverse here.

The next set of models was the hyperbolic paraboloid again, but this time I wanted to surface to look more like a saddle shape. To achieve this I went into Mathematica and use ParametricPlot3D command to plot the surface \(z=x^2-y^2\). Instead of displaying it inside a box, I had Mathematica just show the part of the surface inside the circle \(x^2+y^2=1\). To do this, I used the RegionFunction command.

hyper-paraboloid-form1  hyper-paraboloid-drying

I exported the Mathematica file as a .wrl to Cinema4D. Once there, I extruded the surface (again 2mm thick), then had to spend a significant amount of time repairing the mesh. To do this, I used the Optimize function, and also went around the surface repairing the mesh by hand (removing points, lines and faces, then using the Fill Polygon Hole tool to repair the gaps). I made two copies of the model, one with equations and one without. (I also built the equations in Cinema4D and extruded them. I then removed them from the surface using the Boole tool.) I 3D printed the resulting models on the FormLabs Form 1+ printer in clear and grey resin. The surfaces printed very well, though there were a fair number of supports to remove.

hyp-paraboloid-roundThese models can be found on Thingiverse here.

Quadratic Surfaces – Hyperbolic Paraboloid

The quadratic surface that gave me the most trouble was the hyperbolic paraboloid. This surface could not be created in Cinema 4D and had to be imported from Mathematica. When I imported the surface from Mathematica the center of the saddle had hundreds of little polygons that overlapped, which became a huge problem when I tried to extrude them to give the surface thickness.

I had to spend a long time experimenting to find the lowest number of plot points I could use in Mathematica and still get an accurate object.Screen Shot 2015-07-20 at 11.39.50 AM Once I had done this I did the same thing with the optimize tool in Cinema 4D to see how big I could make the polygons before the surface started to lose accuracy. The first time I went through all these steps the hyperbolic paraboloid I had chosen just didn’t work correctly. So, I went back to the beginning and created a new Mathematica file of a hyperbolic paraboloid, and spent some time deciding where to cut it off to create edges that were as straight as possible.

Screen Shot 2015-07-20 at 12.51.01 PM Once I had done this and imported the surface into Mathmatica I optimized the surface as much as it would allow and extruded it. Finally I had a surface I could print! I then added the hyperbolic paraboloid’s equation to the surface. Instead of just imprinted the equation, since the surface was so thin I punched it all the way through.photo

In order to print this surface I used the FormLabs liquid printer. When the object came out of the printer it looked great and only had a few minor flaws to fix after this first print. One of the issues was the size of the object; it was just a little too small. The other issue was that the 2 in the exponent of the equation didn’t quite form correctly because it was too small. The final issues was that the equation had a \(+\) sign where there should have been a \(–\) sign (oops). Screen Shot 2015-07-20 at 12.51.21 PMThe equation was little too long with a 0 that was missing its center.  To fix these problems I rearranged the equation (and fixed the sign issues) in Adobe Illustrator and then punched it through the surface again. The second print on the liquid printed I made 1.4 times larger than the last print.

FullSizeRender 2 copyThe final print still had issues with the formula but otherwise worked out well. We are currently looking into changing the font to see if that helps with this issue. This model can be found on Thingiverse here.

FullSizeRender 5

Using my experiences building this and the other quadratic surfaces, I’ve put together a set of instructions on how to build quadratic surfaces using Mathematica and Cinema 4D. This can be found here.