Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I have just written a small program in C++ and OpenGl to plot implicit surfaces in $\mathbb{R}^3$ for a Graphical Computing class and now I'm in need of more interesting surfaces to implement!

Some that I've implemented are:

  • Basic surfaces like spheres and cylinders;
  • Nordstrand's Weird Surface;
  • Klein Quartic;
  • Goursat's Surface;
  • Heart Surface;

So, my question is, what are other interesting implicit surfaces in $\mathbb{R}^3?$

P.S.: I know this is kind of vague, but anything you find interesting will be of use. (:

P.P.S: Turn this into a community wiki, if need be.

share|improve this question
2  
There is a wealth of documentation on Wolfram's Mathworld: mathworld.wolfram.com/topics/Surfaces.html –  barf Jun 19 '11 at 1:38
    
@JTL Great link. Post that as an answer and I'll accept it. –  Leonardo Fontoura Jun 19 '11 at 1:43
    
Boy's surface.. –  Grumpy Parsnip Jun 19 '11 at 1:45
    
If you type "mathematical surfaces" into Google you get a near endless list, including lots of raytraced models, for example: math.rug.nl/models –  Ryan Budney Jun 19 '11 at 3:13
    
math.rug.nl/models/Clebsch.html is beautiful. Now I want one! Actually: can someone give me the equations of the lines in the Clebsh surface? –  Mariano Suárez-Alvarez Jun 19 '11 at 3:24

3 Answers 3

up vote 43 down vote accepted

A really nice family of implicit surfaces in $\mathbb{R}^3$ are the Banchoff-Chmutov surfaces $$BC_n:=\{(x,y,z)\in\mathbb{R}^3\:;\:\: T_n(x)+T_n(y)+T_n(z)=0\},$$ where $T_n$ denotes the $n$-th Chebishev polynomial of the first kind, i.e. $$T_n(x):=\sum_{k=0}^{\lfloor n/2\rfloor} \binom{n}{2k} (x^2\!-\!1)^k x^{n-2k}.$$

  • a $\leftarrow BC_1\;\;\;$ $BC_2\rightarrow$ b
  • a $\leftarrow BC_3\;\;\;$ $BC_4\rightarrow$ b
  • a $\leftarrow BC_5\;\;\;$ $BC_6\rightarrow$ b
  • a $\leftarrow BC_7\;\;\;$ $BC_8\rightarrow$ b

What is the genus of $\mathbf{BC_{2n+2}}$? Code for plotting surfaces $BC_n$ in Mathematica 7:

BanchoffChmutov[n_] := ContourPlot3D[ChebyshevT[n,x]+ChebyshevT[n,y]+ChebyshevT[n,z], {x,-1.3,1.3}, {y,-1.3,1.3}, {z,-1.3,1.3}, Contours->0.02, AspectRatio->Automatic, Boxed->False, Axes->{False,False,False}, BoxRatios->Automatic, PlotRangePadding->None, PlotPoints->30, ViewPoint->{-2,3,3}]
surfacesBCn = Table[BanchoffChmutov[i], {i, 8}]
Table[ChebyshevT[n,x]+ChebyshevT[n,y]+ChebyshevT[n,z], {n, 8}]

Other miscellaneous increasingly pretty examples, that I managed to construct myself, include:

$$\begin{array}{r l} \small \{(x,y,z)\in\mathbb{R}^3\:;\:\: & \small (x-2)^2(x+2)^2+(y-2)^2(y+2)^2+(z-2)^2(z+2)^2+\\ & \small 3(x^2y^2+x^2z^2+y^2z^2)+6*x*y*z-10(x^2+y^2+z^2)+22=0\} \end{array}$$ enter image description here

$$\begin{array}{r l} \small \{(x,y,z)\in\mathbb{R}^3\:;\: & \small ((x-1)x^2(x+1)+y^2)^2+\\ & \small ((y-1)y^2(y+1)+z^2)^2+\\ & \small 0.1y^2+0.05(y-1)y^2(y+1)=0\} \end{array}$$ enter image description here

$$\begin{array}{r l} \small \{(x,y,z)\in\mathbb{R}^3\:;\: & \small 15((x-1.2)x^2(x+1.2)+y^2)^2+0.8(z-1)z^2(z+1)-0.1z^2+\\ & \small 20((y-0.8)y^2(y+0.8)+z^2)^2+0.8(x-1)z^2(x+1)-0.1x^2=0\} \end{array}$$ enter image description here

$$\begin{array}{r l} \small \{(x,y,z)\in\mathbb{R}^3\:;\: & \small ((x^2+y^2-0.85^2)^2+(z^2-1)^2)*\\ & \small ((y^2+z^2-0.85^2)^2+(x^2-1)^2)*\\ & \small ((z^2+x^2-0.85^2)^2+(y^2-1)^2)-0.001=0\} \end{array}$$ enter image description here

$$\begin{array}{r l} \small \{(x,y,z)\in\mathbb{R}^3\:;\: & \small (3(x-1)x^2(x+1)+2y^2)^2+(z^2-0.85)^2*\\ & \small (3(y-1)y^2(y+1)+2z^2)^2+(x^2-0.85)^2*\\ & \small (3(z-1)z^2(z+1)+2x^2)^2+(y^2-0.85)^2* -0.12=0\} \end{array}$$ enter image description here

$$\begin{array}{r l} \small \{(x,y,z)\in\mathbb{R}^3\:;\: & \small (2.92(x-1)x^2(x+1)+1.7y^2)^2*(y^2-0.88)^2+\\ & \small (2.92(y-1)y^2(y+1)+1.7z^2)^2*(z^2-0.88)^2+\\ & \small (2.92(z-1)z^2(z+1)+1.7x^2)^2*(x^2-0.88)^2 -0.02=0\} \end{array}$$ enter image description here

Hope you enjoy them...


Note also, that all of these examples have the form $\{(x,y,z)\in\mathbb{R}^3;\:P(x,y,z)=0\}=P^{-1}(0)$. They are $2$-manifolds (surfaces). To see this not only with your eyes but also in theory, compute the matrix $$\left[\frac{\partial P}{\partial x},\frac{\partial P}{\partial y},\frac{\partial P}{\partial z}\right]$$ at all the points of $P^{-1}(0)$ and find out (haven't done this myself) that the matrix is non-zero, which by implicit function theorem means that $P^{-1}(0)$ is a $3-1=2$ manifold.


Also, if you change the definition of $\{(x,y,z)\in\mathbb{R}^3;\:P(x,y,z)=0\}=P^{-1}(0)$ to $$\{(x,y,z)\in\mathbb{R}^3;\:P(x,y,z)\leq 0\}$$ or $$\{(x,y,z)\in\mathbb{R}^3;\:P(x,y,z)\geq 0\},$$ you get a $3$-manifold (because $0$ is a regular value of $P$) with the boundary $\{(x,y,z)\in\mathbb{R}^3;\:P(x,y,z)=0\}$, i.e. the surface $P^{-1}(0)$ with either it's interior or exterior "filled".


ADDITION (how to construct such surfaces): @Soarer, You never try to guess such a complicated polynomial. Here's the key to constructing such surfaces: step by step. You discover on the web, that the torus is $$\{P(x,y,z):=(x^2+y^2-0.7^2)^2+ z^2=0\}.$$ Then you learn that $$\{P(x-a,y-b,z-c)=0\}$$ is torus, translated by $(a,b,c)\in\mathbb{R}^3$. Also, you notice, that $$\{P(y,z,x)=0\}\text{ and }\{P(z,x,y)=0\}$$ is a torus with coordinate lines permuted (rotated by 90°) and $$\{P(ax,by,cz)=0\}$$ is a torus, stretched in x-direction by factor $1/a$, etc. Next, you see that $$\{P(x,y,z)\cdot Q(x,y,z)=0\}=\{P(x,y,z)=0\}\cup\{Q(x,y,z)=0\}.$$ Using all these techniques step by step, and being very patient, you manage to discover the following construction

enter image description here

using the code (Mathematica 7):

implicitSurface[p_String, zoom_, quality_Integer, view_List] := 
  ContourPlot3D[ToExpression[p], {x,-zoom,zoom}, {y,-zoom,zoom}, {z,-zoom,
  zoom}, Contours->0.02, Mesh->Automatic, AspectRatio->Automatic, Boxed->
  False, Axes->{False,False,False}, BoxRatios->Automatic, PlotRange->All, 
  PlotRangePadding->None, PlotPoints->quality, ViewPoint->view];
surfaces = {
  implicitSurface["(x^2+y^2-0.7^2)^2+ z^2", 1.2, 10, {0.3, -0.8, 1}],
  implicitSurface["(x^2+y^2-0.7^2)^2+(z^2-1)^2-0.05", 
                   1.2, 10, {1.3, -1.0, 2}],
  implicitSurface["(1.2y^2-1)^2*(x^2+y^2-1^2)^2+
                   (1.2z^2-1)^2*(y^2+z^2-1^2)^2+
                   (1.2x^2-1)^2*(z^2+x^2-1^2)^2-0.02", 
                   1.5, 10, {1.3, -1.0, 1.5}],
  implicitSurface["((x^2+y^2-0.85^2)^2+(z^2-1)^2)*
                   ((y^2+z^2-0.85^2)^2+(x^2-1)^2)*
                   ((z^2+x^2-0.85^2)^2+(y^2-1)^2)-0.001", 
                   1.2, 50, {1.2, -1.0, 1.3}],
  implicitSurface["(3(x-1)x^2(x+1)+y^2)^2+ 2z^2", 
                   1.2, 10, {0.3, -0.8, 1}],
  implicitSurface["(3(x-1)x^2(x+1)+y^2)^2+(2z^2-1)^2-0.005", 
                   1.2, 10, {0.3, -0.8, 1}],
  implicitSurface["(3(x-1)x^2(x+1)+2y^2)^2+(z^2-0.85)^2*
                   (3(y-1)y^2(y+1)+2z^2)^2+(x^2-0.85)^2*
                   (3(z-1)z^2(z+1)+2x^2)^2+(y^2-0.85)^2* -0.12", 
                   2, 80, {1, -1.8, 1.7}],
  implicitSurface["(2.92(x-1)x^2(x+1)+1.7y^2)^2*(y^2-0.88)^2+
                   (2.92(y-1)y^2(y+1)+1.7z^2)^2*(z^2-0.88)^2+
                   (2.92(z-1)z^2(z+1)+1.7x^2)^2*(x^2-0.88)^2 -0.02", 
                   2, 20, {0.4, -1.8, 1.3}]
  }

Of course, some of the examples were obtained just with a lot of trying and intelligent guessing.

It is apparent that one can construct surfaces, as complicated as one wishes, via these steps, but each time a new component is added ($P^{-1}(0) \mapsto (P\cdot Q)^{-1}(0)$), the degree of the polynomial increases, which presents considerable numerical problems when plotting the surface.


P.S. I hope I haven't made any mistakes when I copied the code. If so, please inform me, to check with my original Mathematica file.

P.P.S The above surfaces were included, as examples, in my diploma.

share|improve this answer
7  
These are incredibly cool. –  Leonardo Fontoura Jun 19 '11 at 3:45
1  
How did you write down the equations? Take your "first miscellaneous example" as an example, it's natural to imagine a surface like that, but I have no idea how to write down the equations.. –  Soarer Jun 19 '11 at 4:52
    
@Soarer: I've added a fairly general "recipe" for construction. –  Leon Lampret Jun 19 '11 at 6:49
1  
Great stuff, Leon. –  ThudanBlunder Jun 20 '11 at 7:57
    
beautiful pictures! –  Otis Aug 28 '12 at 6:53

Reposting my comment as requested:

There is a wealth of documentation on Wolfram's Mathworld: http://mathworld.wolfram.com/topics/Surfaces.html

I've also, not too long ago, seen a pdf file that had pictures and Mathematica code for a lot of these surfaces; if I can dig it out of my history I will post it as well.

share|improve this answer

Comlpete minimal surfaces, discovered circa 1985. For example, Meeks' surfaces.

share|improve this answer
    
Those are really nice, but what are the implicit equations? –  Leon Lampret Jun 19 '11 at 8:17

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.