molecule

title: molecule(6)

summary: draws 3D molecular structures

text:
# molecule(6)

## NAME
molecule - draws 3D molecular structures

## SYNOPSIS
molecule [-display host:display.screen] [-window] [-root] [-visual visual] [-delay microseconds] [-wander] [-no-wander] [-spin axes] [-no-spin] [-timeout seconds] [-labels] [-no-labels] [-titles] [-no-titles] [-atoms] [-no-atoms] [-bonds] [-no-bonds] [-shells] [-no-shells] [-molecule file-or-directory] [-verbose] [-wireframe] [-fps]

## DESCRIPTION
The molecule program draws several different representations of molecules. Some common molecules are built in, and it can read PDB (Protein Data Base) files as input.

## OPTIONS
molecule 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.

-fps

Display the current frame rate, CPU load, and polygon count.

-verbose

Print debugging info on stderr about files being loaded, etc.

-wander

Move the molecules around the screen.

-no-wander

Keep the molecule centered on the screen. This is the default.

-spin

Which axes around which the molecule should spin. The default is "XYZ", meaning rotate it freely in space. "-spin Z" would rotate the molecule in the plane of the screen while not rotating it into or out of the screen; etc.

-no-spin

Don't spin it at all: the same as -spin "".

-labels

Draw labels on the atoms (or the spot where the atoms would be.) This is the default.

-no-labels

Do not draw labels on the atoms.

-titles

Print the name of the molecule and its chemical formula at the top of the screen.

-no-titles

Do not print the molecule name.

-atoms

Represent the atoms as shaded spheres of appropriate sizes. This is the default.

-no-atoms

Do not draw spheres for the atoms: only draw bond lines.

-bonds

Represent the atomic bonds as solid tubes of appropriate thicknesses. This is the default.

-no-bonds

Do not draw the bonds: instead, make the spheres for the atoms be larger, for a "space-filling" representation of the molecule.

-shells

Draw transparent electron shells around the atoms. This only works if bonds are also being drawn.

-no-shells

Do not draw electron shells. This is the default.

-shell-alpha

When drawing shells, how transparent to make them. Default 0.4.

-wireframe

Draw a wireframe rendition of the molecule: this will consist only of single-pixel lines for the bonds, and text labels where the atoms go. This will be very fast.

-timeout seconds

When using the built-in data set, change to a new molecule every this-many seconds. Default is 20 seconds.

-molecule file-or-directory

Instead of using the built-in molecules, read one from the given file. This file must be in PDB (Protein Data Base) format. (Note that it's not uncommon for PDB files to contain only the atoms, with no (or little) information about the atomic bonds.) This can also be a directory, in which case, all of the .pdb files in that directory will be loaded. A new one will be displayed at random every few seconds (as per the -timeout option.)

When the molecule is too large (bigger than about 30 angstroms from side to side), the -label option will be automatically turned off, because otherwise, the labels would overlap and completely obscure the display.

When the molecule is around 150 angstroms from side to side, wireframe mode will be turned on (because otherwise it would be too slow.)

## 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)

Documentation on the PDB file format:

http://www.wwpdb.org/docs.html

http://www.rcsb.org/pdb/docs/format/pdbguide2.2/guide2.2_frame.html

A good source of PDB files:

http://www.umass.edu/microbio/rasmol/whereget.htm

http://www.wwpdb.org/docs.html

## COPYRIGHT
Copyright © 2001-2005 by Jamie Zawinski. 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
Jamie Zawinski <jwz@jwz.org>


package: xscreensaver-modules-gl

title: morph3d(6)

summary: 3d morphing objects.

text:
# morph3d(6)

## NAME
morph3d - 3d morphing objects.

## SYNOPSIS
morph3d [-display host:display.screen] [-visual visual] [-window] [-root] [-count number] [-delay number] [-fps]

## DESCRIPTION
Another 3d shape-changing GL hack. It has the same shiny-plastic feel as Superquadrics, as many computer-generated objects do...

## OPTIONS
-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.

-window

Draw on a newly-created window. This is the default.

-root

Draw on the root window.

-count number

0 - 20. Default: 0.

-delay number

Per-frame delay, in microseconds. Default: 40000 (0.04 seconds.).

-fps

Display the current frame rate, CPU load, and polygon count.

## 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 © 2002 by Marcelo Vianna. 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
Marcelo Vianna.


noof

title: noof(6)

summary: draw rotatey patterns

text:
# noof(6)

## NAME
noof - draw rotatey patterns

## SYNOPSIS
dangerball [-display host:display.screen] [-visual visual] [-window] [-root] [-delay number] [-fps]

## DESCRIPTION
Draws some rotatey patterns, using OpenGL.

## OPTIONS
-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.

-window

Draw on a newly-created window. This is the default.

-root

Draw on the root window.

-delay number

Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).

-fps

Display the current frame rate, CPU load, and polygon count.

## 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 © 2004 by Mark Kilgard. 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
Mark Kilgard <mjk@nvidia.com>


photopile

title: photopile(6)

text:
# photopile(6)

## NAME
photopile - displays multiple images in a periodically shuffled pile

## SYNOPSIS
photopile [-display host:display.screen] [-visual visual] [-window] [-root] [-count int] [-scale factor] [-maxTilt degrees] [-titles | -no-titles] [-polaroid | -no-polaroid] [-shadows | -no-shadows] [-font font] [-speed ratio] [-duration seconds] [-fps] [-debug] [-wireframe]

## DESCRIPTION
Loads several random images, and displays them as if lying in a random pile. The pile is periodically reshuffled, with new images coming in and old ones being thrown out.

This program requires a good video card capable of supporting large textures.

To specify the directory that images are loaded from, run xscreensaver-demo(1) and click on the "Advanced" tab.

## OPTIONS
-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.

-window

Draw on a newly-created window. This is the default.

