# Rendering $E_8$-Root Polytope

Feb 11 2023 · LastMod: Feb 11 2023

Generate the 3D-graph of the $E_8$-root system using the code, provided here, with `Mathematica`

, and export to `.x3d`

:

```
1refl[n_] := Flatten[Outer[List, Sequence @@ Table[{-1, 1}, {n}]], n - 1];
2perm[{a_, b_, c_, d_, e_, f_, g_, h_}] := Flatten[Function[ Permutations@{a #1, b #2, c #3, d #4, e #5, f #6, g #7, h #8}] @@@ refl[8], 1];
3eperms[n_] := Select[perm[n], EvenQ@Count[Sign@#, -1] &];
4
5vertices = Union@Join[eperms@{1, 1, 1, 1, 1, 1, 1, 1},
6 perm@{2, 2, 0, 0, 0, 0, 0, 0}];
7edges = Select[Position[DistanceMatrix[vertices] - Sqrt[8], 0], Apply[Less]];
8
9graph = Show[Graph3D[edges, EdgeShapeFunction -> (Tube[#, .001] &), VertexSize -> Small]];
```

- The function
`refl`

generates the list of all possible ways for filling $n$ slots with $-1$ and $1$, corresponding to a group that we will call $H$. - The function
`perm`

permutes and further extens the permutation group with the $H$ (semidirect product). - The function
`eperm`

selects out those permutations, given by`perm`

, with even number of negative elements. - With
`Show`

,`Graph3D`

is converted to`Graphics3D`

. Only graphics can be exported.

Export to `.x3d`

to feed into `Blender`

(a rule of thumb: `.x3d`

for graphics generated by `Graph3D`

and `.dxf`

for those directly generated by `Graphics3D`

):

```
1Export["graph.x3d", graph]
```

Import `graph.x3d`

into `Blender`

, add light source and a floor plane, and render.

Or, if you like,