I was trying to unify a couple of different versions of my sky subdivision code recently and wanted to generalise it to allow some polyhedral options. Unfortunately this wasn’t anywhere near as easy as I expected. In the process of trying to figure out ways to calculate the coordinates of various uniform polyhedra, I wrote a quick Processing app to help visualise them. In the end, I managed to solve all but a couple of the standard uniform polyhedra so I thought that I would tidy it up and make it available.
I’m not sure why, but calculating the coordinates of all the different uniform polyhedra is no trivial process. Just when you think you have a working parametric model, there are always a couple that it just won’t work for. In the end I couldn’t come up with a complete model, so I ended up using Paul Burke's coordinates for those that I couldn’t get any other way.
I also wasted a heap of time trying to find a way to morph smoothly between any two polyhedra. There are ways to do it meaningfully within specific polyhedral groups but, again, I couldn’t find any way that worked for all types of polyhedra that didn’t involve inflating or deflating to or from a sphere. However, if anyone out there has any ideas on how to do it, I would be very keen to collaborate as I can imagine this being really useful in some of my other generative design work.
Types of Polyhedra
This applet includes all of the standard convex uniform polyhedra and their duals.
A uniform polyhedron is a 3D solid that is bound entirely by facets whose edges are all exactly the same length and whose vertices are all equidistant from its geometric centre. This essentially means that all its facets are regular polygons and all its vertices lie on the surface of a bounding sphere.
Convex Uniform Polyhedra
A convex polyhedra is one whose planar facets do not intersect and any line segment joining any two vertices of the polyhedron is either contained within or lies upon its external surface. The set of uniform convex polyhedra include the five regular polyhedra whose facets are all identical (Platonic solids), and semi-regular polyhedra with two or more types of regular polygonal facets (Archimedean solids).
Essentially, the dual of any polyhedron is another polyhedron which has vertices where the other has faces, and faces where the other has vertices. The vertices of a polyhedron’s dual line up with the centre points of each surface facet. They are not always in exactly the same position as the facet centre but always lie somewhere upon a line joining the facet centre with the geometric centre of the original polyhedron.
- Initial release.
Click here to comment on this page.