-root

Draw on the root window.

-count int

How many images to display. Default 7.

-scale factor

Size of images in relation to the size of the window. Default 0.4.

-maxTilt degrees

Maximum deviation from vertical. Default 50 degrees.

-duration seconds

Every duration seconds, one of the images will be replaced with a new one. Default 5 seconds.

-speed ratio

Speed up or slow down the animation. 0.5 means half as fast as the default; 2.0 means twice as fast.

-delay number

Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).

-titles | -no-titles

Whether to display the file names of the images beneath them. Default: yes.

-polaroid | -no-polaroid

Whether to simulate images taken by an instant camera. Default: yes.

-shadows | -no-shadows

Whether to draw images with drop shadows. Default: no.

-font font-name

The font to use for the initial loading screen and for image titles.

-fps

Display the current frame rate, CPU load, and polygon count.

-debug

Prints debugging info to stderr.

-wireframe

Another debug 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.

## SEE ALSO
X(1), xscreensaver-demo(1) xscreensaver-getimage(1) xscreensaver(1) carousel(6) glslideshow(6)

## COPYRIGHT
Copyright © 2005 by Jamie Zawinski. Copyright © 2008 by Jens Kilian.

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
Jens Kilian.


pinion

title: pinion(6)

text:
# pinion(6)

## NAME
pinion - draws a scrolling sequence of interconnected gears

## SYNOPSIS
pinion [-display host:display.screen] [-window] [-root] [-install] [-visual visual] [-delay usecs] [-scroll ratio] [-spin ratio] [-size ratio] [-max-rpm int] [-wireframe] [-fps]

## DESCRIPTION
The pinion program draws an interconnected set of gears moving across the screen.

## OPTIONS
pinion 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 usecs

The delay between frames of the animation, in microseconds: default 15000.

-spin ratio

How fast the gears should spin; default 1.0. 2.0 means twice as fast, 0.5 means half as fast.

-scroll ratio

How fast the gears should scroll past the screen; default 1.0. 2.0 means twice as fast, 0.5 means half as fast.

-size ratio

How big the gears should be, on average; default 1.0. 2.0 means twice as large, 0.5 means half as large.

-max-rpm integer

If any gear exceeds the maximum RPM, the current gear train is broken there, and we start a new train. Default: 900 RPM. (At 30 FPS, that's about half a rotation per frame.)

-wireframe

Render in wireframe instead of solid.

-fps

Display the current frame rate, CPU load, and polygon count.

## 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
gears(6), xscreensaver(1), X(1)

## COPYRIGHT
Copyright © 2004 by Jamie Zawinski. 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
Jamie Zawinski <jwz@jwz.org>, 12-Dec-2004.


pipes

title: pipes(6)

summary: fill the screen with a plumbing system.

text:
# pipes(6)

## NAME
pipes - fill the screen with a plumbing system.

## SYNOPSIS
pipes [-display host:display.screen] [-visual visual] [-window] [-root] [-count 0] [-count 1] [-cycles number] [-size number] [-factory number] [-delay number] [-no-fisheye] [-tightturns] [-db] [-fps]

## DESCRIPTION
If you've ever been in the same room as a Windows NT machine, you've probably seen this GL hack. It fills the screen with a plumbing system.

## OPTIONS
-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.

-window

Draw on a newly-created window. This is the default.

-root

Draw on the root window.

-count 0

Curved Pipes.

-count 1

Ball Joints.

-cycles number

Number of pipe systems to draw at once. Default: 5.

-size number

Length of each pipe system. Default: 500.

-factory number

How much gadgetry to create; Useful range is 0-10. Default: 2.

-delay number

How long (in microseconds) to sleep between frames. Default: 10000.

-fisheye | -no-fisheye

Whether to use a fisheye lens.

-tightturns | -no-tightturns

Whether to allow tight turns.

-db | -no-db

Whether to double-buffer.

-fps

Display the current frame rate, CPU load, and polygon count.

## 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 © 2002 by Marcelo Vianna. 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
Marcelo Vianna.


polyhedra

title: polyhedra(6)

text:
# polyhedra(6)

## NAME
polyhedra - draws the 80 uniform polyhedra and their duals

## SYNOPSIS
polyhedra [-display host:display.screen] [-visual visual] [-window] [-root] [-delay number] [-speed float] [-duration seconds] [-no-wander] [-spin XYZ] [-wireframe] [-no-titles] [-which name] [-wireframe] [-fps]

## DESCRIPTION
This program renders 160 different 3D solids, and displays some information about each. A new solid is chosen every few seconds.

There are 75 uniform polyhedra, plus an inifinite number of prisms and antiprisms:

* Convex Uniform Polyhedra:

* Platonic solids (5)

* Archimedean solids (13)

* Convex prisms and antiprisms (2 infinite families)

* Nonconvex Uniform Polyhedra:

* Kepler-Poinsot polyhedra (4)

* Nonconvex uniform polyhedra (53)

* Nonconvex prisms, antiprisms, and crossed antiprisms

(3 infinite families)

Representative samples of the prism sets brings the total to 80 solids. Including the dual of each brings the total up to 160. (To create the "dual" of a polyhedron, faces are replaced with vertices, and vertices with faces.)

## OPTIONS
-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.

-window

Draw on a newly-created window. This is the default.

-root

Draw on the root window.

-delay number

Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).

-speed number

Larger numbers mean run faster. Default: 1.0.

-duration seconds

How long before switching to a new polyhedron. Default 12 seconds.

-wander | -no-wander

Whether the objects should wander around the screen.

-spin [XYZ] | -no-spin

Which axes, if any, to spin around on.

-titles | -no-titles

Whether to display text describing each object.

-which object-name

Display only one particular object, identified by number, name, or Whthoff symbol.

-wireframe | -no-wireframe

Render in wireframe instead of solid.

