Icosahedral kaleidoscope


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.


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