Renewable Resource
This animation shows the same family of Möbius transformations of the sphere as Inner Light: the north and south poles are fixed and circles of latitude move from north to south, achieving maximum speed at the equator: I'm just doing inverse stereographic projection of a scaling of the complex plane.
In this case I'm actually only showing the "back" half of the sphere, with one pink spotlight placed at $(0,0,-3/4)$ and pointed up and one yellow spotlight placed at $(0,0,3/4)$ and pointed down.
To produce the GIF I used m=200
, but this is much too slow for a Manipulate
object since the resulting graphics object has almost 100,000 little spheres. With m=10
as in the below code we only lose small bands around the two poles.
InverseStereo3D[{x_, y_}] := {2 x/(1 + x^2 + y^2), 2 y/(1 + x^2 + y^2), (1 - x^2 - y^2)/(1 + x^2 + y^2)};
With[{n = 60, d = 1/8., m = 10, viewpoint = 5 {1, 0, 0},
cols = RGBColor /@ {"#F3368D", "#FFC468", "#2F2B2B"}},
Manipulate[
Graphics3D[
{Sphere[#, .02] & /@
Join[
Flatten[
Table[
InverseStereo3D /@ {(r + s) {Cos[?], Sin[?]},
1/(r - s) {Cos[?], Sin[?]}},
{?, ?/2., 3 ?/2, 2 ?/n}, {r, 1 + d, m, d}],
2],
Table[
InverseStereo3D[(1 + s) {Cos[?], Sin[?]}], {?, ?/2., 3 ?/2, 2 ?/n}]]},
PlotRange -> Sqrt[2], Boxed -> False, ImageSize -> 540,
ViewPoint -> viewpoint, Background -> cols[[-1]],
Lighting -> {{"Spot", cols[[1]], {{0, 0, -.75}, {0, 0, 1}}, ?/2},
{"Spot", cols[[2]], {{0, 0, .75}, {0, 0, -1}}, ?/2},
{"Ambient", cols[[-1]], viewpoint}}],
{s, 0, d}]
]