-fps

Display the current frame rate, CPU load, and polygon count.

## KEY BINDINGS
When running in a window, you can rotate the object with the mouse. Also, the following keystrokes are defined:

SPC or TAB

Select a new polyhedron at random.

+ or >

Select the next-higher-numbered polyhedron.

- or <

Select the next-lower-numbered polyhedron.

ESC or ^C

Quit.

## 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 © 1991-2002 Dr. Zvi Har'El.

Copyright © 2004 Jamie Zawinski. 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
Based on the program kaleido ("Kaleidoscopic construction of uniform polyhedra"), by Dr. Zvi Har'El <rl@math.technion.ac.il>

http://www.math.technion.ac.il/~rl/

ftp://ftp.math.technion.ac.il/kaleido/

Adapted for OpenGL and XScreenSaver by Jamie Zawinski, 2004.


polytopes

title: polytopes(6)

text:
# polytopes(6)

## NAME
polytopes - Draws one of the six regular 4d polytopes rotating in 4d.

## SYNOPSIS
polytopes [-display host:display.screen] [-install] [-visual visual] [-window] [-root] [-delay usecs] [-fps] [-5-cell] [-8-cell] [-16-cell] [-24-cell] [-120-cell] [-600-cell] [-wireframe] [-surface] [-transparent] [-single-color] [-depth-colors] [-perspective-3d] [-orthographic-3d] [-perspective-4d] [-orthographic-4d] [-speed-wx float] [-speed-wy float] [-speed-wz float] [-speed-xy float] [-speed-xz float] [-speed-yz float]

## DESCRIPTION
The polytopes program shows one of the six regular 4d polytopes (5-cell, 8-cell, 16-cell, 24-cell, 120-cell, or 600-cell) rotating in 4d. The program projects the 4d polytope to 3d using either a perspective or an orthographic projection. The projected 3d polytope can then be projected to the screen either perspectively or orthographically. There are three display modes for the polytope: mesh (wireframe), solid, or transparent. Furthermore, the colors with which the polytope is drawn can be set to either single color or to a coloring according to the 4d "depth" (the w coordinate) of the polytope in its unrotated position. In the first case, the polytope is drawn in red. This coloring combined with transparency gives a nice visual effect of the structure of the polytope. The second mode draws the polytope with a fully saturated color wheel in which the edges or faces are colored according to their average 4d "depth". This mode is best combined with the wireframe mode, where it allows you to see how different parts of the polytope are moved to the "inside" of the projected polytope in 3d. Of course, in 4d the cells, faces, and edges of the polytope all have the same distance from the center of the polytope. Only the projection creates the appearance that some of the cells lie "inside" the figure in 3d.

## OPTIONS
polytopes 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 25000, or 1/40th second.

The following six options are mutually exclusive. They determine which polytope is displayed.

-5-cell

Display the 5-cell. The 5-cell is the 4d analogon of a regular tetrahedron in 3d. It has 5 regular tetrahedra as its cells, 10 equilateral triangles as faces, 10 edges, and 5 vertices.

-8-cell

Display the 8-cell (a.k.a. hypercube or tessaract). The 8-cell is the 4d analogon of a cube in 3d. It has 8 cubes as its cells, 24 squares as faces, 32 edges, and 16 vertices.

-16-cell

Display the 16-cell. The 16-cell is the 4d analogon of an octahedron in 3d. It has 16 regular tetrahedra as its cells, 32 equilateral triangles as faces, 24 edges, and 8 vertices.

-24-cell

Display the 24-cell. The 24-cell has no 3d analogon. It has 24 regular octahedra as its cells, 96 equilateral triangles as faces, 96 edges, and 24 vertices.

-120-cell

Display the 120-cell. The 120-cell has no 3d analogon. It has 120 regular dodecahedra as its cells, 720 regular pentagons as faces, 1200 edges, and 600 vertices.

-600-cell

Display the 600-cell. The 600-cell has no 3d analogon. It has 600 regular tetrahedra as its cells, 1200 equilateral triangles as faces, 720 edges, and 120 vertices.

The following three options are mutually exclusive. They determine how the polytope is displayed.

-wireframe

Display the polytope as a wireframe mesh.

-surface

Display the polytope as a solid object.

-transparent

Display the polytope as a transparent object (default).

The following two options are mutually exclusive. They determine how to color the polytope.

-single-color

Display the polytope in red.

-depth-colors

Display the polytope with a fully saturated color wheel in which the edges or faces are colored according to their average 4d "depth", i.e., the w coordinate of the polytope in its unrotated position (default).

The following two options are mutually exclusive. They determine how the polytope is projected from 3d to 2d (i.e., to the screen).

-perspective-3d

Project the polytope from 3d to 2d using a perspective projection (default).

-orthographic-3d

Project the polytope from 3d to 2d using an orthographic projection.

The following two options are mutually exclusive. They determine how the polytope is projected from 4d to 3d.

-perspective-4d

Project the polytope from 4d to 3d using a perspective projection (default).

-orthographic-4d

Project the polytope from 4d to 3d using an orthographic projection.

The following six options determine the rotation speed of the polytope 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.

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

## INTERACTION
If you run this program in standalone mode you can rotate the polytope by dragging the mouse while pressing the left mouse button. This rotates the polytope 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 polytope is rotated in 4D, i.e., around the xy, xz, and yz planes. To examine the polytope at your leisure, it is best to set all speeds to 0. Otherwise, the polytope will rotate while the left mouse button is not pressed. -fps Display the current frame rate, CPU load, and polygon count.

## 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 © 2003-2005 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>, 28-sep-2005.


projectiveplane

title: projectiveplane(6)

text:
# projectiveplane(6)

## NAME
projectiveplane - Draws a 4d embedding of the real projective plane.

