As with Light Show, I’m starting with a collection of Hopf circles on the 3-sphere, taking the 2-planes in
4

they determine (note that a Hopf circle always determines a complex line in
2

, so these 2-planes are complex lines), and intersecting those 2-planes with the hyperplane
w=1
, which gives a collection of lines in 3-space (actually in projective 3-space, but I’m just ignoring the lines at infinity). In Light Show I was taking equally-spaced Hopf circles on the Clifford torus, whereas in this animation I’m taking a single circle on each of the tori interpolating between the unit circle in the
xy
-plane and the unit circle in the
zw
-plane (the unit circle in the xy-plane corresponds to a line at infinity; after the lines go off the screen they actually shoot off to infinity).
​
In fact, due to rendering issues I’m orthogonally projecting the lines in 3-space to the plane normal to what would be the ViewPoint vector if this were a Graphics3D object: hence the viewpoint and plane variables. Here’s the code:
In[]:=
DynamicModule[{n=60,a=π/4,viewpoint={1,1.5,2.5},θ=1.19,r=2.77,plane,cols=RGBColor/@{"#f43530","#e0e5da","#00aabb","#46454b"}},plane=NullSpace[{viewpoint}];​​Manipulate[Graphics[{Thickness[.003],Table[{Blend[cols[[;;-2]],r/π],InfiniteLine[RotationMatrix[θ].plane.#&/@{{Cot[r]Csc[a],0,Cot[a]},{0,Cot[r]Sec[a],-Tan[a]}}]},{r,π/(2n)+s,π,2π/n}]},Background->cols[[-1]],PlotRange->r,ImageSize->540],{s,0.,2π/n}]]

CITE THIS NOTEBOOK

Stay Upright (Projective view of Hopf circles)​
by Clayton Shonkwiler​
Wolfram Community, STAFF PICKS, 2016
​https://community.wolfram.com/groups/-/m/t/1066393