Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Polyhedra Viewer (tessera.li)
123 points by tesseralis on Aug 4, 2018 | hide | past | web | favorite | 30 comments

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!

You might enjoy these rhombic dodecahedral dice https://www.mathartfun.com/thedicelab.com/SpaceFillingDice.h...

I'd enjoy reading some more character analysis of obscure polyhedra. The Dodecahedron was the most multifaceted character in The Phantom Tollbooth!



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. :)

Unfortunately the Catalan solids aren't in there yet, because I wanted to focus on the regular-faced polyhedra for now! Perhaps in a future update :)

Congratulations, lot of work put in a very well refined and presented page!

Thank you! Did you make sure to check out the individual polyhedra (e.g. https://polyhedra.tessera.li/tetrahedron)

Is there any way to keep the objects spinning? It'd be nice if you gave them a flick and then they kept spinning under their own inertia.

Excellent stuff!! It'd be great if you could flatten the shapes to printable A4 paper so kids can cut and build real models (and paint them, etc).

Absolutely! Nets are totally in the feature pipeline. Until then, check this out: https://www.korthalsaltes.com/

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 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... :-)

Borrow away! Which parts are you thinking of, if I may ask?

1. The UI for choosing which face type to perform some operators on. I had a numeric input field which is fairly unfriendly in hindsight.

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.

The shapes remind me of chemistry, molecules, enzymes, proteins, viruses.

I would add 1 thing only: physics to the interactions, so the shape will keep spinning after I swipe across it.

It's a treat. It's like a well-produced color mathematical atlas come to life.

Great work!

Have you seen this one? https://levskaya.github.io/polyhedronisme/

Also, you have probably seen Wenninger’s books, but if not those are great.

Bookmarked! (so that's what propel actually means...) I don't know how I missed it in my initial search for polyhedron resources.

Of course I know Wenniger's books! Though I haven't had the chance to actually read them yet.

Wonderful resource. Nice to see X3D used 'in the wild' also.

Really neat!

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.

Already ahead of you! You can see the .obj download links at in the Info tab (e.g. polyhedra.tessera.li/tetrahedron/info)

And yeah, the same operators can be used on 2d tilings (https://en.wikipedia.org/wiki/Conway_polyhedron_notation#Oth...)


How would I export these shapes for use in threejs or other web based 3d display?

Can they be exported as gltf format?

I don't have gltf, but you can download the .obj files (e.g. at polyhedra.tessera.li/tetrahedron/info), which three.js can read.

This is extremely informative and mesmerizing!

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact