Why is this hyperbolic background invariant?

Posted on November 20, 2023 by Stéphane Laurent

I have a mathematical question for you, because it is a mystery for me.

Look at this animation:

I get it as follows. Each frame corresponds to a value of t[0,3[t[0,3[ (I take 160160 values of tt subdivising [0,3[[0,3[). Here is how I get the frame corresponding to one value of tt:

  • for each point in the unit square S=[0,1]2S=[0,1]2, I take its complex affix zz, and I send zz to the open upper half-plane H={z|(z)>0} with a conformal map ψ from S to H;

  • I attribute a color to Rt(λ(ψ(z))) where R is the Möbius transformation of order 3 defined by R(z)=1z+1 and λ is the modular lambda function.

The modular lambda function and the conformal map ψ are implemented in my R package jacobi.

My question is: why does the hyperbolic tessellation that we can see as the “background” of the animation not move? Why is it invariant?

I observed the same phenomenon for other modular functions, for example the Klein j-invariant function.

The color mapping C is defined with the help of the HSI color space. The color C(z) depends on the phase of z only. Precisely, C(z) is the HSI color with:

  • hue [0,360[ given by the phase φ(z)[0,2π[ of z converted to degrees;

  • saturation given by (1+sin(w))/2 where w=2πlog(1+φ(z));

  • intensity given by (1+cos(w))/2 with w as above.

Why do we get such a result? I really don’t know.

Before leaving you, let me show you a 3D version of this animation that I made with the isocuboids R package:

I hope you like it.