etruscanvenus(6x)
π etruscanvenus(6x) π
okay bestie, welcome to the XScreenSaver manual, section 6x, and today's main character is etruscanvenus. it's giving math, it's giving geometry, it's giving a whole entire Klein bottle. let's get into it π
β¨ NAME β¨
etruscanvenus β draws 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. yes. all of those. in one program. obsessed.
π¦ SYNOPSIS π¦
etruscanvenus [--display host:display.screen] [--install] [--visual visual] [--window] [--root] [--window-id number] [--delay usecs] [--fps] [--mode display-mode] [--wireframe] [--surface] [--transparent] [--appearance appearance] [--solid] [--distance-bands] [--direction-bands] [--colors color-scheme] [--onesided-colors] [--twosided-colors] [--distance-colors] [--direction-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 πΈ
π© so what even is this
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. pick your fighter.
topologically, all of these surfaces are Klein bottles β even the Roman and Boy surfaces, which are doubly covered and therefore appear to be an immersed real projective plane. and the smooth deformation between all these surfaces? constructed by George K. Francis. no cap, that's the lore. π
π§ the topology tea (non-orientable edition)
okay so the Klein bottle is a non-orientable surface. if you want to actually see that with your own eyes, the two-sided color mode is the move. alternatively, orientation markers (curling arrows) can be drawn as a texture map on the surface of the Klein bottle. so while you're walking on the Klein bottle, you will notice that the orientation of the curling arrows changes β and it must, because the Klein bottle is non-orientable. it's literally built different. π
careful babes: since all the surfaces except the Ida surface have points where the surface normal is not well defined for some points, walking is only performed on the Ida surface. so don't try to go for a stroll anywhere else. walking on the Ida surface only. periodt.
πͺ real projective plane moment
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 discussed. so bear with me, bestie, it's giving math class but make it cute.
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 projective plane in different directions to the line at infinity and back to the origin.
- if distance bands are used, the bands lie at constant distances to the origin.
the same interpretation is used for distance and direction colors. although there is no conceptually equivalent geometric interpretation 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. so it still eats. π
π₯οΈ projection + display modes
the immersed surfaces can be projected to the screen either perspectively or orthographically. but when using the walking mode, perspective projection to the screen will be used. that's just how it is.
there are three display modes for the Klein bottle:
- mesh (wireframe)
- solid
- transparent
and furthermore, the appearance of the surface can be as a solid object or as a set of see-through bands. the bands can be distance bands or direction bands, as explained above. slay.
π¨ colors, honey
the colors with which 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 underlying 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. iconic behavior, honestly.
- in distance mode, the surface is displayed with fully saturated 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 direction mode, the surface is displayed 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 surface is displayed as direction bands, each band will be displayed with a different color.
and the colors used to color the surface can either be static or can be changed dynamically. your call, bestie.
π rotation + walking
the rotation speed for each of the three coordinate axes around which the Klein bottle rotates can be chosen. so you can spin it however you want, basically.
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 direction is measured as an angle in degrees in the 2d square that forms the coordinate system of the surface.
- a value of
0or180means that the walk is along a circle at a randomly chosen distance from the origin (parallel to a distance band). - a value of
90or270means 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. don't forget it. π
π the deformation
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's a whole journey.
- 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 immersion. this is mostly useful if the deformation is switched off, in which case it will determine the appearance of the surface.
and here's the mapping, so you know what number = what surface:
- a value of
0corresponds to the Etruscan Venus surface - a value of
1000corresponds to the Roman surface - a value of
2000corresponds to the Boy surface - a value of
3000corresponds to the Ida surface
keep those numbers in your notes app. π
π inspired by (the credits, because we give credit)
this program is inspired by:
- George K. Francis's book "A Topological Picturebook", Springer, 1987
- George K. Francis's paper "The Etruscan Venus" in P. Concus, R. Finn, and D. A. Hoffman: "Geometric Analysis and Computer Graphics", Springer, 1991
- a video entitled "The Etruscan Venus" by Donna J. Cox, George K. Francis, and Raymond L. Idaszak, presented at SIGGRAPH 1989
and that's the vibe of it, fr fr. π¦
β¨ OPTIONS β¨
okay bestie, here's the whole menu of things etruscanvenus will listen to π
--windowβ draw on a brand-new window. this is the default, she's the main character π--rootβ draw on the root window instead.--window-idnumber β draw on the specific window you point at.--installβ install a private colormap for the window.--visualvisual β pick which visual to use. legal values are either the name of a visual class, or the id number (decimal or hex) of a specific visual.--delaymicroseconds β how much delay to stick between steps of the animation. default10000, which is 1/100th second.--fpsβ show the current frame rate, CPU load, and polygon count. numbers on the screen, we love to see it π₯
the next four options are mutually exclusive β they decide how the Klein bottle shows up. pick one, queen π
--mode randomβ display the Klein bottle in a random display mode (this is the 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 next four are also mutually exclusive β they decide the appearance π¦
--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 increasing distances from the origin (see above for the explanation).--appearance direction-bands(shortcut:--direction-bands) β display the Klein bottle as see-through bands that lie at increasing angles with respect to the origin (see above for the explanation).
and now five more that are mutually exclusive β these decide the colours π
--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 the explanation). if the Klein bottle is displayed as distance bands, each band gets its own 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 the explanation). if the Klein bottle is displayed as direction bands, each band gets its own different color.
these next ones decide whether the colors are static or switching it up dynamically π
--change-colorsβ change the colors the Klein bottle is displayed with, dynamically (default).--no-change-colorsβ use static colors to display the Klein bottle.
the next three are mutually exclusive β they decide how you 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.
these ones decide whether the surface is getting deformed at all π«
--deformβ deform the surface smoothly between the Etruscan Venus surface, the Roman surface, the Boy surface surface, and the Ida surface (default).--no-deformβ don't deform the surface.
this one sets the deformation speed πββοΈ
--deformation-speedfloat β the deformation speed is measured in percent of some sensible maximum speed (default:10.0).
these set the initial deformation of the surface. as described above, this is mostly useful when you've got --no-deform going on πΈ
--initial-deformationfloat β the initial deformation is given as a number between0and4000. a value of0corresponds to the Etruscan Venus surface, a value of1000to the Roman surface, a value of2000to the Boy surface, and a value of3000to the Ida surface. the default value is0.--etruscan-venusβ shortcut for--initial-deformation 0.--romanβ shortcut for--initial-deformation 1000.--boyβ shortcut for--initial-deformation 2000.--idaβ shortcut for--initial-deformation 3000.
orientation marks, yes or no? π«
--orientation-marksβ display orientation marks on the Klein bottle.--no-orientation-marksβ don't display orientation marks on the Klein bottle (default).
the next three are mutually exclusive β they decide how the Klein bottle gets projected from 3d down to 2d (aka, onto your 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 projection.--projection orthographic(shortcut:--orthographic) β project the Klein bottle from 3d to 2d using an orthographic projection.
these three set the rotation speed of the Klein bottle around the three possible axes. the rotation speed is measured in degrees per frame. heads up, the speeds should be relatively small values, like less than 4 in magnitude. and in walk mode, all speeds are ignored, periodt π
--speed-xfloat β rotation speed around the x axis (default:1.1).--speed-yfloat β rotation speed around the y axis (default:1.3).--speed-zfloat β rotation speed around the z axis (default:1.5).
and finally, the walking speed and direction πΆββοΈ
--walk-directionfloat β 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 of0or180means the walk is along a circle at a randomly chosen distance from the origin (parallel to a distance band). a value of90or270means 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-speedfloat β 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 button π
. 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 bottle will rotate while the left mouse button is not pressed. this kind of interaction is not available in the walk mode, sorry bestie π.
πΏ 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 theRESOURCE_MANAGERproperty.XSCREENSAVER_WINDOWβ the window ID to use with--root.
π SEE ALSO π
X(1), xscreensaver(1)
π COPYRIGHT π
Copyright Β© 2019-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 notice 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>, 05-jan-2020.
and that's the whole page, bestie, we ate and left no crumbs πβ¨ this one came from X Version 11, version 6.17-1.fc44, dated 13-Oct-2026, and it's the etruscanvenus(6x) manual page β iconic, no cap π
π¦ where this page comes from
- fedora 44: xscreensaver-gl-extras 1:6.17-1.fc44 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms