hypertorus(6)
π hypertorus(6) π
okay so this is the page for hypertorus, and it lives in the β¨ XScreenSaver manual β¨ β buckle up bestie, we're going to the fourth dimension π
πΈ NAME πΈ
hypertorus β draws a hypertorus that rotates in 4d. yes. four dee. no cap. π
π¦ SYNOPSIS π¦
hypertorus [--display host:display.screen] [--install] [--visual visual]
[--window] [--root] [--window-id number] [--delay usecs] [--fps]
[--wireframe] [--surface] [--transparent] [--solid] [--bands]
[--spirals-{1,2,4,8,16}] [--onesided] [--twosided] [--colorwheel]
[--change-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 β¨
so hypertorus shows you the Clifford torus as it rotates in 4d, and honestly it's giving main character energy. π
the Clifford torus is a torus that lies on the "surface" of the hypersphere in 4d β iconique.
the program projects that 4d torus down to 3d, and it's got two ways of doing that: a perspective projection or an orthographic projection. of the two, perspective looks way more appealing ngl. because in orthographic projections, the torus literally degenerates into a doubly covered cylinder at some angles π like it just gives up. then the projected 3d torus can get projected to your screen either perspectively or orthographically too. two layers of projection, we love a layered queen. π
there are three display modes for the torus: mesh (wireframe), solid, or transparent. and on top of that, the torus can look like a solid object, or like a set of see-through bands, or like see-through spirals. obsessed. π
lastly, the colors it's drawn with can be one-sided, two-sided, or a color wheel β and those colors can be static or changing dynamically. here's the deets:
- one-sided color mode β the torus is drawn with the same color on the inside and the outside. simple, clean, slay.
- two-sided color mode β the torus is drawn red on the outside and green on the inside if static colors are used. if changing colors are used, dynamically varying complementary colors get used for the two sides. and this mode is literally the whole point because it lets you see that the 3d projection of the torus turns inside-out as it rotates in 4d. iykyk. π
- color wheel mode β the torus gets a fully saturated color wheel. if changing colors are used, the colors of the color wheel vary dynamically. and this mode gives a very nice effect when you combine it with see-through bands or see-through spirals. lowkey the best combo. β¨
and finally β the rotation speed for each of the six planes around which the torus rotates can be chosen. six planes. we're so spoiled. π«Ά
this program is 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 newly-created window. this is the default, bestie. πͺ--rootβ draw on the root window.--window-id numberβ draw on the specified 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. default25000, or 1/40th second. β±οΈ
π¨ the display-mode trio π¨
the following three options are mutually exclusive. pick one, babe. 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 appearance seven π
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 see-through bands (default).--spirals-1,--spirals-2,--spirals-4,--spirals-8,--spirals-16β display the torus as see-through spirals with the indicated number of spirals. π
π the coloring trio π
the following three options are mutually exclusive. they determine how to color the torus.
--onesidedβ display the torus with a single color.--twosidedβ display the torus with two colors: one color on the outside and the complementary on the inside. for static colors, the colors are red and green.--colorwheelβ display the torus with a fully saturated color wheel (default). if the torus is displayed as see-through bands, each band will be displayed with a different color. likewise, if the torus is displayed as see-through spirals, each spiral will receive a different color. πβ¨
π¦ static vs. dynamic colors π¦
the following options determine whether the colors with which the torus is displayed are static or changing dynamically.
--change-colorsβ change the colors with which the torus is displayed dynamically. π«--no-change-colorsβ use static colors to display the torus (default).
π§ 3d β 2d projection π§
the following two options are mutually exclusive. they determine how the torus is projected from 3d to 2d (i.e., to the screen).
--perspective-3dβ project the torus from 3d to 2d using a perspective projection (default).--orthographic-3dβ project the torus from 3d to 2d using an orthographic projection.
π 4d β 3d projection π
the following two options are mutually exclusive. they determine how the torus is projected from 4d to 3d.
--perspective-4dβ project the torus from 4d to 3d using a perspective projection (default).--orthographic-4dβ project the torus from 4d to 3d using an orthographic projection.
β the six speed dials β
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. and bestie, keep the speeds relatively small β like, 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).
π₯ and one for the stats girlies π₯
--fpsβ display the current frame rate, CPU load, and polygon count. π the numbers, the numbers.
π«Ά INTERACTION π«Ά
if you run this program in standalone mode, you can rotate the hypertorus by dragging the mouse while pressing the left mouse button. that 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. yes really. shift = fourth dimension. periodt. β¨
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. π she does not sit still.
πΈ ENVIRONMENT πΈ
DISPLAYβ to get the default host and display number.XENVIRONMENTβ to get the name of a resource file that overrides the global resources stored in theRESOURCE_MANAGERproperty.XSCREENSAVER_WINDOWβ the window ID to use with--root.
π SEE ALSO π
X(1), xscreensaver(1)
π COPYRIGHT π
Copyright Β© 2003-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>, 11-jan-2020.
and that's the whole thing bestie!! π¦ this page is from X Version 11, version 6.15 (30-Mar-2026) β screenshot it, frame it, put it on the fridge πβ¨ β§ο½₯οΎ slay οΎο½₯β§
π¦ where this page comes from
- alpine 3.24: xscreensaver-doc 6.15-r0 Β· GPL-2.0-or-later GPL-3.0-or-later 0BSD MIT
- arch rolling: xscreensaver 6.15-1 Β· LicenseRef-XScreenSaver
- nixpkgs unstable: xscreensaver 6.15
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms