A mesh consists of vertices, edges and faces and the connectivity between those (the topology) uniquely defines each mesh. At the core of this project lies a certain strategy to represent such a mesh. This project implements the “face-vertex” model but there are other representations such as the “half-edge” or “winged-edge” structure.
Conway operators are used to modify the topology of a polyhedron (mesh). With only three different seed polyhedra (tetrahedron, cube and antiprism) and these operators, it is possible to generate all the Platonic- and Archimedean solids as well as many other polyhedra.
This software project includes the following operators:
Kis: Divides a n-gon into n triangles by adding a vertex in the face center. This operator takes an argument, which determines whether this action is applied to all faces or only to n-gons.
Dual: For every face, a new vertex is added in the face center and for every vertex in the original polyhedron, a face is created from those new vertices.
Ambo: A new vertex is added at the middle of each edge. A new face is added for each vertex in the original polyhedron and furthermore one face for each original face.
Truncate (dkd): Cuts off each vertex of a polyhedron and replaces it with a new n-gon, where n is the valence of the vertex.
Expand (aa): Fills out the space that emerges from offsetting the original mesh faces. A 4-sided face is added between an edge that was previously shared by two adjacent faces and n-gons are added to connect the 4-sided faces at each vertex of valence n.
Bevel (ta): A n-gon is added at each vertex of valence n and two triangles are added for each edge. The tip of the triangles meet at the midpoint of the edge and connect back to the newly added faces at the vertices.
Gyro: Adds a new vertex at each face center (similar to the Kis operator). Instead of connecting directly from this point to the existing vertices in this face, each edge adds two additional vertices at the 1/3 points. A new pentagon is then created from the vertex at the face center, both third points on one edge, the existing vertex and finally one-third point on the second edge. The dual of this operator is called the Snub operator.
Stellate: Similar to the Kis operator but the vertex at the center of a face is extruded to a specific length, which ensures that all faces adjacent to each original face lie in a plane. This property can only be achieved for certain solids such as the icosahedron and dodecahedron.
These operators enable the generation of the correct topology of all the Platonic and Archimedean solids. In order to achieve the right geometry, a function called Canonicalization has to be applied. This method iterates a solution with the following criteria:
- The closest point on each edge to the origin lies on a sphere meaning that all edges are tangents
- The center of gravity of all the vertices is the same as the origin
- The faces are planar
The result is a polyhedron with equal edge lengths and hence a true Archimedean solid. The software furthermore includes a .stl exporter to enable 3D printing of the generated polyhedra.