The E8 pattern

Example:

Requirements: cairocffi.

This program draws the figure of the exceptional root system $E_8$ projected to its Coxeter plane. The math involved here may be too complex for non-mathematicians, so I just give a brief sketch of the above image.

The $E_8$ root system is a set of 240 vectors (called roots) in the 8-dimentional Euclidean space $\mathbb{R}_8$, they can be divided into two subsets:

1. One subset consists of all vectors of the form $(\pm1, \pm1, 0, 0, 0, 0, 0, 0)$ and its permutations. The two non-zero items can be anywhere and their signs can be either +1 or -1. There are 112 such roots.

2. The other subset consists of all vectors of the form $(\pm\frac{1}{2}, \pm\frac{1}{2}, \pm\frac{1}{2}, \pm\frac{1}{2}, \pm\frac{1}{2}, \pm\frac{1}{2}, \pm\frac{1}{2}, \pm\frac{1}{2}),$ where all signs can be chosen independently from $\pm1$ and the sum is an even integer. There are 128 such roots.

Of course these 240 vectors are not linearly independent since they lie in a 8-dimensional space. But one can choose 8 vectors $\Delta=\{\alpha_i,i=1,\ldots,8\}$ from them such that

1. $\Delta$ form a basis of $\mathbb{R}_8$.
2. For each root $\alpha$ in $E_8$, $\alpha$ can be expressed as a integral linear combination of the roots in $\Delta$: $\alpha=c_1\alpha_1+\cdots+c_8\alpha_8,$ where all $c_i$ are integers and are all non-negative or non-positive.

$\Delta$ is called a simple root system and the roots in $\Delta$ are called simple roots. The choice of $\Delta$ is not unique.

The whole root system can also be recovered from $\Delta$ by reflections: for a non-zero vector $v$, the reflection defined by $v$ is the linear transformation $s_v: x\to x-2\frac{(x, v)}{(v, v)}v.$ The reflections $\{s_{\alpha_i}, \alpha_i\in\Delta\}$ generate a finite Coxeter group $G$ called the Weyl group of $E_8$, and all roots in the root system can be obtained by acting some element $g\in G$ on a fixed simple root $\alpha$ (so the Weyl group acts transitively on the roots).

$s=s_{\alpha_1}s_{\alpha_2}\cdots s_{\alpha_8}$ is called a Coxeter element of $G$. Of course this definition depends on how $\Delta$ is chosen and the numbering of the simple roots in it, but it can be shown that all Coxeter elements are conjugate in $G$, hence they have the same order $h$ ($h=30$ for $E_8$).

There is a 2D plane $P$ in $\mathbb{R}_8$ fixed by $s$ and on which $s$ acts as a rotation of degree $2\pi/h$. $P$ is called the Coxeter plane of $E_8$. What we do in this program is to project all roots in $E_8$ onto $P$ and draw the resulting pattern. You can see from the image that the roots are aligned into 8 concentric circles and there are 30 vertices on each circle, this justifies the fact that the Coxeter element acts on this plane as a rotation of order 30.

So the remaining problem is how to compute a basis for the Coxeter plane, this requires some technical details which I will not include here, basically both of them are linear combinations of the simple roots in $\Delta$ (with a carefully chosen numbering) and with coefficients from the eigenvectors of the maximal (or minimal) eigenvalue of the Cartan matrix. You may refer to the book

Reflection groups and Coxeter groups, section 3.18, by Humphreys.

for mathematical deductions.