In a recently viewed educational video focused on the concept of spinors (available at this link:https://youtu.be/b7OIbMCIfs4?si=5ZZLxdGotxAj6YwP ), an intriguing visual representation caught my attention – it features a captivating image of a 'pencil of bands' at the very beginning. This visual is not only aesthetically pleasing but also appears to hold significant mathematical intrigue, potentially offering a tangible exploration path for abstract concepts in multivariate calculus.

enter image description here

I'm keen on leveraging this visual by parametrizing the pencil of bands, aiming to integrate this into GeoGebra for an interactive learning experience. My objective is to facilitate a deeper understanding among my students, making abstract mathematical principles more accessible through visual and interactive means.

My question is: How can I effectively parametrize this pencil of bands for educational implementation in GeoGebra? I'm looking for a mathematical approach that translates this visual phenomenon into a parametric form, suitable for exploration and manipulation within the GeoGebra environment.

This endeavor not only aims at enhancing the learning experience but also at fostering a deeper appreciation and understanding of the interconnectedness of mathematical concepts, as seen through the lens of real-world applications and visual mathematics.

  • 4
    $\begingroup$ Why don't you just email or tweet your question to the creator of that video? On inspection, it looks like the particular animation was created by another person -- maybe contact them directly. $\endgroup$
    – Nick C
    Commented Mar 24 at 12:55
  • 9
    $\begingroup$ I'm voting to close this as it is really just a math question. I see that you used the word "educational" and that you want to use the animation in your class, but you seem to be only asking about how to code this in GeoGebra, and not about how it is to be used in the classroom. $\endgroup$
    – Nick C
    Commented Mar 24 at 17:22
  • $\begingroup$ (I hope you don't mind that I corrected a couple distracting typoze...) $\endgroup$ Commented Mar 24 at 19:20
  • 3
    $\begingroup$ I’m voting to close this question because I don't think that you have provided us enough information to actually answer the question. What class are you teaching? At what level? How advanced are your students? (I do note that four other voters have also indicated that this is off-topic for other reasons---their votes stand, too). $\endgroup$
    – Xander Henderson
    Commented Mar 25 at 21:57

3 Answers 3


I don't know anything about how the paths were parametrized in the video. If the OP could post the formulas, it would help. But the image in the video looks roughly like this:

(* Wolfram Language *)
Block[{v, sp},
 v = {1., 2., 3};
 (*sp = SpherePoints[32];*)
 sp = RandomPoint[Sphere[], 80];
     r*RotationMatrix[4 Pi*Erf[r/2], v] . p,
     {p, sp}]
   , {r, 1, 30}
   , PlotStyle -> Directive[Specularity[2], Tube[0.05]], 
   Background -> Black, Axes -> False, Boxed -> False, 
   PlotRange -> 20
  Graphics3D[{White, Sphere[]}]

enter image description here

The image changes randomly on re-execution.

  • 1
    $\begingroup$ This is cool, but would you be willing to explain the code in plain "mathlish"? I am unfamiliar with the Wolfram language. $\endgroup$ Commented Mar 26 at 11:41
  • 1
    $\begingroup$ @StevenGubkin The general parametrization is given by ${\bf x}(r) = r \, {\bf R}_{v,\theta} {\bf x}_0$, where ${\bf R}_{v,\theta}$ is the rotation matrix about a constant vector $v$ by an angle $\theta =4 \pi \text{erf}\left({r}/{2}\right)$ and ${\bf x}_0$ is a point. The vector $v$ and points $x_0$ may be chosen according to one's artistic whim. I used random points starting on the unit sphere. $\endgroup$
    – user1815
    Commented Mar 26 at 11:50

Here is a way to approach this. First we define

$R(\alpha,s)=\left[\begin{matrix}\cos{\left(\frac{\alpha}{s} \right)} & - \sin{\left(\frac{\alpha}{s} \right)} & 0\\\sin{\left(\frac{\alpha}{s} \right)} & \cos{\left(\frac{\alpha}{s} \right)} & 0\\0 & 0 & 1\end{matrix}\right]$

Notice that $R(\alpha,1)$ is rotation around the $z$-axis through an angle of $\alpha$, and $R(\alpha,\infty)$ is the identity rotation.

Now we concentrate on a ray starting on the unit sphere and going out to infinity. We can parameterize the unit sphere by

\begin{align*} X &= \cos(\theta) \sin(\phi) \\ Y &= \sin(\theta) \sin(\phi) \\ Z &= \cos(\phi) \end{align*}

where the angle $\phi$ ranges from $0$ to $\pi$.

A ray starting at a point $(X,Y,Z)$ on the unit sphere and extending to infinity will be parametrized by $(s X, s Y, s Z)$ with $1\le s<\infty$.

We apply the rotation $R(\alpha,s)$ to the point $(sX, sY, sZ)$. This twists the sphere of radius $s$ by the angle $\alpha/s$.

To get a moving curve, we fix $\theta$ and $\phi$ to specify a point $(X,Y,Z)$ on the unit sphere, and therefore also the ray. Then we let the animation parameter be $\alpha$, ranging from $0$ to $4\pi$.

Here is the equation for the moving curve. We fix $\theta,\phi$. This tells us where the curve initially attaches itself to the unit sphere. For fixed $\alpha$, we have a parametric curve with parameter $s$. As $\alpha$ varies, the point of attachment moves twice around a circle of constant latitude. The point of attachment rotates through an angle $\alpha$, whereas points far out on the ray ($s=\infty$) are fixed.

$\left[\begin{matrix}- s \sin{\left(\phi \right)} \sin{\left(\theta \right)} \sin{\left(\frac{\alpha}{s} \right)} + s \sin{\left(\phi \right)} \cos{\left(\theta \right)} \cos{\left(\frac{\alpha}{s} \right)}\\s \sin{\left(\phi \right)} \sin{\left(\theta \right)} \cos{\left(\frac{\alpha}{s} \right)} + s \sin{\left(\phi \right)} \sin{\left(\frac{\alpha}{s} \right)} \cos{\left(\theta \right)}\\s \cos{\left(\phi \right)}\end{matrix}\right]$

I picked some random values of $\theta$ and $\phi$ and set up the animation in Python and all seems OK but I don't want to take time to polish the graphics and post here. The project would be accessible to students in a multi-variable calculus course, assuming they have some fortitude.


I strongly suspect that it would be very difficult to do this in geogebra and be unsuitable for most students in multivariable calculus. Maybe if you have some advanced math students with computer skills you could pull it off?

The thing that's being done is to start with a bunch of rays from the origin, parameterized. Then you think about parameterizing 3-space like this: on each sphere $S_r$ or radius $r$ about the origin, you act by an element of $SO(3)$. Call that element $U_r$. As long as $r \to U_r$ is a continuous map $\mathbb{R}^+ \to SO(3)$, you get a continuous transformation of $\mathbb{R}^3$. Now, what you want is a family of these things where at $t=0$ and $t=1$, $(r,t)\to U_{r,t}$ is just the map to the identity. You also want the $r=0$ map $(0,t)\to U_{0,t}$ to be two full rotations about an axis and for $r\gg 0$ the map should be constant at the identity.

In other words, you need to provide an explicit parameterization of the homotopy of the square of the generator of $\pi_1(SO(3),I_3)$ to the identity. I think that this might be the toughest part, but with an appropriate model of $SO(3)$, it should be easier. (Maybe view it as a quotient of $SU(2)=S^3$ to ease things. The homotopy should be one of the hemispheres of an equitorial $S^2$.)

Once you have that, it's a matter of composing the rays with this thing, thought of as a parameterized family of diffeomorphisms of $\mathbb{R}^3$.

Maybe appropriate for a semester long or capstone project for an advanced student. Make sure you do it yourself first.


Not the answer you're looking for? Browse other questions tagged or ask your own question.