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

  
 
  

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

NAME
     romanboy  - Draws a 3d immersion of the real projective plane that smoothly
     deforms between the Roman surface and the Boy surface.

SYNOPSIS
     romanboy  [--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] [--change-colors] [--view-mode view-mode] [--walk] [--turn]
     [--no-deform]  [--deformation-speed  float]  [--initial-deformation  float]
     [--roman] [--boy] [--surface-order number] [--orientation-marks] [--projec-
     tion  mode]  [--perspective]  [--orthographic] [--speed-x float] [--speed-y
     float] [--speed-z float] [--walk-direction float] [--walk-speed float]

DESCRIPTION
     The romanboy program shows a 3d immersion of the real projective plane that
     smoothly deforms between the Roman surface and the Boy  surface.	You  can
     walk  on the projective plane or turn in 3d.  The smooth deformation (homo-
     topy) between these two famous immersions of the real projective plane  was
     constructed by FranA<section>ois ApA(C)ry.

     The real projective plane is a non-orientable surface.  To make this appar-
     ent,  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  projective plane.  While walking on the projective plane, you will no-
     tice that the orientation of the curling arrows changes (which it must  be-
     cause the projective plane is non-orientable).

     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, like all lines in the projective
     plane, is topologically a circle.	Points on the line at infinity are  also
     used to model directions in projective geometry.  The origin can be visual-
     ized  in  different  manners.  When using distance colors (and using static
     colors), the origin is the point that is displayed as fully saturated  red,
     which  is easier to see as the center of the reddish area on the projective
     plane.  Alternatively, when using distance bands, the origin is the  center
     of  the only band that projects to a disk.  When using direction bands, the
     origin is the point where all direction bands collapse  to  a  point.   Fi-
     nally,  when  orientation	markers  are being displayed, the origin the the
     point where all orientation markers are compressed to a point.  The line at
     infinity can also be visualized in different  ways.   When  using	distance
     colors  (and using static colors), the line at infinity is the line that is
     displayed as fully saturated magenta.  When two-sided (and  static)  colors
     are  used,  the line at infinity lies at the points where the red and green
     "sides" of the projective plane meet (of course, the real projective  plane
     only  has	one side, so this is a design choice of the visualization).  Al-
     ternatively, when orientation markers are being displayed, the line at  in-
     finity is the place where the orientation markers change their orientation.

     Note  that  when the projective plane is displayed with bands, the orienta-
     tion markers are placed in the middle of the bands.   For	distance  bands,
     the bands are chosen in such a way that the band at the origin is only half
     as  wide as the remaining bands, which results in a disk being displayed at
     the origin that has the same diameter as the remaining bands.  This choice,
     however, also implies that the band at infinity is  half  as  wide  as  the
     other  bands.   Since the projective plane is attached to itself (in a com-
     plicated fashion) at the line at infinity, effectively the band at infinity
     is again as wide as the remaining bands.  However,  since	the  orientation
     markers  are displayed in the middle of the bands, this means that only one
     half of the orientation markers will be displayed twice at the line at  in-
     finity  if  distance bands are used.  If direction bands are used or if the
     projective plane is displayed as a solid surface, the  orientation  markers
     are displayed fully at the respective sides of the line at infinity.

     The  immersed  projective	plane can be projected to the screen either per-
     spectively or orthographically.  When using the walking modes,  perspective
     projection to the screen will be used.

     There  are  three display modes for the projective plane: mesh (wireframe),
     solid, or transparent.  Furthermore, the appearance of the projective plane
     can be as a solid object or as a set of see-through bands.  The  bands  can
     be  distance  bands,  i.e., bands that lie at increasing distances from the
     origin, or direction bands, i.e., bands that lie at increasing angles  with
     respect to the origin.

     When  the	projective  plane is displayed with direction bands, you will be
     able to see that each direction band (modulo the "pinching" at the  origin)
     is  a Moebius strip, which also shows that the projective plane is non-ori-
     entable.

     Finally, the colors with with the projective plane is drawn can be  set  to
     one-sided,  two-sided, distance, or direction.  In one-sided mode, the pro-
     jective plane is drawn with the same color on both "sides."   In  two-sided
     mode  (using  static colors), the projective plane is drawn with red on one
     "side" and green on the "other side."  As described above,  the  projective
     plane  only  has  one  side, so the color jumps from red to green along the
     line at infinity.	This mode enables you to see that the  projective  plane
     is non-orientable.  If changing colors are used in two-sided mode, changing
     complementary colors are used on the respective "sides."  In distance mode,
     the  projective  plane is displayed with fully saturated colors that depend
     on the distance of the points on the projective plane to  the  origin.   If
     static  colors  are used, the origin is displayed in red, while the line at
     infinity is displayed in magenta.	If the projective plane is displayed  as
     distance bands, each band will be displayed with a different color.  In di-
     rection mode, the projective plane is displayed with fully saturated colors
     that depend on the angle of the points on the projective plane with respect
     to  the  origin.  Angles in opposite directions to the origin (e.g., 15 and
     205 degrees) are displayed in the same color since  they  are  projectively
     equivalent.   If the projective plane is displayed as direction bands, each
     band will be displayed with a different color.

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

     Furthermore,  in  the  walking  mode  the	walking direction in the 2d base
     square of the projective plane and the walking speed can  be  chosen.   The
     walking  direction is measured as an angle in degrees in the 2d square that
     forms the coordinate system of the surface  of  the  projective  plane.   A
     value  of 0 or 180 means that the walk is along a circle at a randomly cho-
     sen distance from the origin (parallel to a distance band).  A value of  90
     or  270  means that the walk is directly from the origin to the line at in-
     finity and back (analogous to a direction band).  Any other  value  results
     in a curved path from the origin to the line at infinity and back.

     By default, the immersion of the real projective plane smoothly deforms be-
     tween  the  Roman	and Boy surfaces.  It is possible to choose the speed of
     the deformation.  Furthermore, it is possible  to	switch	the  deformation
     off.   It	is also possible to determine the initial deformation of the im-
     mersion.  This is mostly useful if the  deformation  is  switched	off,  in
     which case it will determine the appearance of the surface.

     As  a  final  option, it is possible to display generalized versions of the
     immersion discussed above by specifying the order of the surface.	The  de-
     fault  surface  order  of 3 results in the immersion of the real projective
     described above.  The surface order can be chosen between	2  and	9.   Odd
     surface  orders  result  in  generalized  immersions of the real projective
     plane, while even numbers result in a immersion  of  a  topological  sphere
     (which  is  orientable).  The most interesting even case is a surface order
     of 2, which results in an immersion of the halfway model of Morin's  sphere
     eversion (if the deformation is switched off).

     This  program  is	inspired by FranA<section>ois ApA(C)ry's book "Models of
     the Real Projective Plane", Vieweg, 1987.

