The specification consists of a space-delimited series of polyhedral recipes.
Each recipe looks like:
[op][op] ... [op][base] no spaces,
just a string of characters
where [base] is one of
- T - tetrahedron
- C - cube
- O - octahedron
- I - icosahedron
- D - dodecahedron
- PN - N-sided prism
- AN - N-sided anti-prism
- YN - N-sided pyramid
- JN - Nth Johnson Solid (1 to 92)
and op is one of these
- kN - kis on N-sided faces (if no N, then general kis)
- a - ambo
- g - gyro
- d - dual
- r - reflect
- e - explode (a.k.a. expand, equiv. to aa)
- b - bevel (equiv. to ta)
- o - ortho (equiv. to jj)
- m - meta (equiv. to k3j)
- tN - truncate vertices of degree N (equiv. to dkNd; if no N, then truncate all vertices)
- j - join (equiv. to dad)
- s - snub (equiv. to dgd)
- p - propellor
- c - chamfer
- w - whirl
- q - quinto
Also, some newer, experimental operators:
- l - stellation
- nN - insetN
- xN - extrudeN
- z - triangulate
- h - hollow/skeletonize, useful for 3D printing, makes a
hollow-faced shell version of the polyhedron, only apply it once in
- uN - limited version of the Goldberg-Coxeter u_n operator
(for triangular meshes only)
There are more complicated, parameterized forms for k and n:
- n(n,inset,depth) - this applies the
inset operator on n-sided faces, insetting by inset scaled from
0 to 1, and extruding in or out along the normal by depth
(can be negative)
- k(n,depth) - this applies the kis operator
on n-sided faces, setting the pyramidal height out or in along the normal by depth
(can be negative)
- h(0,inset,depth) - this applies the
hollowing/skeletonizing operator on all faces, insetting by
inset (scaled from 0 to 1), and with a shell thickness of depth
Note that for most of the above operations, while the topology of the result is uniquely specified,
a great variety of geometry is possible. For maximum flexibility, the above operators do not enforce convexity
of the polyhedron, or planarity of the faces,
at each step. If these properties are desired in the final result, the following geometric "refinement" operators
can be used. These operators are for
canonicalizing the polyhedral shape, and are mainly intended for making
the more traditional, convex polyhedra more symmetric:
- KN - quicK and dirty canonicalization, it can blow
up, iteratively refines shape N times.
- CN - proper Canonicalization, intensive, slow convergence, iteratively refines shape N times.
A typical N is 200 or 300.
- AN - convex spherical Adjustment. Iterates N times. May give more pleasing symmetry,
but can be unstable for certain shapes.
These can blow up the geometry of the weirder polyhedra, which can
be interesting too!
You can export these shapes in forms appropriate for 3D printing by
shapeways. Export in VRML2 format to preserve face colors if you want
to use their colored fused-sand process. You'll probably want to rescale
the exported geometry to a non-tiny size.
- George Hart - for his original pages, artworks and software characterizing higher polyhedra.
- Lars Huttar - for adding several new operators, and helping improve this site.
- Lei Willems - for inventing quinto.
- Everyone else - for all of your kind words and suggestions!