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 byperm
, with even number of negative elements. - With
Show
,Graph3D
is converted toGraphics3D
. 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,