1romanboy(6x)                  XScreenSaver manual                 romanboy(6x)
2
3
4

NAME

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

SYNOPSIS

10       romanboy [--display host:display.screen] [--install] [--visual  visual]
11       [--window]   [--root]  [--window-id  number]  [--delay  usecs]  [--fps]
12       [--mode display-mode] [--wireframe] [--surface] [--transparent]  [--ap‐
13       pearance  appearance]  [--solid] [--distance-bands] [--direction-bands]
14       [--colors color-scheme] [--onesided-colors] [--twosided-colors] [--dis‐
15       tance-colors] [--direction-colors] [--change-colors] [--view-mode view-
16       mode]  [--walk]  [--turn]  [--no-deform]  [--deformation-speed   float]
17       [--initial-deformation  float]  [--roman] [--boy] [--surface-order num‐
18       ber] [--orientation-marks] [--projection mode]  [--perspective]  [--or‐
19       thographic]  [--speed-x  float]  [--speed-y  float]  [--speed-z  float]
20       [--walk-direction float] [--walk-speed float]
21

DESCRIPTION

23       The romanboy program shows a 3d immersion of the real projective  plane
24       that  smoothly  deforms  between the Roman surface and the Boy surface.
25       You can walk on the projective plane or turn in 3d.  The smooth  defor‐
26       mation  (homotopy) between these two famous immersions of the real pro‐
27       jective plane was constructed by François Apéry.
28
29       The real projective plane is a non-orientable surface.   To  make  this
30       apparent,  the two-sided color mode can be used.  Alternatively, orien‐
31       tation markers (curling arrows) can be drawn as a texture  map  on  the
32       surface  of  the  projective  plane.   While  walking on the projective
33       plane, you will notice that  the  orientation  of  the  curling  arrows
34       changes (which it must because the projective plane is non-orientable).
35
36       The  real projective plane is a model for the projective geometry in 2d
37       space.  One point can be singled out as the origin.  A line can be sin‐
38       gled out as the line at infinity, i.e., a line that lies at an infinite
39       distance to the origin.  The line at infinity, like all  lines  in  the
40       projective plane, is topologically a circle.  Points on the line at in‐
41       finity are also used to model directions in projective  geometry.   The
42       origin  can  be  visualized  in different manners.  When using distance
43       colors (and using static colors), the origin is the point that is  dis‐
44       played  as fully saturated red, which is easier to see as the center of
45       the reddish area on the projective plane.   Alternatively,  when  using
46       distance bands, the origin is the center of the only band that projects
47       to a disk.  When using direction bands, the origin is the  point  where
48       all  direction  bands  collapse  to a point.  Finally, when orientation
49       markers are being displayed, the origin the the point where all  orien‐
50       tation  markers  are  compressed  to a point.  The line at infinity can
51       also be visualized in different ways.  When using distance colors  (and
52       using  static  colors),  the  line at infinity is the line that is dis‐
53       played as fully saturated magenta.  When two-sided (and static)  colors
54       are  used,  the  line  at infinity lies at the points where the red and
55       green "sides" of the projective plane meet (of course, the real projec‐
56       tive plane only has one side, so this is a design choice of the visual‐
57       ization).  Alternatively, when orientation markers are being displayed,
58       the  line at infinity is the place where the orientation markers change
59       their orientation.
60
61       Note that when the projective plane is displayed with bands, the orien‐
62       tation  markers  are  placed  in the middle of the bands.  For distance
63       bands, the bands are chosen in such a way that the band at  the  origin
64       is  only  half  as wide as the remaining bands, which results in a disk
65       being displayed at the origin that has the same diameter as the remain‐
66       ing  bands.  This choice, however, also implies that the band at infin‐
67       ity is half as wide as the other bands.  Since the projective plane  is
68       attached  to itself (in a complicated fashion) at the line at infinity,
69       effectively the band at infinity is again  as  wide  as  the  remaining
70       bands.   However,  since  the  orientation markers are displayed in the
71       middle of the bands, this means that only one half of  the  orientation
72       markers  will  be  displayed  twice at the line at infinity if distance
73       bands are used.  If direction bands are used or if the projective plane
74       is  displayed as a solid surface, the orientation markers are displayed
75       fully at the respective sides of the line at infinity.
76
77       The immersed projective plane can be projected  to  the  screen  either
78       perspectively  or orthographically.  When using the walking modes, per‐
79       spective projection to the screen will be used.
80
81       There are three display modes for the  projective  plane:  mesh  (wire‐
82       frame), solid, or transparent.  Furthermore, the appearance of the pro‐
83       jective plane can be as a solid object  or  as  a  set  of  see-through
84       bands.   The  bands  can be distance bands, i.e., bands that lie at in‐
85       creasing distances from the origin, or  direction  bands,  i.e.,  bands
86       that lie at increasing angles with respect to the origin.
87
88       When  the  projective plane is displayed with direction bands, you will
89       be able to see that each direction band (modulo the "pinching"  at  the
90       origin)  is a Moebius strip, which also shows that the projective plane
91       is non-orientable.
92
93       Finally, the colors with with the projective plane is drawn can be  set
94       to  one-sided,  two-sided,  distance, or direction.  In one-sided mode,
95       the projective plane is drawn with the same color on both "sides."   In
96       two-sided  mode  (using  static  colors), the projective plane is drawn
97       with red on one "side" and green on the  "other  side."   As  described
98       above,  the projective plane only has one side, so the color jumps from
99       red to green along the line at infinity.  This mode enables you to  see
100       that  the  projective  plane is non-orientable.  If changing colors are
101       used in two-sided mode, changing complementary colors are used  on  the
102       respective  "sides."   In  distance  mode, the projective plane is dis‐
103       played with fully saturated colors that depend on the distance  of  the
104       points  on  the  projective  plane to the origin.  If static colors are
105       used, the origin is displayed in red, while the  line  at  infinity  is
106       displayed in magenta.  If the projective plane is displayed as distance
107       bands, each band will be displayed with a different color.   In  direc‐
108       tion  mode, the projective plane is displayed with fully saturated col‐
109       ors that depend on the angle of the points on the projective plane with
110       respect  to  the  origin.   Angles in opposite directions to the origin
111       (e.g., 15 and 205 degrees) are displayed in the same color  since  they
112       are  projectively  equivalent.  If the projective plane is displayed as
113       direction bands, each band will be displayed with a different color.
114
115       The rotation speed for each of the three coordinate axes  around  which
116       the projective plane rotates can be chosen.
117
118       Furthermore,  in  the walking mode the walking direction in the 2d base
119       square of the projective plane and the walking  speed  can  be  chosen.
120       The  walking  direction  is  measured  as an angle in degrees in the 2d
121       square that forms the coordinate system of the surface of  the  projec‐
122       tive  plane.  A value of 0 or 180 means that the walk is along a circle
123       at a randomly chosen distance from the origin (parallel to  a  distance
124       band).   A  value of 90 or 270 means that the walk is directly from the
125       origin to the line at infinity  and  back  (analogous  to  a  direction
126       band).  Any other value results in a curved path from the origin to the
127       line at infinity and back.
128
129       By default, the immersion of the real projective plane smoothly deforms
130       between the Roman and Boy surfaces.  It is possible to choose the speed
131       of the deformation.  Furthermore, it is possible to switch the deforma‐
132       tion  off.  It is also possible to determine the initial deformation of
133       the immersion.  This is mostly useful if the  deformation  is  switched
134       off, in which case it will determine the appearance of the surface.
135
136       As  a  final  option, it is possible to display generalized versions of
137       the immersion discussed above by specifying the order of  the  surface.
138       The  default  surface  order  of 3 results in the immersion of the real
139       projective described above.  The surface order can be chosen between  2
140       and 9.  Odd surface orders result in generalized immersions of the real
141       projective plane, while even numbers result in a immersion of  a  topo‐
142       logical  sphere  (which is orientable).  The most interesting even case
143       is a surface order of 2, which results in an immersion of  the  halfway
144       model of Morin's sphere eversion (if the deformation is switched off).
145
146       This  program  is inspired by François Apéry's book "Models of the Real
147       Projective Plane", Vieweg, 1987.
148

