sphereeversion(6x)
π sphereeversion π
okay bestie, sit DOWN, because we're about to talk about sphereeversion(6x) β yes it's from the XScreenSaver manual, and yes it's genuinely one of the most iconic screensavers to ever exist. it shows a sphere eversion. that's it, that's the whole thing. π
β¨ NAME β¨
sphereeversion β displays a sphere eversion. no cap, that's literally what it does. π«Ά
πΈ SYNOPSIS πΈ
sphereeversion [--display host:display.screen] [--install] [--visual
visual] [--window] [--root] [--window-id number] [--delay usecs] [--fps]
[--eversion-method method] [--analytic] [--corrugations] [--mode
display-mode] [--surface] [--transparent] [--appearance appearance]
[--solid] [--parallel-bands] [--meridian-bands] [--graticule mode]
[--colors color-scheme] [--twosided-colors] [--parallel-colors]
[--meridian-colors] [--earth-colors] [--deformation-speed float]
[--projection mode] [--perspective] [--orthographic] [--surface-order
order] [--lunes-1] [--lunes-2] [--lunes-4] [--lunes-8] [--hemispheres-1]
[--hemispheres-2] [--speed-x float] [--speed-y float] [--speed-z float]
like yes, it's a lot of flags. we get there. you're gonna eat this up. π₯
π« DESCRIPTION π«
so the sphereeversion program shows a sphere eversion, which β and I need you to stay with me here β is a smooth deformation (homotopy) that turns a sphere inside out. like, the whole thing. flipped. π
and while the eversion is happening, the deformed sphere is allowed to intersect itself transversally. that's fine. that's part of the vibe. however β and this is the important bit β no creases or pinch points are allowed to occur. periodt. π ββοΈ
π¦ the two eversion methods π¦
the sphere can be deformed two different ways: analytic or corrugations.
- the analytic sphere eversion method is described in this paper, and I'm quoting it exactly because it's iconic: Adam Bednorz, Witold Bednorz: "Analytic sphere eversion using ruled surfaces", Differential Geometry and its Applications 64:59-79, 2019.
- the corrugations sphere eversion method is described in the video "Outside In" by the Geometry Center (Bill Thurston, Silvio Levy, Delle Maxwell, Tamara Munzner, Nathaniel Thurston, David Ben-Zvi, Matt Headrick, et al.), 1994 β <emphasis>yes</emphasis>, alongside the accompanying booklet: Silvio Levy: "Making Waves - A Guide to the Ideas Behind Outside In", A K Peters, Wellesley, MA, 1995.
also go read the section "Brief Description of the Corrugations Sphere Eversion Method" below, it's literally right there and it's so good. π
π projection, display modes, and appearances π
the deformed sphere can be projected to the screen either perspectively or orthographically. your call, bestie. π
there are three display modes for the sphere: solid, transparent, or random. if random mode is selected, the mode is changed each time an eversion has been completed. so it just keeps switching it up on you. main character energy fr. β¨
the appearance of the sphere can be as a solid object, as a set of see-through bands, or random. the bands can be parallel bands or meridian bands β meaning bands that run along the parallels (lines of latitude) or bands that run along the meridians (lines of longitude) of the sphere. and if random mode is selected? you guessed it, the appearance is changed each time an eversion has been completed. π
π the graticule (analytic only, iykyk) π
for the analytic sphere eversion, it's also possible to display a graticule β that's a coordinate grid made of parallel and meridian lines β on top of the surface. the graticule mode can be set to on, off, or random. if random mode is selected, the graticule mode is changed each time an eversion has been completed. consistent queen. π
π COLORS π (this part is so good)
the colors with which the sphere is drawn can be set to two-sided, parallel, meridian, earth, or random. let's break it down:
two-sidedβ the sphere is drawn with red on one side and green on the other side (analytic eversion), or with gold on one side and purple on the other side (corrugations eversion). two fits, both slay.parallelβ the sphere is displayed with colors that run from blue to white to orange on one side of the surface, and from magenta to black to green on the other side. the colors are aligned with the parallels of the sphere in this mode.meridianβ the sphere is displayed with colors that run from blue to white to orange to black and back to blue on one side of the surface, and from magenta to white to green to black and back to magenta on the other side. the colors are aligned with the meridians of the sphere in this mode.earthβ the sphere is drawn with a texture of earth by day on one side and with a texture of earth by night on the other side. initially, the earth by day is on the outside and the earth by night on the inside. after the first eversion, the earth by night will be on the outside. all points of the earth on the inside and outside are at the same positions on the sphere. and since an eversion transforms the sphere into its inverse, the earth by night will appear with all continents mirror reversed. this one is genuinely unhinged and I'm obsessed. ππrandomβ if random mode is selected, the color scheme is changed each time an eversion has been completed. slay, unpredictable, love that for us.
π ROTATION π
by default, the sphere is rotated to a new viewing position each time an eversion has been completed. and on top of that, it's possible to rotate the sphere while it is deforming. the rotation speed for each of the three coordinate axes around which the sphere rotates can be chosen arbitrarily. π‘
for best effects, though, it's suggested to rotate only around the z axis while the sphere is deforming. trust the process, bestie. π«
π SURFACE ORDER π (analytic only)
for the analytic sphere eversion, it's possible to define a surface order of the sphere eversion as random or as a value between 2 and 5. this determines the complexity of the deformation. β¨
and now the caveats, listen closely:
- for higher surface orders, some z-fighting might occur around the central stage of the eversion, which might lead to some irregular flickering of the displayed surface if it is displayed as a solid object. π
- for odd surface orders, z-fighting will occur very close to the central stage of the eversion, since the deformed sphere is a doubly covered Boy surface (for surface order 3) or a doubly covered generalized Boy surface (for surface order 5) in this case. π
- if you find this distracting, you should set the surface order to 2. problem solved, no notes. π
- if a random surface order is selected, the surface order is changed each time an eversion has been completed. β¨
π BRIEF DESCRIPTION OF THE CORRUGATIONS SPHERE EVERSION METHOD π
okay so this method is described in detail in the video and booklet mentioned above, but briefly? here's the tea. π«
imagine the sphere cut into eight spherical lunes (spherical biangles). now imagine each lune to be a belt. the ends of the belt β which correspond to the north and south poles of the sphere β are pushed past each other. this creates a loop in the belt. π
if the belt were straightened out, it would contain a 360 degree rotation. this rotation can be removed by rotating each end of the belt by 180 degrees. finally, the belt is pushed to the opposite side of the sphere, which causes the side of the belt that initially was inside the sphere to appear on the outside. π«
now, the method described so far only works for a single lune (belt) and not for the entire sphere. to make it work for the entire sphere, corrugations (i.e., waves) must be added to the sphere. this happens in the first phase of the eversion. then, the method described above is applied to the eight lunes. finally, the corrugations are removed to obtain the everted sphere. π
to see the eversion for a single lune, the option --lunes-1 can be used. using this option, the eversion, as described above, is easier to understand. it's also possible to display two lunes using --lunes-2 and four lunes using --lunes-4. using fewer than eight lunes reduces the visual complexity of the eversion and may help to understand the method. π¦
furthermore, it's possible to display only one hemisphere using the option --hemispheres-1. this allows you to see what is happening in the center of the sphere during the eversion. note that the north and south half of the sphere move in a symmetric fashion during the eversion. hence, the eversion is actually composed of 16 semi-lunes (spherical triangles from the equator to the poles) that all deform in the same manner. π
by specifying --lunes-1 --hemispheres-1, the deformation of one semi-lune can be observed. iconic combo, honestly. β¨
note that the options described above are only intended for educational purposes. they are not used if none of them are explicitly specified. so don't come for me if they don't do anything by default. π
π OPTIONS π
okay so sphereeversion takes all of these, and there are a lot of them, but honestly they're all cute little knobs you can twist. let's go one by one π
--windowβ draw on a freshly-created window. this is the default, it's the vibe β¨--rootβ draw on the root window instead.--window-idnumber β draw on the window you name by number.--installβ install a private colormap for the window. fancy.--visualvisual β tell it which visual to use. legal values are the name of a visual class, or the id number (decimal or hex) of a specific visual.--delaymicroseconds β how much of a delay should be introduced between steps of the animation. default is10000, which is 1/100th of a second. so chill.--fpsβ display the current frame rate, CPU load, and polygon count. nerd stats, we love to see it πΈ
the next three are mutually exclusive (pick one bestie, not all three π) β they decide which sphere eversion method gets used.
--eversion-method randomβ use a random sphere eversion method. this is the default.--eversion-method analytic(shortcut:--analytic) β use the analytic sphere eversion method.--eversion-method corrugations(shortcut:--corrugations) β use the corrugations sphere eversion method.
another mutually exclusive trio (yes another one, they're everywhere π) β these decide how the deformed sphere gets displayed.
--mode randomβ display the sphere in a random display mode. default!--mode surface(shortcut:--surface) β display the sphere as a solid surface.--mode transparent(shortcut:--transparent) β display the sphere as a transparent surface.
and here's a mutually exclusive group of four β these set the appearance of the deformed sphere.
--appearance randomβ display the sphere with a random appearance. default, obviously π--appearance solid(shortcut:--solid) β display the sphere as a solid object.--appearance parallel-bands(shortcut:--parallel-bands) β display the sphere as see-through bands that lie along the parallels of the sphere.--appearance meridian-bands(shortcut:--meridian-bands) β display the sphere as see-through bands that lie along the meridians of the sphere.
mutually exclusive trio number like five, whatever β these decide whether a graticule gets drawn on top of the sphere. heads up tho: these options only do anything if the analytic sphere eversion method is selected π
--graticule randomβ randomly choose whether to display a graticule. default.--graticule onβ display a graticule.--graticule offβ do not display a graticule.
ok now the mutually exclusive group of five (five!! π) β these are all about color, which is the best part obviously.
--colors randomβ display the sphere with a random color scheme. default.--colors twosided(shortcut:--twosided-colors) β display the sphere with two colors: red on one side and green on the other side (that's for the analytic eversion), or gold on one side and purple on the other side (that's for the corrugations eversion).--colors parallel(shortcut:--parallel-colors) β display the sphere with colors that run from blue to white to orange on one side of the surface, and from magenta to black to green on the other side. the colors are aligned with the parallels of the sphere. and if the sphere is displayed as parallel bands, each band will be displayed with a different color π--colors meridian(shortcut:--meridian-colors) β display the sphere with colors that run from blue to white to orange to black and back to blue on one side of the surface, and from magenta to white to green to black and back to magenta on the other side. the colors are aligned with the meridians of the sphere. and if the sphere is displayed as meridian bands, each band will be displayed with a different color π--colors earth(shortcut:--earth-colors) β display the sphere with a texture of earth by day on one side and a texture of earth by night on the other side. initially, the earth by day is on the outside and the earth by night is on the inside. after the first eversion, the earth by night will be on the outside. all points of the earth on the inside and the outside are at the same positions on the sphere. and since an eversion transforms the sphere into its inverse, the earth by night will appear with all continents mirror reversed πͺ
next one is a solo act, it's the only thing deciding deformation speed:
--deformation-speedfloat β the deformation speed, measured in percent of some sensible maximum speed. default:10.0.
mutually exclusive again (three this time) β these decide how the deformed sphere is projected from 3d to 2d, i.e. onto your actual screen.
--projection randomβ project the sphere from 3d to 2d using a random projection mode. default.--projection perspective(shortcut:--perspective) β project from 3d to 2d using a perspective projection.--projection orthographic(shortcut:--orthographic) β project from 3d to 2d using an orthographic projection.
this one sets the order of the surface to be displayed, and psst β it only does anything if the analytic sphere eversion method is selected.
--surface-orderorder β the surface order can be set torandomor to a value between2and5(default:random). this determines the complexity of the deformation.
mutually exclusive quartet β these decide how many lunes of the sphere get displayed. important: these options only have an effect if the corrugations sphere eversion method is selected.
--lunes-1β display one of the eight lunes that form the sphere.--lunes-2β display two of the eight lunes that form the sphere.--lunes-4β display four of the eight lunes that form the sphere.--lunes-8β display all eight lunes that form the sphere. default!
mutually exclusive pair for hemispheres. again, only an effect if the corrugations sphere eversion method is selected.
--hemispheres-1β display only one hemisphere of the sphere.--hemispheres-2β display both hemispheres of the sphere. default.
last three, and these are not mutually exclusive β they set the rotation speed of the deformed sphere around the three possible axes. the speed is measured in degrees per frame, and bestie, keep these small. like, less than 4 in magnitude. fr fr π«Ά
--speed-xfloat β rotation speed around the x axis. default:0.0.--speed-yfloat β rotation speed around the y axis. default:0.0.--speed-zfloat β rotation speed around the z axis. default:0.0.
π±οΈ INTERACTION π±οΈ
so if you run this program in standalone mode, you can rotate the deformed sphere by dragging the mouse while you're pressing the left mouse button. that rotates the sphere in 3d, no cap π
and if you want to examine the deformed sphere at your leisure (as you should, it's literally art), it is best to set all speeds to 0. otherwise the deformed sphere will just keep rotating on you whenever the left mouse button is not pressed. rude honestly π
πΏ ENVIRONMENT πΏ
DISPLAYβ to get the default host and display number.XENVIRONMENTβ to get the name of a resource file that overrides the global resources stored in theRESOURCE_MANAGERproperty.XSCREENSAVER_WINDOWβ the window ID to use with--root.
π SEE ALSO π
X(1)xscreensaver(1)https://profs.etsmtl.ca/mmcguffin/eversion/http://www.geom.uiuc.edu/docs/outreach/oi/software.html
π COPYRIGHT π
Copyright Β© 2020 by Carsten Steger. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
parts of the code in this program are based on the program "sphereEversion 0.4" by Michael J. McGuffin, which, in turn, is based on the program "Evert" developed by Nathaniel Thurston at the Geometry Center. the modified code is used with permission. credit where credit is due, periodt π
π« AUTHOR π«
Carsten Steger <carsten@mirsanmir.org>, 01-jun-2020.
and that's the whole page bestie π this is from X Version 11, version 6.17-1.fc44, dated 13-Oct-2026 β go evert a sphere, you've earned it β¨π¦
π¦ where this page comes from
- fedora 44: xscreensaver-gl-extras 1:6.17-1.fc44 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms