Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
etruscanvenus(6)	       XScreenSaver manual		etruscanvenus(6)

NAME
     etruscanvenus  -  Draws  a 3d immersion of a Klein bottle that smoothly de-
     forms between the Etruscan Venus surface, the Roman surface, the  Boy  sur-
     face surface, and the Ida surface.

SYNOPSIS
     etruscanvenus [--display host:display.screen] [--install] [--visual visual]
     [--window]  [--root]  [--window-id  number] [--delay usecs] [--fps] [--mode
     display-mode] [--wireframe] [--surface] [--transparent]  [--appearance  ap-
     pearance] [--solid] [--distance-bands] [--direction-bands] [--colors color-
     scheme]  [--onesided-colors] [--twosided-colors] [--distance-colors] [--di-
     rection-colors]  [--no-change-colors]  [--view-mode   view-mode]	[--walk]
     [--turn]  [--no-deform]  [--deformation-speed float] [--initial-deformation
     float] [--etruscan-venus] [--roman] [--boy]  [--ida]  [--orientation-marks]
     [--projection  mode]  [--perspective]  [--orthographic]  [--speed-x  float]
     [--speed-y float] [--speed-z float] [--walk-direction float]  [--walk-speed
     float]

DESCRIPTION
     The  etruscanvenus  program  shows  a  3d	immersion of a Klein bottle that
     smoothly deforms between the Etruscan Venus surface, the Roman surface, the
     Boy surface, and the Ida surface.	You can walk on the Klein bottle or turn
     it in 3d.	Topologically, all surfaces are Klein bottles,	even  the  Roman
     and  Boy  surfaces,  which are doubly covered and therefore appear to be an
     immersed real projective plane.  The smooth deformation between these  sur-
     faces was constructed by George K. Francis.

     The  Klein  bottle is a non-orientable surface.  To make this apparent, the
     two-sided color mode  can	be  used.   Alternatively,  orientation  markers
     (curling  arrows) can be drawn as a texture map on the surface of the Klein
     bottle.  While walking on the Klein bottle, you will notice that the orien-
     tation of the curling arrows changes (which it must because the Klein  bot-
     tle is non-orientable).  Since all the surfaces except the Ida surface have
     points  where the surface normal is not well defined for some points, walk-
     ing is only performed on the Ida surface.

     As mentioned above, the Roman and	Boy  surfaces  are  doubly  covered  and
     therefore	appear	to  be an immersed real projective plane.  Since some of
     the parameter names are based on this interpretation of  the  surface,  the
     geometry  of  the real projective plane will be briefly disussed.	The real
     projective plane is a model for the projective geometry in 2d  space.   One
     point  can  be singled out as the origin.	A line can be singled out as the
     line at infinity, i.e., a line that lies at an  infinite  distance  to  the
     origin.   The  line  at  infinity is topologically a circle.  Points on the
     line at infinity are also used to model directions in projective  geometry.
     Direction	and  distance bands refer to this interpretation of the surface.
     If direction bands are used, the bands extend from the origin of  the  pro-
     jective  plane  in different directions to the line at infinity and back to
     the origin.  If distance bands are used, the bands  lie  at  constant  dis-
     tances to the origin.  The same interpretation is used for distance and di-
     rection colors.  Although there is no conceptually equivalent geometric in-
     terpretation  for the two Klein bottle surfaces (the Etruscan Venus and Ida
     surfaces), the smooth deformation between the surfaces results in a natural
     extension of these concepts to the Klein bottle surfaces.

     The immersed surfaces can be projected to the screen  either  perspectively
     or  orthographically.   When using the walking mode, perspective projection
     to the screen will be used.

     There are three display modes  for  the  Klein  bottle:  mesh  (wireframe),
     solid,  or  transparent.  Furthermore, the appearance of the surface can be
     as a solid object or as a set of see-through bands.  The bands can be  dis-
     tance bands or direction bands, as explained above.

     The  colors  with	with  the surface is drawn can be set to one-sided, two-
     sided, distance, or direction.  In one-sided mode,  the  surface  is  drawn
     with  the	same  color  on both sides of the underlying triangles.  In two-
     sided mode, the surface is drawn with one color on one side of the underly-
     ing triangles and the complementary color on the  other  side.   Since  the
     surface actually only has one side, the color jumps from red to green along
     a	line  on  the surface.	This mode enables you to see that the surface is
     non-orientable.  In distance mode, the surface is displayed with fully sat-
     urated colors that depend on the distance of the points on  the  projective
     plane  to	the  origin, as described above.  If the surface is displayed as
     distance bands, each band will be displayed with a different color.  In di-
     rection mode, the surface is displayed with fully saturated colors that de-
     pend on the angle of the points on the projective plane with respect to the
     origin (see above for an explanation).  If the surface is displayed as  di-
     rection  bands,  each  band  will be displayed with a different color.  The
     colors used to color the surface can either be static or can be changed dy-
     namically.

     The rotation speed for each of the three coordinate axes around  which  the
     Klein bottle rotates can be chosen.

     Furthermore,  in  the  walking  mode  the	walking direction in the 2d base
     square of the surface and the walking speed can be chosen.  The walking di-
     rection is measured as an angle in degrees in the 2d square that forms  the
     coordinate  system of the surface.  A value of 0 or 180 means that the walk
     is along a circle at a randomly chosen distance from the  origin  (parallel
     to  a distance band).  A value of 90 or 270 means that the walk is directly
     along a direction band.  Any other value results in a curved path along the
     surface.  As noted above, walking is performed only on the Ida surface.

     By default, the immersion of the Klein bottle smoothly deforms between  the
     Etruscan  Venus  surface,	the  Roman surface, the Boy surface, and the Ida
     surface.  It is possible to choose the speed of the deformation.	Further-
     more, it is possible to switch the deformation off.  It is also possible to
     determine	the initial deformation of the immersion.  This is mostly useful
     if the deformation is switched off, in which case it will determine the ap-
     pearance of the surface.  A value of 0 corresponds to  the  Etruscan  Venus
     surface,  a  value of 1000 to the Roman surface, a value of 2000 to the Boy
     surface, and a value of 3000 to the Ida surface.

     This program is inspired by George K. Francis's book  "A  Topological  Pic-
     turebook",  Springer,  1987,  by  George  K.  Francis's paper "The Etruscan
     Venus" in P. Concus, R. Finn, and D. A. Hoffman:  "Geometric  Analysis  and
     Computer  Graphics",  Springer, 1991, and by a video entitled "The Etruscan
     Venus" by Donna J. Cox, George K. Francis, and  Raymond  L.  Idaszak,  pre-
     sented at SIGGRAPH 1989.

