Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
hopffibration(6)	      XScreenSaver manual	      hopffibration(6)

NAME
       hopffibration - Draws the Hopf fibration	of the 4d hypersphere

SYNOPSIS
       hopffibration [--display	host:display.screen] [--install] [--visual vi-
       sual]  [--window] [--root] [--window-id number] [--delay	usecs] [--fps]
       [--shadows] [--details coarse | medium |	fine] [--base-space]  [--anti-
       aliasing] [--perspective] [--orthographic]

DESCRIPTION
       The  hopffibration  program  shows  the Hopf fibration of the 4d	hyper-
       sphere.	The Hopf fibration is based on the  Hopf  map,	a  many-to-one
       continuous function from	the 4d hypersphere (the	3-sphere) onto the the
       ordinary	 3d sphere (the	2-sphere) such that each distinct point	of the
       2-sphere	is mapped from a distinct great	circle	(a  1-sphere)  of  the
       3-sphere.   Hence,  the inverse image of	a point	on the 2-sphere	corre-
       sponds to a great circle	on the 3-sphere.  The 2-sphere is  called  the
       base  space,  each  circle  corresponding to a point on the 2-sphere is
       called a	fiber, and the 3-sphere	is called the total space.

       The program displays the	base space (the	2-sphere) as a	semi-transpar-
       ent  gray sphere	in the bottom right corner of the display.  The	points
       on the base space are displayed as small	colored	spheres.   The	fibers
       in the total space are displayed	in the same color as the corresponding
       points on the base space.

       The fibers in the total space are projected from	4d to 3d using stereo-
       graphic	projection and then compressing	the infinite 3d	space to a fi-
       nite 3d ball to display the fibers compactly.  All  fibers  except  one
       fiber  that passes through the north pole of the	3-sphere are thus pro-
       jected to deformed circles in 3d.  The program displays these  deformed
       circles	as  closed  tubes  (topological	 tori).	 The single fiber that
       passes through the north	pole of	the 3-sphere is	projected to an	 infi-
       nite  line  by  the stereographic projection.  This line	passes through
       infinity	in 3d and therefore topologically is  a	 circle.   Compressing
       this infinite line to a finite ball maps	it to a	straight line segment.
       The  program  displays  this  line  segment as a	cylinder.  However, it
       should be thought of as a circle	through	infinity.

       The fibers, base	space, and base	 points	 are  then  projected  to  the
       screen either perspectively or orthographically.

       The  program displays various interesting configurations	of base	points
       and fibers.  Look out for the following configurations:

             Any two fibers form a Hopf link.

             More generally, each fiber is linked with	each other  fiber  ex-
	      actly once.

             Each circle on the 2-sphere creates a set	of fibers that forms a
	      Clifford torus on	the 3-sphere (i.e., in 4d).  Clifford tori are
	      flat (in the same	sense that the surface of a cylinder is	flat).

             If  a  circle  on	 the 2-sphere is not a circle of latitude, the
	      projection of the	Clifford torus to 3d results in	a (compressed)
	      Dupin cyclide.

             More generally, any closed  curve	 on  the  2-sphere  creates  a
	      torus-like surface on the	3-sphere that is flat.	These surfaces
	      are called Hopf tori or Bianchi-Pinkall flat tori.  Look for the
	      wave-like	curve on the 2-sphere to see a Hopf torus.

             A	 circular  arc	on  the	 2-sphere  creates  a Hopf band	on the
	      3-sphere.	 The Hopf band is a Seifert surface of the  Hopf  link
	      that forms the boundaries	of the Hopf band.

             Two  or  more  circles of	latitude on the	2-sphere create	two or
	      more nested Clifford tori	on the 3-sphere.

             More generally, two or more disjoint  circles  on	 the  2-sphere
	      create two or more linked	Clifford tori on the 3-sphere.

             A	 great circle through the north	pole of	the 2-sphere creates a
	      parabolic	ring cyclide (which is compressed to  lie  within  the
	      ball  in	the  3d	projection).  A	parabolic ring cyclide divides
	      the entire 3d space into two congruent  parts  that  are	inter-
	      locked, i.e., linked.

             By  turning  a  circle on	the 2-sphere so	that it	passes through
	      the north	pole of	the 2-sphere, the  projection  of  the	corre-
	      sponding Clifford	torus reverses its inside and outside in 3d.

             The  Clifford  torus  corresponding  to  a  great	 circle	on the
	      2-sphere divides the 3-sphere into two congruent solid tori that
	      fill the entire 3-sphere.	 The two solid tori  on	 the  3-sphere
	      correspond  to  the  two hemispheres into	which the great	circle
	      divides the 2-sphere.  The solid tori in the  3-sphere  are  at-
	      tached  to  each other at	the Clifford torus.  The congruence of
	      the solid	tori is	visible	in a particularly striking  manner  if
	      the  great  circle that creates the Clifford torus is rotated so
	      that it passes through the north pole of the  2-sphere,  thereby
	      creating	a  parabolic  ring  cyclide  via the projection	of the
	      Clifford torus to	3d (see	above).

       During the animations, two kinds	of motions  are	 used.	 Usually,  the
       points  on the base space are moved or rotated to particular configura-
       tions.  This is apparent	by the small spheres that represent  the  base
       points changing their position on the base space, which leads to	a cor-
       responding  change  of the configuration	of the fibers.	The base space
       itself, however,	is not moved or	rotated, i.e., its orientation remains
       fixed.  Sometimes, only the projection of the fibers is rotated	in  3d
       to show some interesting	configurations more clearly, e.g., that	a Hopf
       torus  has  a  hole like	a regular torus.  In this case,	the base space
       also maintains its orientation in space.	 Since a rotation in  3d  does
       not  change the configuration of	the fibers, in this kind of animation,
       the points on the base space also remain	fixed.	Sometimes, both	 types
       of  animations  are  combined, e.g., when the projection	of one or more
       Clifford	tori is	rotated	in 3d while the	base points  of	 the  Clifford
       tori  also rotate on the	base space.  In	this case, the base space will
       only show the movement of the base points on the	base space and not the
       3d rotation of the projection of	the fibers.

       To enhance the 3d depth impression, the program displays	the shadows of
       the fibers and base points by default.  This is done by way of  a  two-
       pass  rendering algorithm in which the geometry is rendered twice.  De-
       pending on the speed of the GPU,	displaying shadows might slow down the
       rendering significantly.	 If this is the	case, the rendering of shadows
       can be switched off, saving one render pass and thus  speeding  up  the
       rendering.

       Some of the animations render complex geometries	with a very large num-
       ber  of	polygons.  This	can cause the rendering	to become slow on some
       types of	GPU.  To speed up the rendering	process, the amount of details
       that are	rendered can be	controlled  in	three  granularities  (coarse,
       medium,	and  fine).   Devices  with relatively small screens and rela-
       tively low-powered GPUs,	such as	phones or  tablets,  should  typically
       select coarse details.  Standard	GPUs should select medium details (the
       default).  High-powered GPUs on large screens may benefit from fine de-
       tails.

       By  default,  the base space and	base points are	displayed as described
       above.  If desired, the display of the base space and base  points  can
       be switched off so that only the	fibers are displayed.

       During  the  animation of the Hopf fibration, sometimes multiple	fibers
       that are	very close to each other are displayed.	 This can create  dis-
       turbing	aliasing  artifacts  that  are	especially noticeable when the
       fibers are moving or turning slowly.  Therefore,	by default,  the  ren-
       dering is performed using anti-aliasing.	 This typically	has a negligi-
       ble  effect  on	the rendering speed.  However, if shadows have already
       been switched off, coarse details have been selected, and the rendering
       is still	slow, anti-aliasing also can be	switched off to	check  whether
       it has a	noticeable effect on the rendering speed.

       This  program was inspired by Niles Johnson's visualization of the Hopf
       fibration (https://nilesjohnson.net/hopf.html).

OPTIONS
       hopffibration accepts the following options:

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

       --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.  Default 20000, or 1/50th second.

       The following options determine whether shadows are displayed.

       --shadows
	       Display	the  fibers,  base space, and base points with shadows
	       (default).

       --no-shadows
	       Display the fibers, base	space, and base	points	without	 shad-
	       ows.

       The  following  three  options  are mutually exclusive.	They determine
       with what level of detail the fibers, base space, and base  points  are
       rendered.

       --details coarse
	       Render  the fibers, base	space, and base	points with a level of
	       detail that is suitable for low-powered GPUs and	small screens,
	       e.g., phones or tablets.

       --details medium
	       Render the fibers, base space, and base points with a level  of
	       detail that is suitable for regular GPUs	(default).

       --details fine
	       Render  the fibers, base	space, and base	points with a level of
	       detail  that  is	 suitable  for	high-powered  GPUs  and	 large
	       screens.

       The  following options determine	whether	the base space and base	points
       are displayed.

       --base-space
	       Display the base	space and base points (default).

       --no-base-space
	       Do not display the base space and base points.

       The following options determine whether anti-aliasing is	used  to  dis-
       play the	fibers,	base space, and	base points.

       --anti-aliasing
	       Display	the  fibers,  base  space,  and	base points with anti-
	       aliasing	(default).

       --no-anti-aliasing
	       Display the fibers, base	space, and base	points	without	 anti-
	       aliasing.

       The  following  two options are mutually	exclusive.  They determine how
       the fibers, base	space, and base	points are projected  from  3d	to  2d
       (i.e., to the screen).

       --perspective
	       Project	the  fibers, base space, and base points from 3d to 2d
	       using a perspective projection (default).

       --orthographic
	       Project the fibers, base	space, and base	points from 3d	to  2d
	       using a orthographic projection.

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

INTERACTION
       If  you	run this program in standalone mode, you can rotate the	fibers
       by dragging the mouse while pressing the	left mouse button.

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.

       XSCREENSAVER_WINDOW
	       The window ID to	use with --root.

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

FURTHER	INFORMATION
             https://en.wikipedia.org/wiki/Hopf_fibration

             https://en.wikipedia.org/wiki/Hopf_link

             https://en.wikipedia.org/wiki/Clifford_torus

             https://en.wikipedia.org/wiki/Seifert_surface

             https://en.wikipedia.org/wiki/Dupin_cyclide

             https://en.wikipedia.org/wiki/3-sphere

COPYRIGHT
       Copyright (C) 2025 by Carsten Steger.  Permission to use, copy, modify,
       distribute,  and	 sell this software and	its documentation for any pur-
       pose 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	repre-
       sentations are made about the suitability of this software for any pur-
       pose.  It is provided "as is" without express or	implied	warranty.

AUTHOR
       Carsten Steger <carsten@mirsanmir.org>, 06-feb-2025.

X Version 11		      6.12 (07-Jul-2025)	      hopffibration(6)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=hopffibration&sektion=6&manpath=FreeBSD+Ports+15.0>

home | help