
NAME
hypertorus  Draws a hypertorus that rotates in 4d
SYNOPSIS
hypertorus [display host:display.screen] [install] [visual visual]
[window] [root] [delay usecs] [fps] [wireframe] [surface]
[transparent] [solid] [bands] [spirals{1,2,4,8,16}] [twosided]
[colorwheel] [perspective3d] [orthographic3d] [perspective4d]
[orthographic4d] [speedwx float] [speedwy float] [speedwz
float] [speedxy float] [speedxz float] [speedyz float]
DESCRIPTION
The hypertorus program shows the Clifford torus as it rotates in 4d.
The Clifford torus is a torus lies on the "surface" of the hypersphere
in 4d. The program projects the 4d torus to 3d using either a
perspective or an orthographic projection. Of the two alternatives,
the perspective projection looks much more appealing. In orthographic
projections the torus degenerates into a doubly covered cylinder for
some angles. The projected 3d torus can then be projected to the
screen either perspectively or orthographically. There are three
display modes for the torus: mesh (wireframe), solid, or transparent.
Furthermore, the appearance of the torus can be as a solid object or as
a set of seethrough bands or seethrough spirals. Finally, the colors
with with the torus is drawn can be set to either twosided or to a
color wheel. In the first case, the torus is drawn with red on the
outside and green on the inside. This mode enables you to see that the
torus turns insideout as it rotates in 4d. The second mode draws the
torus with a fully saturated color wheel. This gives a very nice
effect when combined with the seethrough bands or seethrough spirals
mode. The rotation speed for each of the six planes around which the
torus rotates can be chosen. This program is very much inspired by
Thomas Banchoff's book "Beyond the Third Dimension: Geometry, Computer
Graphics, and Higher Dimensions", Scientific American Library, 1990.
OPTIONS
hypertorus accepts the following options:
window Draw on a newlycreated 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 three options are mutually exclusive. They determine how
the torus is displayed.
wireframe
Display the torus as a wireframe mesh.
surface
Display the torus as a solid surface (default).
transparent
Display the torus as a transparent surface.
The following seven options are mutually exclusive. They determine the
appearance of the torus.
solid Display the torus as a solid object.
bands Display the torus as seethrough bands (default).
spirals1, spirals2, spirals4, spirals8, spirals16
Display the torus as seethrough spirals with the indicated
number of spirals.
The following two options are mutually exclusive. They determine how
to color the torus.
twosided
Display the torus with two colors: red on the outside and green
on the inside.
colorwheel
Display the torus with a fully saturated color wheel (default).
If the torus is displayed as seethrough bands each band will
be displayed with a different color. Likewise, if the torus is
displayed as seethrough spirals each spiral will receive a
different color.
The following two options are mutually exclusive. They determine how
the torus is projected from 3d to 2d (i.e., to the screen).
perspective3d
Project the torus from 3d to 2d using a perspective projection
(default).
orthographic3d
Project the torus from 3d to 2d using an orthographic
projection.
The following two options are mutually exclusive. They determine how
the torus is projected from 4d to 3d.
perspective4d
Project the torus from 4d to 3d using a perspective projection
(default).
orthographic4d
Project the torus from 4d to 3d using an orthographic
projection.
The following six options determine the rotation speed of the torus
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.
speedwx float
Rotation speed around the wx plane (default: 1.1).
speedwy float
Rotation speed around the wy plane (default: 1.3).
speedwz float
Rotation speed around the wz plane (default: 1.5).
speedxy float
Rotation speed around the xy plane (default: 1.7).
speedxz float
Rotation speed around the xz plane (default: 1.9).
speedyz float
Rotation speed around the yz plane (default: 2.1).
fps Display the current frame rate, CPU load, and polygon count.
INTERACTION
If you run this program in standalone mode you can rotate the
hypertorus by dragging the mouse while pressing the left mouse button.
This rotates the hypertorus 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 hypertorus is rotated in 4D, i.e., around the
xy, xz, and yz planes. To examine the hypertorus at your leisure, it
is best to set all speeds to 0. Otherwise, the hypertorus 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 © 20032005 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>, 28sep2005.
 