Skip to content

osbm/sphere-eversion-animation

Repository files navigation

Thurston's sphere eversion algorithm

Animation of Thurston's sphere eversion

Ported to javascript and visualized using three.js.

Here is the famous explainer video Outside In. And more info about the source C++ program here

From what i can tell this algorithm almost forgotten on the internet. Almost 3/4 of the links i find are dead. I hope this project can help keep it alive.

Credits

From the original cpp code that generates the geometry:

This file is part of "sphereEversion",
a program by Michael McGuffin.
The code in this file was almost entirely taken
(with slight adaptations) from the source code of
"evert", a program written by Nathaniel Thurston.
evert's source code can be down loaded from
    http://www.geom.umn.edu/docs/outreach/oi/software.html
    http://www.geom.uiuc.edu/docs/outreach/oi/software.html

Grateful acknowledgements go out to Nathaniel Thurston,
Silvio Levy, and the Geometry Center (University of Minnesota)
for making evert's source code freely available to the public.

Initially i just ported the C++ code to the Javascript as you can see here. But with the contributions of Joseph Faulkner this project has come to life. Please check him out, he is awesome. :)

Try it Yourself

If you want to play with this app without downloading the source code, here's a demo link: Sphere Eversion Demo

Up and running

Requirements

You don't necessarily need these same versions, but I'm listing the ones I used:

  • git (version 2.34.1)
  • node (version 21.4.0)
  • npm (version 10.2.4)

Commands

git clone https://github.com/osbm/sphere-eversion-animation.git
cd sphere-eversion-animation
npm install
npm start