Coxeter diagram

Coxeter diagrams or Coxeter–Dynkin diagrams are a compact way of representing a wide variety of polytopes. They are named after Harold Scott MacDonald Coxeter, who first described them, but have been more recently generalized and reformatted by members of the Hi.gher.space forum. They're closely related to Coxeter reflection groups.

A Coxeter diagram consists on a set of nodes joined by numbered edges. Nodes represent mirrors, or hyperplanes; and edges describe the angles between them: an edge with the number k indicates an angle of π/k. Nodes can be marked to describe the relation of a point to them, which is then used to build the whole polytope. Traditionally, Coxeter diagrams are shown as drawings. In more recent plaintext extensions of this notation, other symbols may be used to represent different edge lengths, non-linear graphs, different types of snubbing, or lace towers of polytopes that generalize the notion of prisms or pyramids.

Notation
In the wider mathematical community, Coxeter diagrams are commonly drawn like a graph, due to Coxeter. For convenience, edges with the number 2 are omitted, and edges with the number 3 are drawn without it. For example, a small rhombicuboctahedron (see below) would be represented as.

With the advent of the internet, however, there arose a necessity to write down these diagrams in an ASCII-compatible notation. In plaintext, ringed nodes are marked with an x, unringed nodes are marked with an o, and edges are marked by numbers between nodes, so an equivalent notation would be x4o3x. Although the latter notation may seem more restrictive, various extensions have made it much more flexible than the original (see Extensions).

Description
A basic Coxeter diagram consists in a set of n nodes, "ringed" (active) or "unringed" (inactive). The nodes represent (n–1)-dimensional hyperplanes, thought of as mirrors. A number k between two nodes, possibly a fraction indicates that the angle between their respective mirrors is π/k. A point can be placed somewhere between these mirrors, at half unit distance from the mirrors with ringed nodes, and inside the mirrors with unringed nodes. We can repeatedly reflect this point, along with all the mirrors, over any one of the mirrors. This will create the vertices of the polytope that the Coxeter diagram represents, in a similar manner to the Wythoff kaleidoscopical construction.

To construct the rest of the elements, we may proceed inductively: individual mirrors create edges between any vertex outside of it and its reflection, and for M ≥ 2, every set of M mirrors creates M-elements from the (M–1)-elements created from its subsets of M–1 mirrors.

For example, x4o3x represents the small rhombicuboctahedron. Its face types can be read off by deletion of any single node, here resulting in x4o (square), x x (a square as well, though only with rectangular symmetry), and o3x (triangle).

Snub nodes
Nodes can also be "hollowed" (alternated). Traditionally, these nodes are marked as. In the plaintext notation, they're marked with an s, which can stand for 'snub', 'semiation', or for the surname of Alicia Boole Stott who introduced this further node type to Coxeter. In this case, a point is also placed off a mirror, but only vertices generated by an even amount of reflections through the alternated mirrors are accounted for. This results in the snub polytopes.

In the general case, the edge lengths of these polytopes will be different from one another. However, in special cases, like the snub cube (s4s3s) or the snub icositetrachoron (s3s4o3o), they can be made uniform by adjusting the placement of the point accordingly. (This depends on the ratio of positional degree of freedom of the seed point vs. the count of obtained different edge types.)

Some times, this snub construction will result in overlapping vertices, one of which is accounted for, and the other one of which isn't. If we carry out the construction as described above anyways, we create a special type of snub called a holosnub, marked with a German eszett (ß). For example, ß5o3o represents the small ditrigonal icosidodecahedron.

Extensions
Basic Coxeter diagrams allow only for certain uniform polytopes to be represented. However, this notation, specifically the plaintext one, has been extended in recent years to extend its capability of describing complex diagrams and not necessarily uniform polytopes.

Virtual nodes
In order to allow for loops and bifurcation points in the plaintext notation for Coxeter diagrams, Richard Klitzing added a distinction between "real nodes" and so-called "virtual nodes". One first starts by writing the diagram from any node: these are the real nodes. Whenever one needs to specify that a node is connected to a previous one, one writes down an asterisk, together with the index of the to be referred node in alphabetical form.

For example, x3o3o3*a closes the diagram into a triangular shape by connecting the virtual last node back to the real first node, thus representing the triangular tiling. In the traditional notation, may be notated as. In x3o3o *b3o, the second part is going to be attached to the real second node, which thus becomes a bifurcation point of the diagram. This then represents the hexadecachoron. In the traditional notation, this may be notated as.

