The hypertorus is parametrized as the extrusion of a torus along a circular path in 4D. If the torus is rotated as it is extruded then twists are added to the extruded hyper-toroidal shape. Much the same way that adding a twist changes a cylinder into an nonorientable Möbius band, a twisted hypertorus can similarly have non-trivial topology.
Initialization code
Initialization code
These are some custom functions are defined which produce the graphic elements used throughout this article.
makeHypertorusGraphics
makeHypertorusGraphics
makeCoordinateGridGraphics
makeCoordinateGridGraphics
In[]:=
ClearAll[makeCoordinateGridGraphics];Options[makeCoordinateGridGraphics]={};makeCoordinateGridGraphics[]:=Module[{rangeX=Range[-20,20]*2,rangeY=Range[-20,20]*2},{Table[Line[{{x,First[rangeY],0},{x,Last[rangeY],0}}],{x,rangeX}],Table[Line[{{First[rangeX],y,0},{Last[rangeX],y,0}}],{y,rangeY}]}]
makeTwistedHypertorusGraphics
makeTwistedHypertorusGraphics
cubicSigmoid
cubicSigmoid
In[]:=
cubicSigmoid[a_,b_][x_]:=3 -2 ;
2
Clip,{0,1}
-a+x
-a+b
3
Clip,{0,1}
-a+x
-a+b
Manipulate: Twisted Hypertorus
Manipulate: Twisted Hypertorus
Add twists to the hypertorus, move and rotate it in 4D and observe the hypershape’s intersection with the {w=0} 3D hyperplane:
In[]:=
Manipulate[{innerTorusGfx,outerTorusGfx,sliceGfx}=makeTwistedHypertorusGraphics["Radius1"->2,"Radius2"->7,"Radius3"->15,"Twist1"->twist1,"Twist2"->twist2,"Twist3"->twist3,"SliceValues"->{0},"SliceDivisions"->{8,16,32},"InnerDivisions"->32,"OuterDivisions"->32,"RotationMatrix"->RotationMatrix[N[rotateXW],{{1,0,0,0},{0,0,0,1}}].RotationMatrix[N[rotateYW],{{0,1,0,0},{0,0,0,1}}],"TranslationVector"->{0,0,0,translateW},"WProjectionVector"->{0,0,1}];Graphics3D[{Specularity[1,50],{Hue[0,.7,.7],EdgeForm[],sliceGfx},If[Positive[innerOpacity],{FaceForm[Opacity[innerOpacity,Gray]],EdgeForm[Opacity[innerOpacity]],innerTorusGfx}],If[Positive[outerOpacity],{FaceForm[],EdgeForm[Opacity[outerOpacity]],outerTorusGfx}],{FaceForm[],EdgeForm[Thick],If[Not[SameQ[sliceGfx,Null]],Apply[Cuboid,CoordinateBoundingBox[First[sliceGfx]]]]},{Opacity[.8],makeCoordinateGridGraphics[]}},Boxed->False,PlotRange->40,ViewAngle->.4,ViewPoint->Normalize[{1,2,1}]*2,Lighting->"Neutral",ImageSize->{400,400}],{{twist1,0},0,3,.5},{{twist2,0},0,3,.5},{{twist3,0},0,3,.5},Delimiter,{{translateW,0},-25,25},{{rotateXW,0},0,2Pi},{{rotateYW,0},0,Pi},Delimiter,{{innerOpacity,.2},0,1},{{outerOpacity,.3},0,1},Delimiter,{innerTorusGfx,None},{outerTorusGfx,None},{sliceGfx,None},ControlPlacement->Top,TrackedSymbols:>{translateW,twist1,twist2,twist3,rotateXW,rotateYW,innerOpacity,outerOpacity},SaveDefinitions->True]
Out[]=
Twisted Hypertorus: Examples
Twisted Hypertorus: Examples
Add twists to the hypertorus and takes its w-slices:
Out[]=
In this orientation, the equatorial cross-section of the hypertorus is two disjoint and concentric tori.
After adding three half-twists, the cross-section becomes a trefoil knot:
After adding three half-twists, the cross-section becomes a trefoil knot:
Adding three half-twists along a different axis of rotation gives an equatorial slice which is a genus 7 surface:
Animations: Twisted Hypertorus
Animations: Twisted Hypertorus
Here is an animation which explores the various slices of the hypertorus with 1.5 half-twists which contains an equatorial trefoil:
This animation shows multiple w-slices at once while the hypertorus is twisted and untwisted:
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
Hypertorus with twists, visualizing more complicated hypershapes
by Dugan Hammock
Wolfram Community, STAFF PICKS, August 24, 2023
https://community.wolfram.com/groups/-/m/t/2997777
by Dugan Hammock
Wolfram Community, STAFF PICKS, August 24, 2023
https://community.wolfram.com/groups/-/m/t/2997777

