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

FreeBSD Manual Pages

  
 
  

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]	[--ap-
       pearance	 appearance]  [--solid]	[--distance-bands] [--direction-bands]
       [--colors color-scheme] [--onesided-colors] [--twosided-colors] [--dis-
       tance-colors] [--direction-colors] [--change-colors] [--view-mode view-
       mode]  [--walk]	[--turn]  [--no-deform]	 [--deformation-speed	float]
       [--initial-deformation  float]  [--roman] [--boy] [--surface-order num-
       ber] [--orientation-marks] [--projection	mode]  [--perspective]	[--or-
       thographic]  [--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	defor-
       mation  (homotopy) between these	two famous immersions of the real pro-
       jective plane was constructed by	Franois	Apry.

       The real	projective plane is a non-orientable surface.	To  make  this
       apparent,  the two-sided	color mode can be used.	 Alternatively,	orien-
       tation 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 notice that  the	 orientation  of  the  curling	arrows
       changes (which it must because 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 sin-
       gled 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 in-
       finity  are  also used to model directions in projective	geometry.  The
       origin can be visualized	in different  manners.	 When  using  distance
       colors  (and using static colors), the origin is	the point that is dis-
       played 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.  Finally, when orientation
       markers are being displayed, the	origin the the point where all	orien-
       tation  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 dis-
       played 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 projec-
       tive plane only has one side, so	this is	a design choice	of the visual-
       ization).  Alternatively, when orientation markers are being displayed,
       the line	at infinity is the place where the orientation markers	change
       their orientation.

       Note that when the projective plane is displayed	with bands, the	orien-
       tation  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 remain-
       ing bands.  This	choice,	however, also implies that the band at	infin-
       ity  is half as wide as the other bands.	 Since the projective plane is
       attached	to itself (in a	complicated 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	infinity  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
       perspectively  or orthographically.  When using the walking modes, per-
       spective	projection to the screen will be used.

       There are three display modes for the  projective  plane:  mesh	(wire-
       frame), solid, or transparent.  Furthermore, the	appearance of the pro-
       jective	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  in-
       creasing	 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-orientable.

       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  projective 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  dis-
       played  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	direc-
       tion  mode, the projective plane	is displayed with fully	saturated col-
       ors 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 projec-
       tive plane.  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  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.

       By default, the immersion of the	real projective	plane smoothly deforms
       between the Roman and Boy surfaces.  It is possible to choose the speed
       of the deformation.  Furthermore, it is possible	to switch the deforma-
       tion 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	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 default 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	 topo-
       logical	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 Franois Apry'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
	       animation.  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  (de-
	       fault).

       --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
       appearance of the projective plane.

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

       --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
	       increasing distances from the origin.

       --appearance direction-bands (Shortcut: --direction-bands)
	       Display the projective plane as see-through bands that  lie  at
	       increasing 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  (de-
	       fault).

       --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  colors,	the  colors  are red and green.	 Note that the
	       line at infinity	lies at	the points where  the  red  and	 green
	       "sides"	of the projective plane	meet, i.e., where the orienta-
	       tion of the projective plane reverses.

       --colors	distance (Shortcut: --distance-colors)
	       Display the projective plane with fully saturated  colors  that
	       depend 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
	       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  projec-
	       tive  plane  is displayed as direction bands, each band will be
	       displayed with a	different color.

       The following options determine whether the colors with which the  pro-
       jective plane is	displayed are static or	are changing dynamically.

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

       --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
	       (default).

       --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
	       maximum 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 dis-
       played.

       --surface-order number
	       The surface order can be	set to values between  2  and  9  (de-
	       fault:  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 (de-
	       fault).

       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  pro-
	       jection mode (default).

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

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

       The following three options determine the rotation speed	of the projec-
       tive  plane around the three possible axes.  The	rotation speed is mea-
       sured 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 projective plane (default: 83.0).  A	 value	of  0  or  180
	       means that the walk is along a circle at	a randomly chosen dis-
	       tance  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 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 maxi-
	       mum 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 exam-
       ine the projective 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
	       resources 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,
       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  no-
       tice 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.

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

X Version 11		      6.09 (07-Jun-2024)		   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+14.3.quarterly>

home | help