Provided by: xscreensaver-gl_6.08+dfsg1-1ubuntu3_amd64 bug

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 © 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.