1 <?xml version="1.0" encoding="UTF-8"?>
3 <screensaver name="romanboy" _label="RomanBoy" gl="yes">
5 <video href="https://www.youtube.com/watch?v=KEW5TuPbWyg"/>
10 <select id="view-mode">
11 <option id="walk" _label="Random motion"/>
12 <option id="walk" _label="Walk" arg-set="-view-mode walk"/>
13 <option id="turn" _label="Turn" arg-set="-view-mode turn"/>
16 <number id="surface-order" type="spinbutton" arg="-surface-order %"
17 _label="Order of the surface" low="2" high="9" default="3"/>
19 <boolean id="orientation-marks" _label="Show orientation marks"
20 arg-set="-orientation-marks"/>
24 <boolean id="deform" _label="Deform the projective plane"
25 arg-unset="-no-deform"/>
27 <number id="deform-speed" type="slider" arg="-deformation-speed %"
28 _label="Deformation speed"
29 _low-label="1.0" _high-label="100.0"
30 low="1.0" high="100.0" default="10.0"/>
32 <number id="init-deform" type="slider" arg="-initial-deformation %"
33 _label="Initial deformation"
34 _low-label="0.0" _high-label="1000.0"
35 low="0.0" high="1000.0" default="1000.0"/>
42 <select id="display-mode">
43 <option id="random" _label="Random surface"/>
44 <option id="wire" _label="Wireframe mesh" arg-set="-mode wireframe"/>
45 <option id="surface" _label="Solid surface" arg-set="-mode surface"/>
46 <option id="transparent" _label="Transparent surface" arg-set="-mode transparent"/>
49 <select id="appearance">
50 <option id="random" _label="Random pattern"/>
51 <option id="solid" _label="Solid object" arg-set="-appearance solid"/>
52 <option id="bands" _label="Distance bands" arg-set="-appearance distance-bands"/>
53 <option id="bands" _label="Direction bands" arg-set="-appearance direction-bands"/>
57 <option id="random" _label="Random coloration"/>
58 <option id="twosided" _label="Two-sided" arg-set="-colors two-sided"/>
59 <option id="rainbow" _label="Distance colors" arg-set="-colors distance"/>
60 <option id="rainbow" _label="Direction colors" arg-set="-colors direction"/>
63 <select id="projection">
64 <option id="random" _label="Random Projection"/>
65 <option id="perspective" _label="Perspective" arg-set="-projection perspective"/>
66 <option id="orthographic" _label="Orthographic" arg-set="-projection orthographic"/>
71 <number id="speed-x" type="slider" arg="-speed-x %"
72 _label="X rotation speed"
73 _low-label="-4.0" _high-label="4.0"
74 low="-4.0" high="4.0" default="1.1"/>
76 <number id="speed-y" type="slider" arg="-speed-y %"
77 _label="Y rotation speed"
78 _low-label="-4.0" _high-label="4.0"
79 low="-4.0" high="4.0" default="1.3"/>
81 <number id="speed-z" type="slider" arg="-speed-z %"
82 _label="Z rotation speed"
83 _low-label="-4.0" _high-label="4.0"
84 low="-4.0" high="4.0" default="1.5"/>
88 <number id="walk-direction" type="slider" arg="-walk-direction %"
89 _label="Walking direction"
90 _low-label="-180.0" _high-label="180.0"
91 low="-180.0" high="180.0" default="83.0"/>
93 <number id="walk-speed" type="slider" arg="-walk-speed %"
94 _label="Walking speed"
95 _low-label="1.0" _high-label="100.0"
96 low="1.0" high="100.0" default="20.0"/>
98 <number id="delay" type="slider" arg="-delay %"
99 _label="Frame rate" _low-label="Low" _high-label="High"
100 low="0" high="100000" default="10000"
105 <xscreensaver-updater />
106 <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
112 A 3D immersion of the real projective plane that smoothly deforms
113 between the Roman surface and the Boy surface.
115 You can walk on the surface of the real projective plane or rotate it
116 in 3D. Furthermore, it is possible to smoothly deform the real
117 projective plane between the Roman surface and the Boy surface while
118 turning it or walking on it. Inspired by François Apéry's book
119 "Models of the Real Projective Plane", Vieweg, 1987.
121 https://en.wikipedia.org/wiki/Boy%27s_surface
122 https://en.wikipedia.org/wiki/Roman_surface
123 http://mathworld.wolfram.com/BoySurface.html
124 http://mathworld.wolfram.com/RomanSurface.html
126 Written by Carsten Steger; 2014.