projectiveplane(6x) XScreenSaver manual projectiveplane(6x)
NAME
projectiveplane - Draws a 4d embedding of the real projective plane.
SYNOPSIS
projectiveplane [-display host:display.screen] [-install] [-visual vis-
ual] [-window] [-root] [-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] [-change-colors] [-depth-colors] [-view-mode view-mode] [-walk]
[-turn] [-walk-turn] [-orientation-marks] [-projection-3d mode] [-per-
spective-3d] [-orthographic-3d] [-projection-4d mode] [-perspective-4d]
[-orthographic-4d] [-speed-wx float] [-speed-wy float] [-speed-wz
float] [-speed-xy float] [-speed-xz float] [-speed-yz float] [-walk-di-
rection float] [-walk-speed float]
DESCRIPTION
The projectiveplane program shows a 4d embedding of the real projective
plane. You can walk on the projective plane, see it turn in 4d, or
walk on it while it turns in 4d. The fact that the surface is an em-
bedding of the real projective plane in 4d can be seen in the depth
colors mode (using static colors): set all rotation speeds to 0 and the
projection mode to 4d orthographic projection. In its default orienta-
tion, the embedding of the real projective plane will then project to
the Roman surface, which has three lines of self-intersection. How-
ever, at the three lines of self-intersection the parts of the surface
that intersect have different colors, i.e., different 4d depths.
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 program projects the 4d projective plane to 3d using either a per-
spective or an orthographic projection. Which of the two alternatives
looks more appealing is up to you. However, two famous surfaces are
obtained if orthographic 4d projection is used: The Roman surface and
the cross cap. If the projective plane is rotated in 4d, the result of
the projection for certain rotations is a Roman surface and for certain
rotations it is a cross cap. The easiest way to see this is to set all
rotation speeds to 0 and the rotation speed around the yz plane to a
value different from 0. However, for any 4d rotation speeds, the pro-
jections will generally cycle between the Roman surface and the cross
cap. The difference is where the origin and the line at infinity will
lie with respect to the self-intersections in the projections to 3d.
The projected projective plane can then be projected to the screen ei-
ther perspectively 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 (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, direction, or depth. 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 de-
scribed 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 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.
Finally, in depth mode the projective plane is displayed with colors
chosen depending on the 4d "depth" (i.e., the w coordinate) of the
points on the projective plane at its default orientation in 4d. As
discussed above, this mode enables you to see that the projective plane
does not intersect itself in 4d.
The rotation speed for each of the six planes around which the projec-
tive plane rotates can be chosen. For the walk-and-turn mode, only the
rotation speeds around the true 4d planes are used (the xy, xz, and yz
planes).
Furthermore, in the walking modes 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.
This program is somewhat inspired by Thomas Banchoff's book "Beyond the
Third Dimension: Geometry, Computer Graphics, and Higher Dimensions",
Scientific American Library, 1990.
OPTIONS
projectiveplane accepts the following options:
-window Draw on a newly-created window. This is the default.
-root Draw on the root 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 three 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.
-colors depth (Shortcut: -depth)
Display the projective plane with colors chosen depending on
the 4d "depth" (i.e., the w coordinate) of the points on the
projective plane at its default orientation in 4d.
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 four 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 4d.
-view-mode walk (Shortcut: -walk)
View the projective plane as if walking on its surface.
-view-mode walk-turn (Shortcut: -walk-turn)
View the projective plane as if walking on its surface. Addi-
tionally, the projective plane turns around the true 4d planes
(the xy, xz, and yz planes).
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-3d random
Project the projective plane from 3d to 2d using a random pro-
jection mode (default).
-projection-3d perspective (Shortcut: -perspective-3d)
Project the projective plane from 3d to 2d using a perspective
projection.
-projection-3d orthographic (Shortcut: -orthographic-3d)
Project the projective plane from 3d to 2d using an ortho-
graphic projection.
The following three options are mutually exclusive. They determine how
the projective plane is projected from 4d to 3d.
-projection-4d random
Project the projective plane from 4d to 3d using a random pro-
jection mode (default).
-projection-4d perspective (Shortcut: -perspective-4d)
Project the projective plane from 4d to 3d using a perspective
projection.
-projection-4d orthographic (Shortcut: -orthographic-4d)
Project the projective plane from 4d to 3d using an ortho-
graphic projection.
The following six options determine the rotation speed of the projec-
tive plane around the six possible hyperplanes. 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. In walk-and-turn mode, the 3d rotation speeds are ignored
(i.e., the wx, wy, and wz speeds). In walk-and-turn mode, smaller
speeds must be used than in the turn mode to achieve a nice visualiza-
tion. Therefore, in walk-and-turn mode the speeds you have selected
are divided by 5 internally.
-speed-wx float
Rotation speed around the wx plane (default: 1.1).
-speed-wy float
Rotation speed around the wy plane (default: 1.3).
-speed-wz float
Rotation speed around the wz plane (default: 1.5).
-speed-xy float
Rotation speed around the xy plane (default: 1.7).
-speed-xz float
Rotation speed around the xz plane (default: 1.9).
-speed-yz float
Rotation speed around the yz plane (default: 2.1).
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, i.e.,
around the wx, wy, and wz planes. If you press the shift key while
dragging the mouse with the left button pressed the projective plane is
rotated in 4D, i.e., around the xy, xz, and yz planes. To examine 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 two
walk modes.
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.
SEE ALSO
X(1), xscreensaver(1)
COPYRIGHT
Copyright © 2013-2020 by Carsten Steger. Permission to use, copy, mod-
ify, distribute, and sell this software and its documentation for any
purpose is hereby granted without fee, provided that the above copy-
right notice appear in all copies and that both that copyright notice
and this permission notice appear in supporting documentation. No rep-
resentations 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 5.45 (08-Dec-2020) projectiveplane(6x)
Generated by dwww version 1.14 on Sat Jun 13 11:22:13 CEST 2026.