## SYNOPSIS
projectiveplane [-display host:display.screen] [-install] [-visual visual] [-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] [-perspective-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-direction 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 embedding 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 orientation, the embedding of the real projective plane will then project to the Roman surface, which has three lines of self-intersection. However, 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, orientation 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 singled 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 infinity 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 displayed 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 orientation 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 displayed 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 projective plane only has one side, so this is a design choice of the visualization). 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 orientation 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 remaining bands. This choice, however, also implies that the band at infinity 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 perspective 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 projections 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 either 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 (wireframe), solid, or transparent. Furthermore, the appearance of the projective 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 increasing 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 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 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 direction mode, the projective plane is displayed 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 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 projective 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 projective 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 (default).

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

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

-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 orientation 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 projective 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 projective 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. Additionally, 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 (default).

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 projection 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 orthographic 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 projection 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 orthographic projection.

The following six options determine the rotation speed of the projective 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 visualization. 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 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.

-walk-speed float

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 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, 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>, 06-jan-2020.


pulsar

title: pulsar(6)

text:
# pulsar(6)

## NAME
pulsar - intersecting planes, alpha blending, fog, and textures.

## SYNOPSIS
pulsar [-display host:display.screen] [-visual visual] [-window] [-root] [-no-light] [-wire] [-delay number] [-quads number] [-image file] [-light] [-fog] [-texture] [-mipmap] [-no-blend] [-antialias] [-texture_quality] [-do_depth] [-fps]

## DESCRIPTION
Draws some intersecting planes, making use of alpha blending, fog, textures, and mipmaps, plus a ``frames per second'' meter so that you can tell how fast your graphics card is... Requires OpenGL.

## OPTIONS
-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.

-window

Draw on a newly-created window. This is the default.

-root

Draw on the root window.

-light | -no-light

Use Flat Coloring.

-wire

Render in wireframe instead of solid.

-delay number

Per-frame delay, in microseconds. Default: 10000 (0.01 seconds.).

-image file

The texture map to use.

-quads number

Quad Count. 1 - 50. Default: 5.

-light | -no-light

Whether to enable lighting.

-fog | -no-fog

Whether to enable fog.

-texture | -no-texture

Whether to enable texturing.

-mipmap | -no-mipmap

Whether to enable texture mipmaps.

-blend | -no-blend

Whether to enable blending.

-antialias | -no-antialias

Whether to anti-alias lines.

-texture_quality | -no-texture_quality

Whether to enable texture filtering.

-do_depth | -no-do_depth

Whether to enable depth buffer.

-fps

Display the current frame rate, CPU load, and polygon count.

## 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 © 2002 by David Konerding. 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
David Konerding.


quasicrystal

title: quasicrystal(6)

summary: aperiodic plane tilings.

text:
# quasicrystal(6)

## NAME
quasicrystal - aperiodic plane tilings.

## SYNOPSIS
quasicrystal [-display host:display.screen] [-visual visual] [-window] [-root] [-delay number] [-speed number] [-count number] [-contrast percent] [-no-wander] [-no-spin] [-asymmetric] [-fps]

## DESCRIPTION
A quasicrystal is a structure that is ordered but aperiodic. Two-dimensional quasicrystals can be generated by adding a set of planes where x is the sine of y. Different complex aperiodic plane tilings are produced depending on the period, position, and rotation of the component planes, and whether the rotation of the planes is evenly distributed around the circle (the "symmetric" option, above) or random. See also the "RD-Bomb", "CWaves" and "Penrose" screen savers.

## OPTIONS
-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.

-window

Draw on a newly-created window. This is the default.

-root

Draw on the root window.

-delay number

Per-frame delay, in microseconds. Default: 30000 (0.03 seconds.).

-speed number

Animation speed. 2 for twice as fast, 0.5 for half as fast.

-contrast contrast

Contrast. Sort of. Default 30%.

-count number

How many planes to use. Default 17.

-wander | -no-wander

Whether the planes should displace horizontally and vertically.

-spin | -no-spin

Whether the planes should rotate.

-asymmetric

Allow each plane to rotate freely instead of being constrained to an even distribution around the circle.

-fps | -no-fps

Whether to show a frames-per-second display at the bottom of the screen.

## 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 by Jamie Zawinski. 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
Jamie Zawinski.


queens

title: queens(6)

summary: n queens screensaver

text:
# queens(6)

## NAME
queens - n queens screensaver

## SYNOPSIS
queens [-display host:display.screen] [-window] [-root] [-install] [-visual visual] [-delay microseconds] [-wireframe] [-fps]

## DESCRIPTION
The queens program solves the n-queens problem (where, in this program, N is between 5 and 10 queens) using a straightforward backtracking algorithm. The problem is: how may one place N queens on an NxN chessboard such that no queen can attack a sister?

## OPTIONS
queens 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.

-wireframe

Render in wireframe instead of solid. -fps Display the current frame rate, CPU load, and polygon count.

## 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.

## BUGS
It's not unknown for this and other OpenGL hacks to fail under hardware accelaration (UtahGLX) and take the X server with them. Texture images must be 16x16 or 32x32 or 64x64 etc.

## SEE ALSO
X(1), xscreensaver(1) xscreensaver-demo(1), xscreensaver-getimage(1)

## COPYRIGHT
Copyright © 2002 by Blair Tennessy. 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
Blair Tennessy <tennessb@unbc.ca>, 20-April-2002.


raverhoop

title: raverhoop(6)

text:
# raverhoop(6)

## NAME
raverhoop - Simulates an LED hula hoop in a dark room.

## SYNOPSIS
raverhoop [-display host:display.screen] [-visual visual] [-window] [-root] [-delay number] [-ncolors number] [-lights number] [-speed number] [-light-speed number] [-sustain number] [-no-wander] [-no-spin] [-fps]

## DESCRIPTION
Simulates an LED hula hoop in a dark room. Oontz oontz oontz.

