Sphere eversion

Arnaud Chéritat, C.N.R.S.

Illustrating Mathematics
Providence, July 2016

Setting: deformable surfaces. Topology
 = 
To evert a sphere is to turn it inside-out.
A practical way is to poke a hole an pull the surface through it.
cut 
Differential geometers are interested in a trickier way:
The movie Outside-In explains the rules very well.
cut

It is very hard to evert the sphere with these rules.
In the late 1950s, when Smale discovered that it was possible he surprised everyone.

But his proof was non-constructive:

This posed an irresistible puzzle to geometers.
1966: A. Phillips
Scientific American
1960: A. Shapiro
1979: Francis and Morin
?1966 B. Morin
1979: J.P. Petit and Morin
Pour la science

1970: chickenwire models
(C. Pugh)
1976: Movie (N. Max & co)

19××: D. Hakon
unpublished
1974: B. Thurston
1994: Movie Outside In
Geometry Center
1995: J. Sullivan
1998: Movie Optiverse
2010: Movie Holiverse
I. Atchinson
1996: de Neve
2015: Movie by C. Hills
It is easier to evert a torus.
I made a movie in 2008, using POV-Ray.
Almost everything is a piece of simple primitives : cylinders, tori. In some moments in the movie there are joints made of pieces of algebraic surfaces (show source extracts).

Curves
Winding number.
The winding number is invariant under deformation.
Conversely, the Whitney-Graustein theorem (1937) states that if two curves have the same winding number \(w\neq 0\) then each can be deformed into the other.
For the eversion, I just need to improve a little bit the Whitney-Graustein theorem: the set of curves* with a given winding number is not only connected, but also contractible.
Whitney's article introduced an explicit interpolation formula that turns out to be quite easy to program. Call w ≠ 0 the winding number. First rescale the two curves γ0 and γ1 so that they both have the same arclenght \(L\).
Let \(s\in(0,L)\to f_0(s)\) be a parameterization of γ0 by arclength. Denote
\(f_0'(s)=(r,\angle\theta)=(1, \angle g_0(s))\).
Define
\(g_t(s)=\operatorname{lin}(g_0(s),g_1(s),t)\)
with
\(\operatorname{lin}(a,b,t)=(1-t)a+tb.\)
and let \(f_t\) be defined by \(f_t(0)=\operatorname{lin}(f_0(0),f_1(0),t)\) and
\(f_t'(s)=(1,\angle g_t(s))\).
It does not work: the curves γt do not close.
Awesome trick by Whitney: correct by a linear function of s.

\(\displaystyle\widetilde{f_t}(s)=f_t(s) - (f_t(1)-f_t(0)) \frac{s}L\)

Time:
Correct:
Whitney's formula varies regularly when the curves varies.
Untie:

Move loop:
Model
Slices
Smooth surfaces, self-intersecting or not, are called immersed.

The tangent plane at the highest/lowest point of a surface is necessarily horizontal.

Theorem : Assume a closed surface is immersed in space so that its tangent plane is horizontal at only two points. Then it can be untied into a Euclidean sphere by the procedure above.
In the next slides, I introduce two particular examples of such immersions and show a tomography.
surf
surf

 

 

 

 

 
Movie
I the clips were made in POV-Ray by Jos Leys, following my instructions. He lives in Belgium, is a retired engineer involved in the movies Dimensions and Chaos with Étienne Ghys and Aurélien Alvarez.
[Show interface]
  • POV-Ray works via a scene description language.
  • The language is Turing complete, which means you can actually program with it.
  • There is a GUI for editing the scene scripts.
  • There is no GUI for manipulating the objects.
Our 3D models are entirely designed by formulae. We used surface meshes (surfaces defined by many polygons), either closed or open-and-completed by a sphere minus a clipping mesh.
However it became time consuming to do the programming in POV-Ray and to run these programs.
It was also time consuming to fine tune parameters while communicating by email.
So I decided to write a command-line C++ program that provides the meshes. [Show sources]. Meshes are too big and numerous to be sent via the Internet so I would send the programs to Jos who would run them directly on his computer.
Mathematical
model
Program
Mesh
Rendering
C++
Windows
Console
POV-Ray
Models
Designing the mathematical models was not easy either.
We want class \(C^{1+\mathrm{Lip}}\). [Comment]

We want the horizontal slices to look nice, this induces a distorsion: [Show meshes on Blender]

Solution: vertical stretch.
Problem of this solution: elongated shapes were too suggestive.
Loops
Loops
Rolling the shape
\( x,y\mapsto\left\{\begin{array}{l}r=1-y \\ \theta=x\end{array}\right. \qquad\text{ vs }\qquad x,y\mapsto\left\{\begin{array}{l}r=\exp(-y) \\ \theta=x\end{array}\right. \)
exp 
Isotopy
Curiously this is the part of the movie that required the most time to program.

We use a curve s ↦ p(s) drawn on the sphere that we deforme as time passes: this curve represents (roughly) where the tube is attached.

For each point p(s) in a discrete version of this curve we draw a discrete loop contained in a plane passing by the point p(s).

Plane not orthogonal to curve! [Show meshes on Blender, slices]

This gives another good reason to work with a round sphere: computations are easier.
Basic move
surf inter
By this I mean the little curve dance whose trace in space created/absorbed a pair of tubes on opposite faces.
Basic move
How do we parameterize such a curve/movement?

We already have an untying device... the WG procedure!

However we cannot use it because it moves points of the circle that we want to keep still. So I had to resort on less clean methods.
[explain, show common.cc]
corr. 1 corr. 2
More aspects

Avoid determining intersection with a plane.

\(C^{1+\mathrm{Lip}}\) plumbing.

Counting transitions.

Rendering: thin triangles and computing vertex normals (MWSELR).

3D printing
Finish
Bonus
Display stands.
Matter: hardboard, precise drilling, fiberglass PMMA beams (plexiglas), glue. Polish.
Future
The end