29
$\begingroup$

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.

$\endgroup$
5
  • 2
    $\begingroup$ There is a wealth of documentation on Wolfram's Mathworld: mathworld.wolfram.com/topics/Surfaces.html $\endgroup$ Commented Jun 19, 2011 at 1:38
  • $\begingroup$ Boy's surface.. $\endgroup$ Commented Jun 19, 2011 at 1:45
  • $\begingroup$ If you type "mathematical surfaces" into Google you get a near endless list, including lots of raytraced models, for example: math.rug.nl/models $\endgroup$ Commented Jun 19, 2011 at 3:13
  • $\begingroup$ 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? $\endgroup$ Commented Jun 19, 2011 at 3:24
  • $\begingroup$ @Mariano: I can't but Oliver Lab can (in German) see in particular chapter 3, but the general form looks rather messy. He has some cool pictures on his page algebraicsurface.net $\endgroup$ Commented Jun 19, 2011 at 15:40

4 Answers 4

62
$\begingroup$

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.

$\endgroup$
6
  • 10
    $\begingroup$ These are incredibly cool. $\endgroup$ Commented Jun 19, 2011 at 3:45
  • 2
    $\begingroup$ 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.. $\endgroup$ Commented Jun 19, 2011 at 4:52
  • 1
    $\begingroup$ @Soarer: I've added a fairly general "recipe" for construction. $\endgroup$ Commented Jun 19, 2011 at 6:49
  • 2
    $\begingroup$ beautiful pictures! $\endgroup$ Commented Aug 28, 2012 at 6:53
  • 2
    $\begingroup$ I can reproduce your last example but only by increasing the isolevel (e.g. 0.04 instead of 0.02). With 0.02, the result I get is not connex. $\endgroup$ Commented Nov 23, 2018 at 8:01
6
$\begingroup$

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.

$\endgroup$
4
$\begingroup$

I like this "tetrahedron":

enter image description here

$$ x^4 + 2x^2y^2 + 2x^2z^2 + y^4 + 2y^2z^2 + z^4 + 8xyz - 10x^2 - 10y^2 - 10z^2 + 20 = 0. $$

The Entzensberger star:

enter image description here

$$ 400(x^2y^2+ y^2z^2+ x^2z^2) = {(1-x^2-y^2-z^2)}^3. $$

On the higher space forum you can find amazing implicit surfaces, especially those of the member ICN5D. These are 3D slices of surfaces in higher dimension. I reproduced some of them with Python, like this one:

Solid Möbius strip, introduced in this paper:

The Mandelbulb:

enter image description here

$\endgroup$
2
$\begingroup$

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

$\endgroup$
2
  • $\begingroup$ Those are really nice, but what are the implicit equations? $\endgroup$ Commented Jun 19, 2011 at 8:17
  • $\begingroup$ Maybe this link will give some more explicit information: indiana.edu/~minimal/research/claynotes.pdf $\endgroup$ Commented Nov 1, 2017 at 22:51

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.