
Show HN: Polyhedra Viewer - tesseralis
https://polyhedra.tessera.li
======
tesseralis
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](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!

~~~
MrEldritch
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.

~~~
jacobolus
> 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...](https://www.mathartfun.com/thedicelab.com/SpaceFillingDice.html)

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

~~~
jacobolus
Also see
[https://en.wikipedia.org/wiki/Kepler_conjecture](https://en.wikipedia.org/wiki/Kepler_conjecture)

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

~~~
tesseralis
Absolutely! Nets are totally in the feature pipeline. Until then, check this
out: [https://www.korthalsaltes.com/](https://www.korthalsaltes.com/)

------
yshklarov
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.

~~~
tesseralis
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.

------
andybak
Wonderful.

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](https://github.com/Ixxy-Open-Source/wythoff-
polyhedra) but I haven't had time to wrap it in a nice UI

~~~
tesseralis
1\. The source code is here: [https://github.com/tesseralis/polyhedra-
viewer](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](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 ^^

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

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

~~~
andybak
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.

------
dosy
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.

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

------
jacobolus
Great work!

Have you seen this one?
[https://levskaya.github.io/polyhedronisme/](https://levskaya.github.io/polyhedronisme/)

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

~~~
tesseralis
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.

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

------
mpax
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.

~~~
tesseralis
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...](https://en.wikipedia.org/wiki/Conway_polyhedron_notation#Other_surfaces))

~~~
mpax
Perfect!

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

Can they be exported as gltf format?

~~~
tesseralis
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.

------
apexal
This is extremely informative and mesmerizing!

