sphereeversion(6) XScreenSaver manual sphereeversion(6)
NAME
sphereeversion - Displays a sphere eversion.
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]
DESCRIPTION
The
sphereeversion program shows a sphere eversion, i.e., a smooth
deformation (homotopy) that turns a sphere inside out. During the
eversion, the deformed sphere is allowed to intersect itself
transversally. However, no creases or pinch points are allowed to
occur.
The sphere can be deformed with two eversion methods: analytic or
corrugations. The analytic sphere eversion method is described in the
following paper: 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, and the
accompanying booklet: Silvio Levy: "Making Waves - A Guide to the
Ideas Behind Outside In", A K Peters, Wellesley, MA, 1995. See also
the section "Brief Description of the Corrugations Sphere Eversion
Method" below.
The deformed sphere can be projected to the screen either
perspectively or orthographically.
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.
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, i.e., bands that run along the parallels (lines of
latitude) or bands that run along the meridians (lines of longitude)
of the sphere. If random mode is selected, the appearance is changed
each time an eversion has been completed.
For the analytic sphere eversion, it is also possible to display a
graticule (i.e., a coordinate grid consisting 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.
The colors with with the sphere is drawn can be set to two-sided,
parallel, meridian, earth, or random. In two-sided mode, 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). In parallel mode, 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. In
meridian mode, the 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. In earth mode, 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. Since an eversion transforms the sphere into its inverse,
the earth by night will appear with all continents mirror reversed.
If random mode is selected, the color scheme is changed each time an
eversion has been completed.
By default, the sphere is rotated to a new viewing position each time
an eversion has been completed. In addition, it is 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, however, it is suggested to
rotate only around the z axis while the sphere is deforming.
For the analytic sphere eversion, it is possible to define a surface
order of the sphere eversion as random or as a value between 2 and 5.
This determines the the complexity of the deformation. 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. 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
The corrugations sphere eversion method is described in detail in the
video and booklet mentioned above. Briefly, the method works as
follows: 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.
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 is 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 is possible to display only one hemisphere using the
option
--hemispheres-1. This allows 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.
Note that the options described above are only intended for
educational purposes. They are not used if none of them are
explicitly specified.
OPTIONS
sphereeversion accepts the following options:
--window Draw on a newly-created window. This is the default.
--root Draw on the root window.
--window-id number Draw on the specified window.
--install Install a private colormap for the window.
--visual visual Specify which visual to use. Legal values are the name of a
visual class, or the id number (decimal or hex) of a specific
visual.
--delay microseconds How much of a delay should be introduced between steps of the
animation. Default 10000, or 1/100th second.
--fps Display the current frame rate, CPU load, and polygon count.
The following three options are mutually exclusive. They determine
which sphere eversion method is used.
--eversion-method random Use a random sphere eversion method (default).
--eversion-method analytic (Shortcut:
--analytic)
Use the analytic sphere eversion method.
--eversion-method corrugations (Shortcut:
--corrugations)
Use the corrugations sphere eversion method.
The following three options are mutually exclusive. They determine
how the deformed sphere is 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.
The following four options are mutually exclusive. They determine
the appearance of the deformed sphere.
--appearance random Display the sphere with a random appearance (default).
--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.
The following three options are mutually exclusive. They determine
whether a graticule is displayed on top of the sphere. These options
only have an effect 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.
The following five options are mutually exclusive. They determine
how to color the deformed sphere.
--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 (analytic eversion) or gold on one side and
purple on the other side (corrugations eversion).
--colors parallel (Shortcut:
--parallel-colors)
Display the sphere with colors that run from 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. 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 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. 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 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. Since an eversion transforms the sphere into its
inverse, the earth by night will appear with all continents
mirror reversed.
The following option determines the deformation speed.
--deformation-speed float The deformation speed is measured in percent of some sensible
maximum speed (default: 10.0).
The following three options are mutually exclusive. They determine
how the deformed sphere is projected from 3d to 2d (i.e., to the
screen).
--projection random Project the sphere from 3d to 2d using a random projection
mode (default).
--projection perspective (Shortcut:
--perspective)
Project the sphere from 3d to 2d using a perspective
projection.
--projection orthographic (Shortcut:
--orthographic)
Project the sphere from 3d to 2d using an orthographic
projection.
The following option determines the order of the surface to be
displayed. This option only has an effect if the analytic sphere
eversion method is selected.
--surface-order order The surface order can be set to random or to a value between
2 and 5 (default: random). This determines the the
complexity of the deformation.
The following four options are mutually exclusive. They determine
how many lunes of the sphere are displayed. 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).
The following two options are mutually exclusive. They determine how
many hemispheres of the sphere are displayed. These options only
have 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).
The following three options determine the rotation speed of the
deformed sphere around the three possible axes. The rotation speed
is measured in degrees per frame. The speeds should be set to
relatively small values, e.g., less than 4 in magnitude.
--speed-x float Rotation speed around the x axis (default: 0.0).
--speed-y float Rotation speed around the y axis (default: 0.0).
--speed-z float Rotation speed around the z axis (default: 0.0).
INTERACTION
If you run this program in standalone mode, you can rotate the
deformed sphere by dragging the mouse while pressing the left mouse
button. This rotates the sphere in 3d. To examine the deformed
sphere at your leisure, it is best to set all speeds to 0.
Otherwise, the deformed sphere will rotate while the left mouse
button is not pressed.
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 the RESOURCE_MANAGER property.
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 (C) 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.
AUTHOR
Carsten Steger <carsten@mirsanmir.org>, 01-jun-2020.
X Version 11 6.09 (07-Jun-2024) sphereeversion(6)