OPTIONS
     etruscanvenus 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 ani-
	     mation.  Default 10000, or 1/100th second.

     --fps   Display the current frame rate, CPU load, and polygon count.

     The following four options are mutually exclusive.  They determine how  the
     Klein bottle is displayed.

     --mode random
	     Display the Klein bottle in a random display mode (default).

     --mode wireframe (Shortcut: --wireframe)
	     Display the Klein bottle as a wireframe mesh.

     --mode surface (Shortcut: --surface)
	     Display the Klein bottle as a solid surface.

     --mode transparent (Shortcut: --transparent)
	     Display the Klein bottle as a transparent surface.

     The  following four options are mutually exclusive.  They determine the ap-
     pearance of the Klein bottle.

     --appearance random
	     Display the Klein bottle with a random appearance (default).

     --appearance solid (Shortcut: --solid)
	     Display the Klein bottle as a solid object.

     --appearance distance-bands (Shortcut: --distance-bands)
	     Display the Klein bottle as see-through bands that lie at	increas-
	     ing distances from the origin (see above for an explanation).

     --appearance direction-bands (Shortcut: --direction-bands)
	     Display  the Klein bottle as see-through bands that lie at increas-
	     ing angles with respect to the origin (see above  for  an	explana-
	     tion).

     The  following  five options are mutually exclusive.  They determine how to
     color the Klein bottle.

     --colors random
	     Display the Klein bottle with a random color scheme (default).

     --colors onesided (Shortcut: --onesided-colors)
	     Display the Klein bottle with a single color.

     --colors twosided (Shortcut: --twosided-colors)
	     Display the Klein bottle with two colors: one color on  one  "side"
	     and the complementary color on the "other side."

     --colors distance (Shortcut: --distance-colors)
	     Display the Klein bottle with fully saturated colors that depend on
	     the  distance  of	the points on the projective plane to the origin
	     (see above for an explanation).  If the Klein bottle  is  displayed
	     as  distance  bands,  each  band will be displayed with a different
	     color.

     --colors direction (Shortcut: --direction-colors)
	     Display the Klein bottle with fully saturated colors that depend on
	     the angle of the points on the projective plane with respect to the
	     origin (see above for an explanation).  If the Klein bottle is dis-
	     played as direction bands, each band will be displayed with a  dif-
	     ferent color.

     The  following  options  determine  whether the colors with which the Klein
     bottle are displayed are static or are changing dynamically.

     --change-colors
	     Change the colors with which the Klein bottle is displayed  dynami-
	     cally (default).

     --no-change-colors
	     Use static colors to display the Klein bottle.

     The  following three options are mutually exclusive.  They determine how to
     view the Klein bottle.

     --view-mode random
	     View the Klein bottle in a random view mode (default).  The walking
	     mode will be randomly selected in approximately 10% of the cases.

     --view-mode turn (Shortcut: --turn)
	     View the Klein bottle while it turns in 3d.

     --view-mode walk (Shortcut: --walk)
	     View the Klein bottle as if walking on its surface.

     The following options determine whether the surface is being deformed.

     --deform
	     Deform the surface smoothly between the Etruscan Venus surface, the
	     Roman surface, the Boy surface surface, and the  Ida  surface  (de-
	     fault).

     --no-deform
	     Don't deform the surface.

     The following option determines the deformation speed.

     --deformation-speed float
	     The deformation speed is measured in percent of some sensible maxi-
	     mum speed (default: 10.0).

     The following options determine the initial deformation of the surface.  As
     described above, this is mostly useful if --no-deform is specified.

     --initial-deformation float
	     The  initial  deformation	is  specified  as a number between 0 and
	     4000.  A value of 0 corresponds to the Etruscan  Venus  surface,  a
	     value of 1000 to the Roman surface, a value of 2000 to the Boy sur-
	     face, and a value of 3000 to the Ida surface.  The default value is
	     0.

     --etruscan-venus
	     This is a shortcut for --initial-deformation 0.

     --roman
	     This is a shortcut for --initial-deformation 1000.

     --boy   This is a shortcut for --initial-deformation 2000.

     --ida   This is a shortcut for --initial-deformation 3000.

     The  following options determine whether orientation marks are shown on the
     Klein bottle.

     --orientation-marks
	     Display orientation marks on the Klein bottle.

     --no-orientation-marks
	     Don't display orientation marks on the Klein bottle (default).

     The following three options are mutually exclusive.  They determine how the
     Klain bottle is projected from 3d to 2d (i.e., to the screen).

     --projection random
	     Project the Klein bottle from 3d to 2d using  a  random  projection
	     mode (default).

     --projection perspective (Shortcut: --perspective)
	     Project  the Klein bottle from 3d to 2d using a perspective projec-
	     tion.

     --projection orthographic (Shortcut: --orthographic)
	     Project the Klein bottle from 3d to 2d using an  orthographic  pro-
	     jection.

     The  following three options determine the rotation speed of the Klein bot-
     tle around the three possible axes.  The rotation speed is measured in  de-
     grees  per  frame.   The  speeds  should be set to relatively small values,
     e.g., less than 4 in magnitude.  In walk mode, all speeds are ignored.

     --speed-x float
	     Rotation speed around the x axis (default: 1.1).

     --speed-y float
	     Rotation speed around the y axis (default: 1.3).

     --speed-z float
	     Rotation speed around the z axis (default: 1.5).

     The following two options determine the walking speed and direction.

     --walk-direction float
	     The walking direction is measured as an angle in degrees in the  2d
	     square that forms the coordinate system of the surface of the Klein
	     bottle (default: 83.0).  A value of 0 or 180 means that the walk is
	     along  a circle at a randomly chosen distance from the origin (par-
	     allel to a distance band).  A value of 90 or  270	means  that  the
	     walk  is  directly along a direction band.  Any other value results
	     in a curved path along the surface.  As  noted  above,  walking  is
	     performed only on the Ida surface.

     --walk-speed float
	     The  walking  speed is measured in percent of some sensible maximum
	     speed (default: 20.0).

