MODERATOR NOTE: a submission to computations art contest, see more: https://wolfr.am/CompArt-22
Wrap
This started as a visualization of the exponential map, which for the circle corresponds to the map $t \mapsto e^{i t}$, where it's useful to visualize the real line (where $t$ lives) as being the vertical line $\Re(z)=1$ (i.e., parallel to the imaginary axis) which is tangent to the unit circle at the point $z=1$.
To wrap the line around the circle I defined the following function, which is just a straight line outside the interval $[-s,s]$, and sends $t$ to $e^{it}$ for $t$ in the interval:
wrap[s_, t_] :=
Which[t < -s, E^(-I s) + I E^(-I s) (t + s), -s <= t <= s, E^(I t),
t > s, E^(I s) + I E^(I s) (t - s)];
With the help of the smootherstep function
smootherstep[t_] := 6 t^5 - 15 t^4 + 10 t^3;
and some rotation, we get the first half of the animation:
DynamicModule[{u, cols = RGBColor /@ {"#ffa323", "#ff6337", "#004a2f"}},
Manipulate[
u = \[Pi] smootherstep[s];
Show[
Table[
ParametricPlot[
ReIm[-I E^(I u) r wrap[u, t]], {t, -\[Pi], \[Pi]},
PlotRange -> 2.5,
PlotStyle ->
Directive[Thickness[.01], Blend[cols, 2/3 r], CapForm["Round"], JoinForm[None]]],
{r, 0, 1.5, .1}],
Axes -> False, ImageSize -> 540, Background -> cols[[-1]]],
{s, 0, 1}]
]
And the second half:
DynamicModule[{u, cols = RGBColor /@ {"#ffa323", "#ff6337", "#004a2f"}},
Manipulate[
u = \[Pi] smootherstep[s];
Show[
Table[
ParametricPlot[
ReIm[Conjugate[I E^(I u) r wrap[u, t]]], {t, -\[Pi], \[Pi]},
PlotRange -> 2.5,
PlotStyle ->
Directive[Thickness[.01], Blend[cols, 2/3 r], CapForm["Round"], JoinForm[None]]],
{r, 0, 1.5, .1}],
Axes -> False, ImageSize -> 540, Background -> cols[[-1]]],
{s, 1, 0}]
]