## OPTIONS
-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.

-window

Draw on a newly-created window. This is the default.

-root

Draw on the root window.

-delay number

Per-frame delay, in microseconds. Default: 20000 (0.02 seconds).

-ncolors number

The number of colors to use on the hoop. Default: 12.

-lights number

The number of LEDs comprising the hoop. Default: 200.

-speed number

Speed of the motion of the object. 2.0 means twice as fast, 0.5 means half as fast.

-light-speed number

Speed at which the lights animate. 2.0 means twice as fast, 0.5 means half as fast.

-sustain number

Speed at which the after-images / vapor trails fade away. 2.0 means they last twice as long, 0.5 means half as long.

-wander | -no-wander

Whether the object should wander around the screen.

-spin | -no-spin

Whether the scene itself should spin.

-fps | -no-fps

Whether to show a frames-per-second display at the bottom of the screen.

## 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 © 2016 by Jamie Zawinski. 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
Jamie Zawinski.


razzledazzle

title: razzledazzle(6)

summary: screen saver.

text:
# razzledazzle(6)

## NAME
razzledazzle - screen saver.

## SYNOPSIS
razzledazzle [-display host:display.screen] [-visual visual] [-window] [-root] [-delay number] [-speed number] [-ncolors number] [-density number] [-thickness number] [-mode string] [-fps]

## DESCRIPTION
Generates an infinitely-scrolling sequence of dazzle camouflage patterns. Dazzle Ships were military vessels during World War I and early in World War II that were painted not to conceal but to confuse: with these Cubist overlapping stripes, it was very hard to estimate their size, range and heading. This was a big deal before the invention of Radar.

## OPTIONS
-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.

-window

Draw on a newly-created window. This is the default.

-root

Draw on the root window.

-delay number

Per-frame delay, in microseconds. Default: 30000 (0.03 seconds).

-speed number

Animation speed. 2.0 means twice as fast, 0.5 means half as fast.

-ncolors number

Colors. Default: 2.

-density number

Thickness of the grid, and overall complexity. 1 - 10. Default: 5.0.

-thickness number

Thickness of the lines. 0.05 - 1.0. Default: 0.1.

-mode string

Random, Ships or Flat. Default Random.

-fps | -no-fps

Whether to show a frames-per-second display at the bottom of the screen.

## 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 © 2018 by Jamie Zawinski. 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
Jamie Zawinski.


romanboy

title: romanboy(6)

text:
# 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] [-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] [-view-mode view-mode] [-walk] [-turn] [-no-deform] [-deformation-speed float] [-initial-deformation float] [-roman] [-boy] [-surface-order number] [-orientation-marks] [-projection mode] [-perspective] [-orthographic] [-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 deformation (homotopy) between these two famous immersions of the real projective plane was constructed by François Apéry.

The real projective plane is a non-orientable surface. To make this apparent, the two-sided color mode can be used. Alternatively, orientation 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 singled 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 infinity 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 displayed 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 orientation 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 displayed 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 projective plane only has one side, so this is a design choice of the visualization). 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 orientation 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 remaining bands. This choice, however, also implies that the band at infinity 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, perspective projection to the screen will be used.

There are three display modes for the projective plane: mesh (wireframe), solid, or transparent. Furthermore, the appearance of the projective 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 increasing 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 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 direction mode, the projective plane is displayed 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 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 projective 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 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.

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 topological 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 François Apéry'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.

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

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

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

-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 orientation 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 projective 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 projective 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 displayed.

-surface-order number

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

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 projection 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 orthographic projection.

The following three options determine the rotation speed of the projective plane around the three possible axes. 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.

-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 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.

-walk-speed float

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 projective plane by dragging the mouse while pressing the left mouse button. This rotates the projective plane in 3d. 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 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.

## SEE ALSO
X(1), xscreensaver(1)

## COPYRIGHT
Copyright © 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 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>, 06-jan-2020.


rubik

title: rubik(6)

summary: screen saver that solves Rubik's Cube.

text:
# rubik(6)

## NAME
rubik - screen saver that solves Rubik's Cube.

## SYNOPSIS
rubik [-display host:display.screen] [-visual visual] [-window] [-root] [-count number] [-cycles number] [-delay number] [-size number] [-hideshuffling] [-fps]

## DESCRIPTION
Draws a Rubik's Cube that rotates in three dimensions and repeatedly shuffles and solves itself.

## OPTIONS
-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.

-window

Draw on a newly-created window. This is the default.

-root

Draw on the root window.

-count number

Count. -100 - 100. Default: -30.

-cycles number

Timeout. 0 - 60. Default: 5.

-delay number

Per-frame delay, in microseconds. Default: 40000 (0.04 seconds.).

-size number

Size. -20 - 20. Default: -6.

-hideshuffling | -no-hideshuffling

Show Shuffling. Boolean.

-fps

Display the current frame rate, CPU load, and polygon count.

## 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 © 2002 by Marcelo Vianna. 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
Marcelo Vianna.


rubikblocks

title: rubikblocks(6)

text:
# rubikblocks(6)

## NAME
rubikblocks - animates the Rubik's Mirror Blocks puzzle

## SYNOPSIS
rubikblocks [-display host:display.screen] [-visual visual] [-window] [-root] [-install] [-delay microseconds] [-texture] [-no-texture] [-mono] [-wireframe] [-spin] [-no-spin] [-wander] [-no-wander] [-randomize] [-no-randomize] [-spinspeed number] [-rotspeed number] [-wanderspeed number] [-wait number] [-cubesize number] [-fps]

## DESCRIPTION
This program animates a puzzle called Rubik's Mirror Blocks. The moves are chosen randomly.

## OPTIONS
rubikblocks 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 long to pause between frames. Default is 20000, or 0.02 second.

-texture

Use texture maps. This is the default.

-no-texture

