Procedurally generated animation of the anti-twister mechanism and its connection to Spin(3).
Also known as Dirac's belt trick, a demonstration of an object that is subject to $4\pi$ or $720ยฐ$ symmetry, so it needs two full revolutions to revert to its initial state.
States of the anti-twister and their corresponding spin observables as quaternions
How it works
Coded using CGA ($\mathrm{Cl(4,1)}$) motor interpolation as described by Belon et al (2017).
In order to model the ribbon that is secured in $\mathbf{s}$-direction while rotating in $\mathbf{r}$ by $2\pi\cdot\lambda \mathrm{rad}$. We define three oriented control points using CGA rotors.
For this, using two rotors $R$ and $S$, describing the rotation of the center cube and the twisting of the ribbon
$$\large R(\lambda) = \exp(\frac{\mathbf{r}}{e_{123}} \pi \lambda),$$$$\large S = \exp(-\frac{\mathbf{s}}{e_{123}} \frac{\pi}{2})$$
and three translators
$$\large T_0(\lambda) = 1- \frac{R(\lambda) 0.3 \mathbf{s} R(\lambda)^\dagger \wedge e_\infty}{2},$$$$\large T_1(\lambda) = 1- \frac{R(\lambda) 1.0 \mathbf{s} R(\lambda)^\dagger \wedge e_\infty}{2},$$$$\large T_2 = 1- \frac{2.0 \mathbf{s} \wedge e_\infty}{2} $$
we define the motors of oriented control points as
$$\large M_0(\lambda) = T_0(\lambda) R(\lambda) S $$$$\large M_1(\lambda) = T_1(\lambda) R(\lambda) S $$$$\large M_2(\lambda) = T_2 $$
Which can be interpolated linearly using motor logarithms:
$$\large M(\lambda,\alpha) = \exp(\sum_i B_i(\alpha) \log(M_i(\lambda)))$$
Where $\alpha \in \left[0,1\right]$ is the interpolation parameter along the ribbon originating from the center cube face. And $B_i(\alpha)$ are weight functions defined using
$$\large B_i(\alpha) = B_i'(\alpha) / \sum_j B_j'(\alpha) $$
which is normalizing
$$\large B_1'(\alpha) = (1-\alpha)^2,$$$$\large B_2'(\alpha) = 10 \alpha^2 (1-\alpha)^4,$$$$\large B_3'(\alpha) = \alpha^3$$.
Finally, the interpolation motor $M(\lambda,\alpha)$ can be used to calculate the mesh of a ribbon extending in $\mathbf{c}$ direction
$$\large \rho_{l,r}(\lambda,\alpha) = M(\lambda,\alpha) (\pm \uparrow \mathbf{c}) M(\lambda,\alpha)^\dagger.$$
Where $\rho_{l}(\lambda,\alpha)$ and $\rho_{r}(\lambda,\alpha)$ are its left and right boundaries respectively and we used the up-projection $\uparrow \mathbf{c}$ for the conformal representation defined by $\uparrow \mathbf{c} = \mathbf{c} + \frac{1}{2}\mathbf{c}^2 e_\infty + e_o $.
The full set of twelve equations (2 boundaries $\times$ 6 directions) for rotating in the $z$-axis is given by
Where we used $\underline{M}(x)$ to denote the sandwich-product $MxM^\dagger$ of $x$.
The $\large\rho^{\pm i}_{l,r}(\lambda,\alpha)$ are at last projected back into $\mathrm{Cl(3,0)}$ by using