Polyhedra Viewer: app to explore the relationships and transformations between various convex polyhedra.
This has been a passion project of mine for the last six months (with different versions going back further!) It's partially inspired by George W Hart's virtual polyhedra (http://www.georgehart.com/virtual-polyhedra/vp.html) I wanted to make something accessible and beautiful, since a lot of the resources that already exist aren't very friendly to people not already obsessed with polyhedra.
I'm still (sort of) working on it, so suggestions and comments are welcome!
I immediately tried to construct my favorite obscure polyhedron (the rhombic dodecahedron) and found I simply could not take the dual of the cuboctahedron! :P
That aside, this is a really fantastic little toy here - I'd never really understood the relationships between all these shapes before, or exactly what some of these operations were, geometrically speaking.
> favorite obscure polyhedron (the rhombic dodecahedron)
Obscure? Come on! The rhombic dodecahedron is the Voronoi cell of the FCC lattice, making it (arguably) the most natural 3-dimensional analog of the hexagon. It shows up all over the place!
It's "obscure" to me (and also my favorite) because I had never even heard of it before I tried to find out what the most natural 3-dimensional analog of the hexagon was. :)
This is fantastic, I love it! I've been looking for something like this.
Your definition of "uniform" doesn't look quite right: It's not enough for the symmetry group to be vertex transitive, you also have to require that the faces be regular polygons (see the wikipedia page on isogonal solids for examples of vertex-transitive solids which don't have regular faces). Also, "vertex-transitive" means that for any pair of vertices, there is a rotation or reflection symmetry of the solid which sends the first vertex to the second -- this is not equivalent to the definition you give, for example, the pentagonal cupola is not vertex-transitive but it does seem to satisfy your definition. The standard definition of "uniform" for higher dimensions is recursive: A convex polytope is called uniform if its facets are uniform and its symmetry group (including reflections) is vertex-transitive; a 2-dimensional polytope is called uniform if it is regular (i.e., is a regular polygon). So, in three dimensions, a convex polyhedron is called uniform if it has regular faces and its symmetry group is vertex-transitive.
good catch! I forgot to put the "regular faces" part because everything in the app so far is regular faced. I was trying to make a definition of "vertex transitive" that's intelligible for someone without a math background but I obviously have a bit to go! I'll update the text based on your comments.
1. Do you plan an open source licence for any of the underlying code?
2. Is the construction parametric or is it based on a large catalogue of the various polyhedra and associated constructions?
3. Any plans to allow stacking of operations? First thing I tried was to apply multiple truncates but it's only a toggle switch. But then your code knows when an operation results in another named polyhedra so I'm guessing you might be using a catalogue of relationships rather than geometrically truncating a mesh representation.
4. This is crying out for a WebVR mode...
I've been playing with a combination of the Wythoff Construction and Conway Operators to do something similar in Unity: https://github.com/Ixxy-Open-Source/wythoff-polyhedra but I haven't had time to wrap it in a nice UI
1. The source code is here: https://github.com/tesseralis/polyhedra-viewer, under the MIT license.
2. Both! I do have a catalog of the polyhedra (adapted from http://www.georgehart.com/virtual-polyhedra/vp.html). Some of the operations, like truncation, are done parametrically, but others, like expansion, I "cheated" and relied on knowing what the result is b/c I was just too lazy to figure out the math.
3. I don't think so. The primary focus is the relationships between the regular faced polyhedra, so only the operations that keep you within this particular set. Unfortunately you can only truncate something once before the faces become non-regular.
4. I know right??? First I need to figure out how to VR... shrug
Yeah, generic Wythoff and Conway operators are wild... I'm still not sure I fully understand them. Maybe your thing can help me eventually ^^
Maybe my thing can help me eventually! Most of the clever code is from elsewhere and I need to brush up on some fundamental maths to really understand it. I've ended up with two different mesh representations which I convert between (one for the base Wythoff stuff and the other for applying Conway operators). Ideally I'd rewrite one of the other to get rid of this.
You do start to get awesome results by just fiddling with different chains of operators so I'd love to wrap that part in a nice UI and release it as a toy. It is of course very easy to end up with way too many polygons as most operators double the count at the very least.
I'm very jealous of some aspects of your app. I might need to borrow some ideas... :-)
This has been a passion project of mine for the last six months (with different versions going back further!) It's partially inspired by George W Hart's virtual polyhedra (http://www.georgehart.com/virtual-polyhedra/vp.html) I wanted to make something accessible and beautiful, since a lot of the resources that already exist aren't very friendly to people not already obsessed with polyhedra.
I'm still (sort of) working on it, so suggestions and comments are welcome!