INTERACTION
     If you run this program in standalone mode in its turn mode, you can rotate
     the Klein bottle by dragging the mouse while pressing the left  mouse  but-
     ton.   This rotates the Klein bottle in 3d.  To examine the Klein bottle at
     your leisure, it is best to set all speeds to 0.  Otherwise, the Klein bot-
     tle will rotate while the left mouse button is not pressed.  This	kind  of
     interaction is not available in the walk mode.

ENVIRONMENT
     DISPLAY
	     to get the default host and display number.

     XENVIRONMENT
	     to  get  the  name of a resource file that overrides the global re-
	     sources stored in the RESOURCE_MANAGER property.

     XSCREENSAVER_WINDOW
	     The window ID to use with --root.

SEE ALSO
     X(1), xscreensaver(1)

COPYRIGHT
     Copyright (C) 2019-2020 by Carsten Steger.  Permission to use,  copy,  mod-
     ify,  distribute, and sell this software and its documentation for any pur-
     pose is hereby granted without fee, provided that the above  copyright  no-
     tice appear in all copies and that both that copyright notice and this per-
     mission  notice appear in supporting documentation.  No representations are
     made about the suitability of this software for any purpose.   It	is  pro-
     vided "as is" without express or implied warranty.

AUTHOR
     Carsten Steger <carsten@mirsanmir.org>, 05-jan-2020.

X Version 11		       6.15 (30-Mar-2026)		etruscanvenus(6)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=etruscanvenus&sektion=6&manpath=FreeBSD+Ports+15.1.quarterly>

home | help