OPTIONS
     romanboy 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
     projective plane is displayed.

     --mode random
	     Display the projective plane in a random display mode (default).

     --mode wireframe (Shortcut: --wireframe)
	     Display the projective plane as a wireframe mesh.

     --mode surface (Shortcut: --surface)
	     Display the projective plane as a solid surface.

     --mode transparent (Shortcut: --transparent)
	     Display the projective plane as a transparent surface.

     The following four options are mutually exclusive.  They determine the  ap-
     pearance of the projective plane.

     --appearance random
	     Display the projective plane with a random appearance (default).

     --appearance solid (Shortcut: --solid)
	     Display the projective plane as a solid object.

     --appearance distance-bands (Shortcut: --distance-bands)
	     Display  the  projective plane as see-through bands that lie at in-
	     creasing distances from the origin.

     --appearance direction-bands (Shortcut: --direction-bands)
	     Display the projective plane as see-through bands that lie  at  in-
	     creasing angles with respect to the origin.

     The  following  four options are mutually exclusive.  They determine how to
     color the projective plane.

     --colors random
	     Display the projective plane with a random color scheme (default).

     --colors onesided (Shortcut: --onesided-colors)
	     Display the projective plane with a single color.

     --colors twosided (Shortcut: --twosided-colors)
	     Display the projective plane with two colors: one color one  "side"
	     and  the  complementary color on the "other side."  For static col-
	     ors, the colors are red and green.  Note that the line at	infinity
	     lies  at  the points where the red and green "sides" of the projec-
	     tive plane meet, i.e., where  the	orientation  of  the  projective
	     plane reverses.

     --colors distance (Shortcut: --distance-colors)
	     Display  the  projective plane with fully saturated colors that de-
	     pend on the distance of the points on the projective plane  to  the
	     origin.   For  static colors, the origin is displayed in red, while
	     the line at infinity is displayed in magenta.   If  the  projective
	     plane  is	displayed as distance bands, each band will be displayed
	     with a different color.

     --colors direction (Shortcut: --direction-colors)
	     Display the projective plane with fully saturated colors  that  de-
	     pend  on  the  angle of the points on the projective plane with re-
	     spect to the origin.  Angles in opposite directions to  the  origin
	     (e.g.,  15  and  205 degrees) are displayed in the same color since
	     they are projectively equivalent.	If the projective plane 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  projec-
     tive plane is displayed are static or are changing dynamically.

     --change-colors
	     Change  the colors with which the projective plane is displayed dy-
	     namically.

     --no-change-colors
	     Use static colors to display the projective plane (default).

     The following three options are mutually exclusive.  They determine how  to
     view the projective plane.

     --view-mode random
	     View the projective plane in a random view mode (default).

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

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

     The following options determine whether the surface is being deformed.

     --deform
	     Deform the surface smoothly between the Roman and Boy surfaces (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
	     1000.  A value of 0 corresponds to the Roman surface, while a value
	     of 1000 corresponds to the Boy surface.  The default value is 1000.

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

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

     The following option determines the order of the surface to be displayed.

     --surface-order number
	     The surface order can be set to values between 2  and  9  (default:
	     3).   As  described above, odd surface orders result in generalized
	     immersions of the real projective plane, while even numbers  result
	     in a immersion of a topological sphere.

     The  following options determine whether orientation marks are shown on the
     projective plane.

     --orientation-marks
	     Display orientation marks on the projective plane.

     --no-orientation-marks
	     Don't display orientation marks on the projective plane (default).

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

     --projection random
	     Project the projective plane from 3d to 2d using a  random  projec-
	     tion mode (default).

     --projection perspective (Shortcut: --perspective)
	     Project the projective plane from 3d to 2d using a perspective pro-
	     jection.

     --projection orthographic (Shortcut: --orthographic)
	     Project  the  projective  plane from 3d to 2d using an orthographic
	     projection.

     The following three options determine the rotation speed of the  projective
     plane  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.  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  pro-
	     jective  plane (default: 83.0).  A value of 0 or 180 means that the
	     walk is along a circle at a randomly chosen distance from the  ori-
	     gin (parallel to a distance band).  A value of 90 or 270 means that
	     the  walk	is  directly from the origin to the line at infinity and
	     back (analogous to a direction band).  Any other value results in a
	     curved path from the origin to the line at infinity and back.

     --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  projective  plane  by dragging the mouse while pressing the left mouse
     button.  This rotates the projective plane in 3d.	To examine  the  projec-
     tive  plane at your leisure, it is best to set all speeds to 0.  Otherwise,
     the projective plane 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) 2013-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>, 06-jan-2020.

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

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

home | help