Different edge lengths
A further extension to these diagrams was introduced by Wendy Krieger, which isn't paralleled by the traditional Coxeter diagram notation. It allows for non-unit edge sizes in the diagram representation, by interpreting ringed and unringed nodes as denoting distances rather than incidences. That is, the symbol x represents a point at half-unit distance from a mirror (so as to create a unit edge), the symbol o represents a distance of zero, and other symbols create edges of other sizes. The most common edge sizes are shown in the table below, along with the characters commonly used to represent them, and with the origins of such characters.

For example, the vertex figure of the icosidodecahedron may be written as x2f.

Other letters, most commonly y and z, are used as variables. In some contexts, x is also treated as a variable. For example, the rectangle could be represented as x2y, and the cuboid could be represented as x2y2z.

Laced polytopes
Still a further extension by Krieger is the consideration of lace prisms. These, too, have no analog in the conventional notation. Lace prisms are a parallel stack of two polytopes, both represented according to a common symmetry group, and "laced" together via edges. For example, the triangular cupola is built out of a top triangular layer x3o and a bottom hexagonal layer x3x, laced together via unit edges. To write this down concisely, and avoid having to write down redundant information, we concatenate all corresponding nodes of each layer in order, and write the corresponding numbers between them. Finally, we add further symbols to indicate the additional (&amp;) lacing (#) edge length (x) of the lace prism. Therefore, the hexagonal cupola simply becomes xx3ox&#x.

From this notation, facets are easily retrieved by deleting all nodes in either a single position of the concatenation and removing the lacing, or in a single concatenation, and reading the remaining diagram. For the hexagonal cupola, this yields the triangle x3o, the hexagon x3x, laced triangles ox&#x, and laced squares xx&#x.

It's important to notate the &amp; lacing instruction, as otherwise, the resulting polytopes would represent simply according compounds. For example, xo3oo3ox represents the stella octangula, having for components x3o3o (tetrahedron) and o3o3x (a dual tetrahedron).

There are other notable configurations of laced layers. They're all notated analogously as lace prisms, but with a letter suffixed to indicate the type of lacing.


 * Lace simplices are created by taking a set of layers and lacing every pair, as in a simplex: this is the natural extension and does not require a further qualifier. The simplexes themselves o...o&#x are the easiest examples. Another example is oxx&#x for the square pyramid, made out of a point and two dyads laced together. Lace simplices derive from the vertex figure of WME polytopes, having a lacing simplex with as many vertices as marked nodes, and a cross symmetry equal to the unmarked nodes.  It is not impossible to have no mirrors at all, as the omnitruncate shows.
 * Lace towers are created by lacing multiple parallel layers within an axial stack: they get suffixed by a t. An example is xxo3oxx&#xt for the cuboctahedron, which is built from a triangle, on top of a (diametral) hexagon, on top of a triangle rotated with respect to the first. The lace tower is read as &(an extra axis of symmetry), #(kill the symmetry), x(lacing of edge x), t(all layers in a tower).
 * Lace rings, which lace polytopes in a cyclic order, become represented by means of the suffix r. Simple examples include oxox&#xr for the octahedron, and oxxo&#xr for the triangular prism. Duoprisms, like the square–pentagonal duoprism xxxx5oooo&#xr, are also examples of lace rings.
 * Lace tegums are the dual of lace prisms. These are formed by placing face planes tangent to where the vertex is.  The Wythof mirror margin construction places a single spanning face across the kaleidoscope, level with the adjacent over unmarhed nodes, and presenting a margin in marked nodes.  The lace tegum places two faces in a V of mirrors, of three above a plane.

With respect to convex polytopes, Wout Gevaert also considered the tegum sum to be accessible within an (extended) Coxeter diagram as well. Here, one starts with some compound, but considers its convex hull instead. One may understand this as dealing with a zero displacement of layer components even so there are lacing edges to be considered. This is therefore represented by adding the letter z directly after the # symbol. For instance the D4 symmetry representation of the hexacosichoron can be represented as foxo3ooof3xfoo *b3oxfo&#zx. Note that the individual layers themselves here no longer are true boundary facets of the resulting tegum sum.