Use solid colors. Looks a bit weird.

-mono

Disable both texture maps and colors. Ditto.

-wireframe

Only draw outlines. Outlines of each piece, not only the whole object, are drawn.

-spin

Spin the whole object around X, Y and Z axes. This is the default.

-no-spin

Do not spin, stay in the same tilt all the time.

-wander

Move the object around the screen. This is the default.

-no-wander

Keep the object centered on the screen.

-randomize

Shuffle the puzzle randomly at startup. This is the default.

-no-randomize

Do not shuffle at startup, begin at the shape of cube.

-spinspeed number

The relative speed of spinning. Default is 1.0.

-rotspeed number

The relative speed of the moves. Default is 3.0. Setting to ≤ 0.0 makes the object stay at one configuration.

-wanderspeed number

The relative speed of wandering around the screen. Default is 0.02.

-wait number

How long to stay at final position after each move. The meaning of the argument is again relative. Default is 40.0.

-cubesize number

Size of the object. Value of 3.0 fills roughly all the screen.

-fps

Display the current frame rate, CPU load, and polygon count.

## 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 © 2009 by Vasek Potocek. 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
Vasek Potocek <vasek.potocek@post.cz>, 04-Feb-09.


sballs

title: sballs(6)

summary: draws balls spinning like crazy in GL

text:
# sballs(6)

## NAME
sballs - draws balls spinning like crazy in GL

## SYNOPSIS
sballs [-display host:display.screen] [-window] [-root] [-visual visual] [-delay microseconds] [-object object_number] [-cycles sphere_speed] [-size viewport_size] [-texture] [-no-texture] [-wireframe] [-no-wireframe] [-trackmouse] [-no-trackmouse] [-fps]

## DESCRIPTION
The sballs program draws an animation of balls spinning like crazy in GL.

## OPTIONS
sballs 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.

-fps

Display the current frame rate, CPU load, and polygon count.

-object object_number

Specify how the spheres are grouped (forming an object). Objects are:

1

tetrahedron

2

cube. This is the default.

3

octahedron

4

dodecahedron

5

icosahedron

6

plane

7

pyramid

8

star

-size viewport_size

Viewport of GL scene is specified size if greater than 32 and less than screensize. Default value is 0, meaning full screensize.

-texture

Show a textured background and spheres. This is the default.

-no-texture

Disables texturing the animation.

-trackmouse

Let the mouse be a joystick to change the view of the animation. This implies -no-wander.

-no-trackmouse

Disables mouse tracking. This is the default.

-wire

Draw a wireframe rendition of the spheres.

## 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 © 2001 by Eric Lassauge. 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.

The original code for this mode was written by Mustata Bogdan (LoneRunner) <lonerunner@planetquake.com> and can be found at http://www.cfxweb.net/lonerunner/

## AUTHOR
Mustata Bogdan (LoneRunner) <lonerunner@planetquake.com> Eric Lassauge <lassauge@users.sourceforge.net>


scooter

title: scooter(6)

text:
# scooter(6)

## NAME
scooter - shows a journey through space tunnel and stars

## SYNOPSIS
scooter [-display host:display.screen] [-mono] [-delay millisecs] [-cycles cycles] [-count count] [-size size] [-ncolors colors] [-window] [-root] [-install | -noinstall] [-visual visual] [-fps | -no-fps] [-pair]

## DESCRIPTION
scooter is a screensaver that shows endless journey through space tunnel and stars.

## OPTIONS
scooter 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 milliseconds

How much of a delay should be introduced between steps of the animation. Default 10, or about 1/100th second.

-cycles cycles

How fast/slow the screensaver is. cycles takes number of cycles. The default is 5 cycles.

-count count

Specifies how many doors in a tunnel can be rendered. Minimum is 4. Default is 24.

-size size

Specifies how many stars outside the tunnel can be rendered. Default is 100.

-ncolors colors

Specifies number of colors. A number that is less than or equals 2 means monochrome. -mono achieves the same thing.

-pair

Start screensaver in pairs (Not recommended)

-fps

Display the current frame rate and CPU load.

## 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), xscreensaver-demo(1), xscreensaver-getimage(1)

## COPYRIGHT
Copyright © 2001 by Sven Thoennissen. 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
Sven Thoennissen <posse@gmx.net>


title: sierpinski3d(6)

summary: 3D Sierpinski triangle fractal.

text:
# sierpinski3d(6)

## NAME
sierpinski3d - 3D Sierpinski triangle fractal.

## SYNOPSIS
sierpinski3d [-display host:display.screen] [-visual visual] [-window] [-root] [-delay number] [-speed number] [-depth number] [-wireframe] [-fps]

## DESCRIPTION
This draws the three-dimensional variant of the recursive Sierpinski triangle fractal, using GL.

## OPTIONS
-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.

-window

Draw on a newly-created window. This is the default.

-root

Draw on the root window.

-delay number

Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.).

-speed number

Number of frames before changing shape. Default: 150.

-depth number

Max depth to descend. Default: 5. You probably don't have enough memory for 6.

-wireframe

Render in wireframe instead of solid.

-fps

Display the current frame rate, CPU load, and polygon count.

## 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 © 2002 by Tim Robinson and Jamie Zawinski. 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
Tim Robinson and Jamie Zawinski.


skytentacles

title: skytentacles(6)

summary: 3D tentacles from the sky!

text:
# skytentacles(6)

## NAME
skytentacles - 3D tentacles from the sky!

## SYNOPSIS
skytentacles [-display host:display.screen] [-visual visual] [-window] [-root] [-delay int] [-speed ratio] [-count int] [-slices int] [-length float] [-wiggliness ratio] [-flexibility ratio] [-color color] [-stripe-color color] [-sucker-color color] [-segments int] [-thickness ratio] [-no-smooth] [-fps]

