# Icosahedral kaleidoscope

Example:

Requirements: numpy and matplotlib.

# Math behind this image

Let $S^2$ denote the unit sphere in $\mathbb{R}^3$: $S^2 = \{(x,y,z)\in\mathbb{R}^3: x^2+y^2+z^2=1\},$ and $f$ be some function that maps $S^2$ to itself.

If we assign a color to each point $p\in S^2$ according to the value $f(p)$, then we have a colored sphere, by stereographic projection this also gives us a colored complex plane. The example image just shows this plane for a carefully chosen function $f$ and a coloring scheme of the sphere.

So what's the function $f$ used here? It's based on the famous icosahedral invariants: recall that an icosahedron is on of the five platonic solids which has 20 faces, 30 edges and 12 vertices. Imagine it's inscribed in $S^2$ and all edges and faces lie on the sphere:

You can see the sphere is cut into 60 pieces where each piece is a spherical triangle, the three vertices of such a triangle is a face center, a midpoint of the edge, and a vertex of the icosahedron.

There is a 60-to-1 rational function $I$, which is invariant under the alternative symmetric group $A_5$ (the group of orientation-preserving isometries of the icosahedron) that maps $S^2$ to itself and maps each of the 60 spherical triangle conformally to $S^2$. It takes the value $0$ on the 12 vertices (with multiplicity 5), the value $\infty$ on the center of the faces (with multiplicity 3), and the value $1$ on the midpoint of the 30 edges (with multiplicity 2). $I$ is called the icosahedral invariant and plays a prominant rule in Klein's solution of the quintics.

If we use $I$ as the function $f$ to color $S^2$, then the resulting pattern would also have icosahedral symmetry:

But if we use $I\circ I$ (composite with itself) as the function $f$, then each face will be further divided into 60 pieces since $I$ is a 60-to-1 map, this adds the kaleidoscope effect to the above pattern.

# References

1. Geometry of the quintic, by Jerry Shurman.
2. On Klein’s icosahedral solution of the quintic.