OPTIONS

150       romanboy accepts the following options:
151
152       --window
153               Draw on a newly-created window.  This is the default.
154
155       --root  Draw on the root window.
156
157       --window-id number
158               Draw on the specified window.
159
160       --install
161               Install a private colormap for the window.
162
163       --visual visual
164               Specify which visual to use.  Legal values are the  name  of  a
165               visual  class,  or the id number (decimal or hex) of a specific
166               visual.
167
168       --delay microseconds
169               How much of a delay should be introduced between steps  of  the
170               animation.  Default 10000, or 1/100th second.
171
172       --fps   Display the current frame rate, CPU load, and polygon count.
173
174       The  following four options are mutually exclusive.  They determine how
175       the projective plane is displayed.
176
177       --mode random
178               Display the projective plane in  a  random  display  mode  (de‐
179               fault).
180
181       --mode wireframe (Shortcut: --wireframe)
182               Display the projective plane as a wireframe mesh.
183
184       --mode surface (Shortcut: --surface)
185               Display the projective plane as a solid surface.
186
187       --mode transparent (Shortcut: --transparent)
188               Display the projective plane as a transparent surface.
189
190       The  following four options are mutually exclusive.  They determine the
191       appearance of the projective plane.
192
193       --appearance random
194               Display the projective plane  with  a  random  appearance  (de‐
195               fault).
196
197       --appearance solid (Shortcut: --solid)
198               Display the projective plane as a solid object.
199
200       --appearance distance-bands (Shortcut: --distance-bands)
201               Display  the  projective plane as see-through bands that lie at
202               increasing distances from the origin.
203
204       --appearance direction-bands (Shortcut: --direction-bands)
205               Display the projective plane as see-through bands that  lie  at
206               increasing angles with respect to the origin.
207
208       The  following four options are mutually exclusive.  They determine how
209       to color the projective plane.
210
211       --colors random
212               Display the projective plane with a random  color  scheme  (de‐
213               fault).
214
215       --colors onesided (Shortcut: --onesided-colors)
216               Display the projective plane with a single color.
217
218       --colors twosided (Shortcut: --twosided-colors)
219               Display  the  projective  plane  with two colors: one color one
220               "side" and the complementary color on the  "other  side."   For
221               static  colors,  the  colors  are red and green.  Note that the
222               line at infinity lies at the points where  the  red  and  green
223               "sides"  of the projective plane meet, i.e., where the orienta‐
224               tion of the projective plane reverses.
225
226       --colors distance (Shortcut: --distance-colors)
227               Display the projective plane with fully saturated  colors  that
228               depend on the distance of the points on the projective plane to
229               the origin.  For static colors, the origin is displayed in red,
230               while  the  line  at  infinity is displayed in magenta.  If the
231               projective plane is displayed as distance bands, each band will
232               be displayed with a different color.
233
234       --colors direction (Shortcut: --direction-colors)
235               Display  the  projective plane with fully saturated colors that
236               depend on the angle of the points on the projective plane  with
237               respect  to  the  origin.  Angles in opposite directions to the
238               origin (e.g., 15 and 205 degrees) are  displayed  in  the  same
239               color  since  they are projectively equivalent.  If the projec‐
240               tive plane is displayed as direction bands, each band  will  be
241               displayed with a different color.
242
243       The  following options determine whether the colors with which the pro‐
244       jective plane is displayed are static or are changing dynamically.
245
246       --change-colors
247               Change the colors with which the projective plane is  displayed
248               dynamically.
249
250       --no-change-colors
251               Use static colors to display the projective plane (default).
252
253       The following three options are mutually exclusive.  They determine how
254       to view the projective plane.
255
256       --view-mode random
257               View the projective plane in a random view mode (default).
258
259       --view-mode turn (Shortcut: --turn)
260               View the projective plane while it turns in 3d.
261
262       --view-mode walk (Shortcut: --walk)
263               View the projective plane as if walking on its surface.
264
265       The following options determine whether the surface is being deformed.
266
267       --deform
268               Deform the surface smoothly between the Roman and Boy  surfaces
269               (default).
270
271       --no-deform
272               Don't deform the surface.
273
274       The following option determines the deformation speed.
275
276       --deformation-speed float
277               The  deformation  speed is measured in percent of some sensible
278               maximum speed (default: 10.0).
279
280       The following options determine the initial deformation of the surface.
281       As described above, this is mostly useful if --no-deform is specified.
282
283       --initial-deformation float
284               The  initial deformation is specified as a number between 0 and
285               1000.  A value of 0 corresponds to the Roman surface,  while  a
286               value  of  1000  corresponds  to  the Boy surface.  The default
287               value is 1000.
288
289       --roman This is a shortcut for --initial-deformation 0.
290
291       --boy   This is a shortcut for --initial-deformation 1000.
292
293       The following option determines the order of the  surface  to  be  dis‐
294       played.
295
296       --surface-order number
297               The  surface  order  can  be set to values between 2 and 9 (de‐
298               fault: 3).  As described above, odd surface  orders  result  in
299               generalized immersions of the real projective plane, while even
300               numbers result in a immersion of a topological sphere.
301
302       The following options determine whether orientation marks are shown  on
303       the projective plane.
304
305       --orientation-marks
306               Display orientation marks on the projective plane.
307
308       --no-orientation-marks
309               Don't  display  orientation  marks on the projective plane (de‐
310               fault).
311
312       The following three options are mutually exclusive.  They determine how
313       the projective plane is projected from 3d to 2d (i.e., to the screen).
314
315       --projection random
316               Project  the projective plane from 3d to 2d using a random pro‐
317               jection mode (default).
318
319       --projection perspective (Shortcut: --perspective)
320               Project the projective plane from 3d to 2d using a  perspective
321               projection.
322
323       --projection orthographic (Shortcut: --orthographic)
324               Project  the  projective  plane  from  3d to 2d using an ortho‐
325               graphic projection.
326
327       The following three options determine the rotation speed of the projec‐
328       tive  plane around the three possible axes.  The rotation speed is mea‐
329       sured in degrees per frame.  The speeds should  be  set  to  relatively
330       small values, e.g., less than 4 in magnitude.  In walk mode, all speeds
331       are ignored.
332
333       --speed-x float
334               Rotation speed around the x axis (default: 1.1).
335
336       --speed-y float
337               Rotation speed around the y axis (default: 1.3).
338
339       --speed-z float
340               Rotation speed around the z axis (default: 1.5).
341
342       The following two options determine the walking speed and direction.
343
344       --walk-direction float
345               The walking direction is measured as an angle in degrees in the
346               2d  square  that  forms the coordinate system of the surface of
347               the projective plane (default: 83.0).  A  value  of  0  or  180
348               means that the walk is along a circle at a randomly chosen dis‐
349               tance from the origin (parallel to a distance band).   A  value
350               of 90 or 270 means that the walk is directly from the origin to
351               the line at infinity and back (analogous to a direction  band).
352               Any other value results in a curved path from the origin to the
353               line at infinity and back.
354
355       --walk-speed float
356               The walking speed is measured in percent of some sensible maxi‐
357               mum speed (default: 20.0).
358