## DESCRIPTION
There is a tentacled abomination in the sky. From above you it devours.

## OPTIONS
-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.

-window

Draw on a newly-created window. This is the default.

-root

Draw on the root window.

-delay int

Delay between frames, in microseconds. Default 30000.

-speed ratio

Less than 1 for slower, greater than 1 for faster. Default 1.

-count int

How many tentacles. Default 8.

-thickness ratio

Less than 1 for thinner tentacles, greater than 1 for thicker. Default 1.

-length ratio

Length of the tentacles. Default 9.

-wiggliness ratio

A measure of how bendy the tentacles are. Smaller numbers result in smoother flexing; larger numbers make it "crinkly". Default 0.35.

-flexibility ratio

Another measure of how bendy the tentacles are. Smaller numbers result in straighter tentacles; larger numbers result in more extreme curves. Default 0.35.

-color color

-stripe-color color

-sucker-color color

The colors of the various parts of the tentacle. Default green with a redish stripe.

-slices int

-segments int

Larger numbers increase number of polygons in the object mesh. Default 32.

-no-smooth

Make the tentacles appear faceted instead of smooth.

-fps

Display the current frame rate, CPU load, and polygon count.

## 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 © 2008 by Jamie Zawinski. 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
Jamie Zawinski.


sonar

title: sonar(6)

summary: display a sonar scope

text:
# sonar(6)

## NAME
sonar - display a sonar scope

## SYNOPSIS
sonar [-ping hosts-or-subnets] [-ping-timeout int] [-delay usecs] [-speed ratio] [-sweep-size ratio] [-font-size points] [-team-a-name string] [-team-b-name string] [-team-a-count int] [-team-b-count int] [-no-dns] [-no-times] [-no-wobble] [-debug] [-fps]

## DESCRIPTION
This draws a sonar screen that pings (get it?) the hosts on your local network, and plots their distance (response time) from you. The three rings represent ping times of approximately 2.5, 70 and 2,000 milliseconds respectively.

Alternately, it can run a simulation that doesn't involve hosts.

## OPTIONS
sonar understands the following options:

-ping hosts-or-subnets

The list of things to ping, separated by commas or spaces. Elements of this list may be:

simulation

Run in simulation mode instead of pinging real hosts.

hostname

Ping the given host.

A.B.C.D

Ping the given IPv4 address.

subnet

Ping the local subnet. On systems where we can determine the local network mask, we use that; otherwise, we assume Class C (254 hosts).

subnet/NN

Ping a different-sized local subnet: e.g., subnet/28 would ping a 4-bit subnet (the nearest 14 addresses). On systems where we can determine the local network mask, we always use that.

A.B.C.D/NN

Ping an arbitrary other IPv4 subnet. The address specifies the base address, and the part after the slash is how wide the subnet is. Typical values are /24 (for 254 addresses) and /28 (for 14 addresses).

filename

Ping the hosts listed in the given file. This file can be in the format used by /etc/hosts, or it can be any file that has host names as the first or second element on each line. If you use ssh, try this:

sonar -ping $HOME/.ssh/known_hosts

-ping-timeout int

The amount of time in milliseconds the program will wait for an answer to a ping.

-delay int

Delay between frames, in microseconds. Default 20000.

-speed ratio

Less than 1 for slower, greater than 1 for faster. Default 1.

-sweep-size ratio

How big the glowing sweep area should be. Default 0.3.

-font-size points

How large the text should be. Default 10 points.

-no-wobble

Keep the display stationary instead of very slowly wobbling back and forth.

-no-dns

Do not attempt to resolve IP addresses to hostnames.

-no-times

Do not display ping times beneath the host names.

-team-a-name string

In simulation mode, the name of team A.

-team-b-name string

In simulation mode, the name of team B.

-team-a-count int

In simulation mode, the number of bogies on team A.

-team-b-count int

In simulation mode, the number of bogies on team B.

-fps

Display the current frame rate, polygon count, and CPU load.

## NOTES
On most Unix systems, this program must be installed as setuid root in order to ping hosts. This is because root privileges are needed to create an ICMP RAW socket. Privileges are disavowed shortly after startup (just after connecting to the X server) so this is believed to be safe:

```
chown root:root sonar
chmod u+s sonar
```

It is not necessary to make it setuid on MacOS systems, because on MacOS, unprivileged programs can ping by using ICMP DGRAM sockets instead of ICMP RAW.

In ping-mode, the display is a logarithmic scale, calibrated so that the three rings represent ping times of approximately 2.5, 70 and 2,000 milliseconds respectively.

This means that if any the hosts you are pinging take longer than 2 seconds to respond, they won't show up; and if you are pinging several hosts with very fast response times, they will all appear close to the center of the screen (making their names hard to read.)

## BUGS
Does not support IPv6.

## SEE ALSO
X(1), xscreensaver(1), ping(8), ping6(8)

## COPYRIGHT
Copyright © 2000-2012 by Jamie Zawinski <jwz@jwz.org>

Copyright © 1998 by Stephen Martin. <smartin@canada.com>

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.

## AUTHORS
Stephen Martin <smartin@canada.com>, 3-nov-1998.

Subnet support, etc. added by Jamie Zawinski, 17-Jul-2000.

Rewritten using OpenGL instead of X11 by Jamie Zawinski, 12-Aug-2008.


sphereeversion

title: sphereeversion(6)

text:
# sphereeversion(6)

## NAME
sphereeversion - Displays a sphere eversion.

## SYNOPSIS
sphereeversion [-display host:display.screen] [-install] [-visual visual] [-window] [-root] [-delay usecs] [-fps] [-mode display-mode] [-surface] [-transparent] [-appearance appearance] [-solid] [-parallel-bands] [-meridian-bands] [-graticule mode] [-surface-order order] [-colors color-scheme] [-twosided-colors] [-parallel-colors] [-meridian-colors] [-deformation-speed float] [-projection mode] [-perspective] [-orthographic] [-speed-x float] [-speed-y float] [-speed-z float]

