Message Boards Message Boards

[GIF] Light Show (Rotating hyperboloid)


Rotating hyperboloid

Light Show

While I came at it from the perspective of Grassmannians and the Hopf fibration, this is just a bunch of lines in a one-sheeted hyperboloid shown as the hyperboloid rotates around the central axis. The default Graphics3D viewpoint created an interesting asymmetry which I modified only slightly.

(For those that are interested, the connection to Grassmannians and the Hopf fibration is as follows: the Grassmannian $G_2(\mathbb{R}^4)$ of all planes through the origin in 4-space has a close connection to the space of all lines (not just through the origin) in 3-dimensional space. If we think of $\mathbb{R}^4$ as having coordinates $(x,y,z,w)$, then the $w=1$ hyperplane is a copy of 3-space. Since [almost] every plane through the origin in 4-space intersects $w=1$ in a line, and vice versa since every line in the $w=1$ hyperplane determines a unique plane through the origin in $\mathbb{R}^4$, the Grassmannian is almost the space of all lines in $\mathbb{R}^3$. The "almost" is due to the fact that there are some planes through the origin that never intersect $w=1$, namely those lying in the $w=0$ hyperplane. Thinking of these as the "lines at infinity", we can see that $G_2(\mathbb{R}^4$ is actually the space of all lines in projective 3-space.

In any case, this means that any family of planes through the origin corresponds to a family of lines either in 3-space or at infinity. One nice family is the collection of Hopf circles on the Clifford torus. These turn out to correspond to one of the two families of ruling lines on a one-sheeted hyperboloid, which is what is actually shown in the animation; presumably the Hopf fibration of opposite handedness would give the other family.)

Here's the code:

With[{n = 53, cols = RGBColor /@ {"#A9EEE6", "#F9A1BC", "#625772"}, r = π/4},
     {Blend[cols[[;; 2]], (Sin[a - π/4] + 1)/2],
      InfiniteLine[{{Cot[r] Csc[a], 0, Cot[a]}, {0, Cot[r] Sec[a], -Tan[a]}}]}, 
      {a, π/(3 n) + s, 2 π + π/(3 n), 2 π/n}]},
   Background -> cols[[-1]], PlotRange -> 100, ViewPoint -> .6 {3, 3, 2.5}, 
   ViewAngle -> Pi/400, ImageSize -> 540, Boxed -> False],
  {s, 0, 2 π/n}]
POSTED BY: Clayton Shonkwiler
10 days ago

Group Abstract Group Abstract