INTERACTION

360       If  you  run  this program in standalone mode in its turn mode, you can
361       rotate the projective plane by dragging the mouse  while  pressing  the
362       left  mouse button.  This rotates the projective plane in 3d.  To exam‐
363       ine the projective plane at your leisure, it is best to set all  speeds
364       to 0.  Otherwise, the projective plane will rotate while the left mouse
365       button is not pressed.  This kind of interaction is  not  available  in
366       the walk mode.
367

ENVIRONMENT

369       DISPLAY to get the default host and display number.
370
371       XENVIRONMENT
372               to  get  the  name of a resource file that overrides the global
373               resources stored in the RESOURCE_MANAGER property.
374
375       XSCREENSAVER_WINDOW
376               The window ID to use with --root.
377

SEE ALSO

379       X(1), xscreensaver(1)
380
382       Copyright © 2013-2020 by Carsten Steger.  Permission to use, copy, mod‐
383       ify,  distribute,  and sell this software and its documentation for any
384       purpose is hereby granted without fee, provided that  the  above  copy‐
385       right  notice  appear in all copies and that both that copyright notice
386       and this permission notice appear in supporting documentation.  No rep‐
387       resentations  are  made  about the suitability of this software for any
388       purpose.  It is provided "as is" without express or implied warranty.
389

AUTHOR

391       Carsten Steger <carsten@mirsanmir.org>, 06-jan-2020.
392
393
394
395X Version 11               6.08-1.fc38 (17-Oct-2023)              romanboy(6x)
Impressum