## DESCRIPTION
The sphereeversion program shows a sphere eversion, i.e., a smooth deformation (homotopy) that turns a sphere inside out. During the eversion, the deformed sphere is allowed to intersect itself transversally. However, no creases or pinch points are allowed to occur.

The deformed sphere can be projected to the screen either perspectively or orthographically.

There are three display modes for the sphere: solid, transparent, or random. If random mode is selected, the mode is changed each time an eversion has been completed.

The appearance of the sphere can be as a solid object, as a set of see-through bands, or random. The bands can be parallel bands or meridian bands, i.e., bands that run along the parallels (lines of latitude) or bands that run along the meridians (lines of longitude) of the sphere. If random mode is selected, the appearance is changed each time an eversion has been completed.

It is also possible to display a graticule (i.e., a coordinate grid consisting of parallel and meridian lines) on top of the surface. The graticule mode can be set to on, off, or random. If random mode is selected, the graticule mode is changed each time an eversion has been completed.

It is possible to define a surface order of the sphere eversion as random or as a value between 2 and 5. This determines the the complexity of the deformation. For higher surface orders, some z-fighting might occur around the central stage of the eversion, which might lead to some irregular flickering of the displayed surface if it is displayed as a solid object. For odd surface orders, z-fighting will occur very close to the central stage of the eversion since the deformed sphere is a doubly covered Boy surface (for surface order 3) or a doubly covered generalized Boy surface (for surface order 5) in this case. If you find this distracting, you should set the surface order to 2. If a random surface order is selected, the surface order is changed each time an eversion has been completed.

The colors with with the sphere is drawn can be set to two-sided, parallel, meridian, or random. In two-sided mode, the sphere is drawn with red on one side and green on the other side. In parallel mode, the sphere is displayed with colors that run from red to cyan on one side of the surface and from green to violet on the other side. The colors are aligned with the parallels of the sphere in this mode. In meridian mode, the the sphere is displayed with colors that run from red to white to cyan to black and back to red on one side of the surface and from green to white to violet to black and back to green on the other side. The colors are aligned with the meridians of the sphere in this mode. If random mode is selected, the color scheme is changed each time an eversion has been completed.

By default, the sphere is rotated to a new viewing position each time an eversion has been completed. In addition, it is possible to rotate the sphere while it is deforming. The rotation speed for each of the three coordinate axes around which the sphere rotates can be chosen arbitrarily. For best effects, however, it is suggested to rotate only around the z axis while the sphere is deforming.

This program is inspired by the following paper: Adam Bednorz, Witold Bednorz: "Analytic sphere eversion using ruled surfaces", Differential Geometry and its Applications 64:59-79, 2019.

## OPTIONS
sphereeversion 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 three options are mutually exclusive. They determine how the deformed sphere is displayed.

-mode random

Display the sphere in a random display mode (default).

-mode surface (Shortcut: -surface)

Display the sphere as a solid surface.

-mode transparent (Shortcut: -transparent)

Display the sphere as a transparent surface.

The following four options are mutually exclusive. They determine the appearance of the deformed sphere.

-appearance random

Display the sphere with a random appearance (default).

-appearance solid (Shortcut: -solid)

Display the sphere as a solid object.

-appearance parallel-bands (Shortcut: -parallel-bands)

Display the sphere as see-through bands that lie along the parallels of the sphere.

-appearance meridian-bands (Shortcut: -meridian-bands)

Display the sphere as see-through bands that lie along the meridians of the sphere.

The following three options are mutually exclusive. They determine whether a graticule is displayed on top of the sphere.

-graticule random

Randomly choose whether to display a graticule (default).

-graticule on

Display a graticule.

-graticule off

Do not display a graticule.

The following option determines the order of the surface to be displayed.

-surface-order order

The surface order can be set to random or to a value between 2 and 5 (default: random). This determines the the complexity of the deformation.

The following four options are mutually exclusive. They determine how to color the deformed sphere.

-colors random

Display the sphere with a random color scheme (default).

-colors twosided (Shortcut: -twosided-colors)

Display the sphere with two colors: red on one side and green on the other side.

-colors parallel (Shortcut: -parallel-colors)

Display the sphere with colors that run from red to cyan on one side of the surface and from green to violet on the other side. The colors are aligned with the parallels of the sphere. If the sphere is displayed as parallel bands, each band will be displayed with a different color.

-colors meridian (Shortcut: -meridian-colors)

Display the sphere with colors that run from red to white to cyan to black and back to red on one side of the surface and from green to white to violet to black and back to green on the other side. The colors are aligned with the meridians of the sphere. If the sphere is displayed as meridian bands, each band will be displayed with a different color.

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 three options are mutually exclusive. They determine how the deformed sphere is projected from 3d to 2d (i.e., to the screen).

-projection random

Project the sphere from 3d to 2d using a random projection mode (default).

-projection perspective (Shortcut: -perspective)

Project the sphere from 3d to 2d using a perspective projection.

-projection orthographic (Shortcut: -orthographic)

Project the sphere from 3d to 2d using an orthographic projection.

The following three options determine the rotation speed of the deformed sphere around the three possible axes. 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.

-speed-x float

Rotation speed around the x axis (default: 0.0).

-speed-y float

Rotation speed around the y axis (default: 0.0).

-speed-z float

Rotation speed around the z axis (default: 0.0).

## INTERACTION
If you run this program in standalone mode, you can rotate the deformed sphere by dragging the mouse while pressing the left mouse button. This rotates the sphere in 3d. To examine the deformed sphere at your leisure, it is best to set all speeds to 0. Otherwise, the deformed sphere will rotate while the left mouse button is not pressed.

## 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 © 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>, 01-jun-2020.