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!
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.
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!
You might enjoy these rhombic dodecahedral dice https://www.mathartfun.com/thedicelab.com/SpaceFillingDice.h...
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.
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
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... :-)
2. I didn't have twist, elongate or several of your other operations. They won't always make sense as general operations but it's given me some ideas.
3. Lots of little UI touches. I was fumbling around with various UI ideas and you've given me a better sense of direction.
I would add 1 thing only: physics to the interactions, so the shape will keep spinning after I swipe across it.
Have you seen this one? https://levskaya.github.io/polyhedronisme/
Also, you have probably seen Wenninger’s books, but if not those are great.
Of course I know Wenniger's books! Though I haven't had the chance to actually read them yet.
2 features which might cool: stellation and .obj export
Iirc these things apply to 2d tilings also? I remember trying to do some esher-esque drawings using such tilings a bunch of years back.
And yeah, the same operators can be used on 2d tilings (https://en.wikipedia.org/wiki/Conway_polyhedron_notation#Oth...)
Can they be exported as gltf format?