## Something puzzling with 4D Catalans

Discussion of tapertopes, uniform polytopes, and other shapes with flat hypercells.

### Something puzzling with 4D Catalans

So, I've been playing around with rendering projections of 4D catalans (duals of the uniform polychora) but I'm getting some rather puzzling results. I'm not sure if it's a bug in my polytope dissector program, or a bug in the convex hull algo I'm using, or if I'm misunderstanding something, but ...

... After computing the dual of the omnitruncated 24-cell I get something with square pyramids for cells. Which seems very strange, because the vertex figure of the omnitruncated 24-cell is an irregular tetrahedron, so one would expect that the dual should have dual irregular tetrahedra for cells, not square pyramids.

Also, the vertex figure of the rectified 600-cell is a pentagonal prism, so one would expect the dual to have cells in the shape of pentagonal bipyramids (i.e., dual of the pentagonal prism). However, after computing the dual I get something with pentagonal pyramids (not bipyramids) for cells.

What gives?? Could it be that due to roundoff error is causing the convex hull algo to split/join cells, maybe because some of them have dihedral angles that are too shallow?
quickfur
Pentonian

Posts: 2486
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

### Re: Something puzzling with 4D Catalans

At first I've got the same result. I took half-4D x+y*(1+s2)+z*(1+2s2)+w*(1+3s2)<=1 (where s2=sqrt(2)) and built intersection of it's images in 24-cell symmetry group. Result was 576-faces polytope with 5-faces cells.
Then I found that the vertex (1,(1+s2),(1+2s2),(1+3s2)) is not of omnitruncated 24-cell, but of the omnitruncated tesseract, so my result was in intersection of 3 (or 2) duals to it. It should bu a dual to something-24-cell, but I have to find to which of them.
When I fized that, result was more realistic - a body with tetrahedral cells. I didn't count them yet, but there is a vertex where 48 tetrahedra meet - as it should be...
Mrrl
Trionian

Posts: 165
Joined: Sun May 29, 2011 7:37 am

### Re: Something puzzling with 4D Catalans

Hmm I'm not sure what I'm doing wrong then... I'm actually computing the centroids of the omnitruncated 24-cell's cells, so it can't possibly be wrong unless my omnitruncated 24-cell coordinates are wrong. :-/
quickfur
Pentonian

Posts: 2486
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

### Re: Something puzzling with 4D Catalans

The wythoff mirror-margin catalans can be found in the same way as the WME uniforms.

For the dual of say x3o4o3x is m3o4o3m. The walls of the symmetry cell with 'm' are kept, while the walls with 'o' are removed.

You then start with four rays, heading in the directions of the corners of the four symmetries. The 'm' walls are free variables, while the 'o' walls means that the simplex held up by the four rays, must form a right angle on that wall.

Since the vertex of the WM catalans are just appropriately scaled base figures, (ie x3o4o3o, o3x4o3o, o3o4x3o, and o3o4o3x), one could find the sizes of these from where the tangential plane to x3o4o3x cuts the four rays representing the vertices of these four figures.
The dream you dream alone is only a dream
the dream we dream together is reality.

wendy
Pentonian

Posts: 1815
Joined: Tue Jan 18, 2005 12:42 pm
Location: Brisbane, Australia

### Re: Something puzzling with 4D Catalans

It's strange, though. I'm working with the actual explicit coordinates, so the only possibility is that something went wrong either with the convex hull algorithm or the lattice enumeration algorithm, because i've tested the dual construction with 3D polyhedra and it seems to produce sensible results. I'll have to investigate it more carefully.
quickfur
Pentonian

Posts: 2486
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

### Re: Something puzzling with 4D Catalans

Actually, nevermind what I just said. Just discovered that the problem is caused by the convex hull algo. The dual of the snub dodecahedron turned out to have the pentagonal faces split into triangles and tetragons. So I've found the cause of the problem. Now the question is how to fix it...
quickfur
Pentonian

Posts: 2486
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

### Re: Something puzzling with 4D Catalans

OK, I've found the root of the problem. It's because I was computing the facet centroids and using those as the vertices of the dual. That gives the geometric dual of the polytope, but that does not always correspond with the topological dual. The main problem is that the resulting vertices may not lie on the same hyperplane as the vertex figures, so the resulting polytope may have its non-simplicial facets split up.

So the real problem is that I can't use facet centroids as the vertices of the dual; to get the topological dual I need to compute the hyperplane of the vertex figures (which may not be orthogonal to the vertex vector) and use those as the bounding hyperplanes of the dual. Fortunately, the double-description algo that I'm using works both ways (vertex representation -> hyperplane representation and vice versa), so this should fix the problem once I revise the dual construction algorithm. Yay!
quickfur
Pentonian

Posts: 2486
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

### Re: Something puzzling with 4D Catalans

Yay! I managed to successfully generate the dual rectified 600-cell. It's sooo pretty!! Pentagonal bipyramids everywhere... and the cluster of bipyramids surrounding a vertex has an envelope that's almost the small stellated dodecahedron {5/2,5} (the pentagrams a slightly non-planar). Now i'm gonna hafta add the 4D catalans to my site. I'll probably start with the catalans that have non-tetrahedral faces--somehow i find that more interesting than just something with lots and lots of tetrahedral facets.
quickfur
Pentonian

Posts: 2486
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

### Re: Something puzzling with 4D Catalans

There is very easy way to find coordinates of dual polytope: take cell of the given polytope, project body center to its plane (in the case of uniform polytope it will be center of the cell), and built in inversion of the resulting point F about some sphere: V=F/|F|2. If cells f1,f2,..fk had common vertex, then points v1,v2,..,vk will lay in common hyperplane.
Last edited by Mrrl on Fri Sep 09, 2011 7:35 am, edited 1 time in total.
Mrrl
Trionian

Posts: 165
Joined: Sun May 29, 2011 7:37 am

### Re: Something puzzling with 4D Catalans

Thanks! In my case, I already have a full-blown double-description convex hull algo at my disposal; all it took was to take the vertices of the polytope and feed them to the DD algo as the equations of bounding hyperplanes. It was a no-brainer, really. The only reason I got into trouble was 'cos I was under the false impression that the facet centroids are the vertices of the dual -- true for regular polytopes, not true in general. It was actually some old code I wrote that was misleadingly labelled "dual"; I didn't even think twice when running my data through it. In retrospect, it was just a really dumb thing to do when the DD algorithm basically already tells you what the dual is when it computes the double description.
quickfur
Pentonian

Posts: 2486
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

### Re: Something puzzling with 4D Catalans

Yes, dual rectified 600-cell looks nice (but I can see it only from inside). But the simplest non-trivial puzzle based on it has 9360 stickers... I'll include it to the list, but not sure that somebody will ever try it 32-cell (dual rectified tesseract) looks more handy And dual rectified 16-cell is absolutely beautiful
Mrrl
Trionian

Posts: 165
Joined: Sun May 29, 2011 7:37 am

### Re: Something puzzling with 4D Catalans

Hahaha... dual rectified 16-cell is the same as itself.
quickfur
Pentonian

Posts: 2486
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

### Re: Something puzzling with 4D Catalans

OK here's a temporary render of the dual rectified 600-cell, showing the 12 pentagonal bipyramids surrounding a single vertex:

The rest of the cells are rendered in transparent cyan. This is the part I was referring to, it's almost like a small stellated dodecahedron, except that the pentagrams are slightly bent so they are not planar. Well, OK, there aren't actually any pentagrammic faces here, but its envelope is very close to the stellated dodecahedron's envelope.

Edit: This is, of course, a perspective projection centered on a single vertex, with the 4D viewpoint 5 units away from the polytope scaled to radius 1.
quickfur
Pentonian

Posts: 2486
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

### Re: Something puzzling with 4D Catalans

Fully independend of this more than 5 years old thread, this weekend I investigated the 4D equivalents of the rhombohedra myself.

The rhombohedra are obtained when reusing the vertices of any regular polyhedron, but replacing each edge by a rhomb, which by itself is situated tangentially to the former edge center sphere. These rhombs then add further vertices somewhere atop the former faces. This is why those rhombohedra also could be obtained as the convex hull of the compound of dual pairs of polyhedra, provided that the dual polyhedron would be scaled accordingly, that is, when the edges of both polyhedra are taken tangential to a common sphere.

Now let us take over this constructional device to the next dimension, and look what we would get there. Again we start with some regular polychoron. We maintain its vertex set and will use the edges as constructive device. Thus we are looking again for the edge center glome and will have to scale the dual polychoron such that its 2D face center glome would coincide. Then the hulls of the former edge ends and the orthogonal 2D faces each would define some bipyramids, as the counterparts of the rhombs of the 3D setup. (Examples thereof can be seen quite well in Quickfur's partial pic.)

The result then for either pairing of dual polychora will be two polychora (one using the edges of P, one using the edges of P*), fully bounded by these bipyramids only. As we have 6 (convex) regular polychora, we likewise look forward for 6 bipyramidally bounded polychora, aka bipyramidochora.

The edge glome radius R_{} obviously is related to the circumradius R_0 according to R_{}^2 = R_0^2 - r_{}^2 = R_0^2 - (1/2)^2.
The 2D face radius R_{p} of the polychoron {p,q,r} is related to the circumradius R_0 according to R_{p}^2 = R_0^2 - r_{p}^2, where r_{p} then is the 2D circumradius of the polygon {p}.
Therefore, when those glomes ought coincide and the edge size of the starting polychoron P would be unity, then the edge size of the dual polychoron P* would equate to x' = 1 * R_{} / R*_{p*}. Here x' also would be the equatorial edge size of the bipyramids, provided the axial hight would be unity. Accordingly the corresponding lacing edge sizes (within that scaling) then could be calculated as
x"^2 = (x' * r*_{p*})^2 + r_{}^2 = (R_{} * r*_{p*} / R*_{p*})^2 + (1/2)^2.

Of special interest then would be those cases, where one gets x' = x"; for then that bipyramidochoron has a single edge size only, and therefore the used lacing triangles become regular in addition. That is, that bipyramidochoron would become a CRF. For that to take place we have to equate 4 * R_{}^2 * r*_{p*}^2 + R*_{p*}^2 = 4 * R_{}^2 or equivalently r*_{p*}^2 + R*_{p*}^2 / (2 * R_{})^2 = 1.

The following table provides these respective radii for the regular polychora, always given in respective edge units of the starting figures. (Make sure to use the scroll bars!)
Code: Select all
`-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+polychoron {p,q,r}                   | pen = {3,3,3}         | hex = {3,3,4}        | tes = {4,3,3}         | ico = {3,4,3}        |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+R_0                                  | sqrt(2/5)  = 0.632456 | 1/sqrt(2) = 0.707107 | 1                     | 1                    |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+r_{}                                 | 1/2                   | 1/2                  | 1/2                   | 1/2                  |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+R_{}                                 | sqrt(3/20) = 0.387298 | 1/2                  | sqrt(3)/2  = 0.866025 | sqrt(3)/2 = 0.866025 |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+r_{p}                                | 1/sqrt(3)  = 0.577350 | 1/sqrt(3) = 0.577350 | 1/sqrt(2)  = 0.707107 | 1/sqrt(3) = 0.577350 |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+R_{p}                                | 1/sqrt(15) = 0.258199 | 1/sqrt(6) = 0.408248 | 1/sqrt(2)  = 0.707107 | sqrt(2/3) = 0.816497 |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+r_{p,q}                              | sqrt(3/8)  = 0.612372 | sqrt(3/8) = 0.612372 | sqrt(3)/2  = 0.866025 | 1/sqrt(2) = 0.707107 |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+R_{p,q}                              | 1/sqrt(40) = 0.158114 | 1/sqrt(8) = 0.353553 | 1/2                   | 1/sqrt(2) = 0.707107 |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+x' = R_{} / R*_{p*}                  | 3/2                   | 1/sqrt(2) = 0.707107 | 3/sqrt(2)  = 2.121320 | 3/sqrt(8) = 1.060660 |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+x" = sqrt[(x' * r*_{p*})^2 + r_{}^2] | 1                     | 1/sqrt(2) = 0.707107 | sqrt(7)/2  = 1.322876 | sqrt(5/8) = 0.790569 |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+y = x"/x'                            | 2/3                   | 1                    | sqrt(7/18) = 0.623610 | sqrt(5)/3 = 0.745356 |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+#{}                                  | 10                    | 24                   | 32                    | 96                   |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+cells                                | oxo3ooo&#y            | oxo4ooo&#x = oct     | oxo3oo&#y             | oxo3oo&#y            |-------------------------------------+-----------------------+----------------------+-----------------------+----------------------+`
Code: Select all
`-------------------------------------+------------------------------------+-------------------------------------+polychoron {p,q,r}                   | ex = {3,3,5}                       | hi = {5,3,3}                        |-------------------------------------+------------------------------------+-------------------------------------+R_0                                  | (1+sqrt(5))/2           = 1.618034 | sqrt[7+3 sqrt(5)]        = 3.702459 |-------------------------------------+------------------------------------+-------------------------------------+r_{}                                 | 1/2                                | 1/2                                 |-------------------------------------+------------------------------------+-------------------------------------+R_{}                                 | sqrt[5+2 sqrt(5)]/2     = 1.538842 | sqrt[27+12 sqrt(5)]/2    = 3.668542 |-------------------------------------+------------------------------------+-------------------------------------+r_{p}                                | 1/sqrt(3)               = 0.577350 | sqrt[(5+sqrt(5))/10]     = 0.850651 |-------------------------------------+------------------------------------+-------------------------------------+R_{p}                                | sqrt[(7+3 sqrt(5))/6]   = 1.511523 | sqrt[(65+29 sqrt(5))/10] = 3.603415 |-------------------------------------+------------------------------------+-------------------------------------+r_{p,q}                              | sqrt(3/8)               = 0.612372 | sqrt[(9+3 sqrt(5))/8]    = 1.401259 |-------------------------------------+------------------------------------+-------------------------------------+R_{p,q}                              | sqrt[(9+4 sqrt(5))/8]   = 1.497676 | sqrt[(47+21 sqrt(5))/8]  = 3.427051 |-------------------------------------+------------------------------------+-------------------------------------+x' = R_{} / R*_{p*}                  | sqrt[(35-15 sqrt(5))/8] = 0.427051 | 3 (1+sqrt(5))/4          = 2.427051 |-------------------------------------+------------------------------------+-------------------------------------+x" = sqrt[(x' * r*_{p*})^2 + r_{}^2] | (sqrt(5)-1)/2           = 0.618034 | sqrt[(11+3 sqrt(5))/8]   = 1.487792 |-------------------------------------+------------------------------------+-------------------------------------+y = x"/x'                            | sqrt[(6+2 sqrt(5))/5]   = 1.447214 | sqrt[(9-sqrt(5))/18]     = 0.613004 |-------------------------------------+------------------------------------+-------------------------------------+#{}                                  | 720                                | 1200                                |-------------------------------------+------------------------------------+-------------------------------------+cells                                | oxo5ooo&#y                         | oxo3oo&#y                           |-------------------------------------+------------------------------------+-------------------------------------+`

Thus, that bipyramidochoron, which results from hex, is nothing but ico. All other ones exist too, but would not result in CRFs. In fact, all trigonal ones will use oblate bipyramides (x > y), only the pentagonal one uses prolate bipyramids (x < y).

I've to admit, that I mainly was looking for CRFs in the run of those constructions. Sadly this research came out negative. But on the other hand, this thread clearly is right. All these are nothing but some of the 4D Catalans. In fact those which Wendy would write oPmQoRo. (Just as the 3 well-known rhombohedra themselves are nothing but oPmQo.)

--- rk
Klitzing
Pentonian

Posts: 1377
Joined: Sun Aug 19, 2012 11:16 am
Location: Heidenheim, Germany

### Re: Something puzzling with 4D Catalans

As I mentioned already last night: it further occurs that those bipyramidochora are nothing but the Catalans oPmQoRo, just as the rhombohedra themselves were nothing but the Catalans oPmQo.

This makes it desirable to describe them by incidence matrices nonetheless. Scaling up (x, x', x") to (c = 1/x', x, y), we generally have: oPmQoRo = coPooQooRox&#zy, where the here notationally used c edges just qualify as pseudo edges of the full polychoron. (In fact those are the axial distances from one tip to the opposite tip of these bipyramids.) Accordingly we get:

Code: Select all
`o3m3o3o =co3oo3oo3ox&#zy - height = 0                  c = y = 2/3o.3o.3o.3o.     | 5 * |  4  0 |  6 |  4 verf: tet.o3.o3.o3.o     | * 5 |  4  4 | 12 |  6 verf: cube----------------+-----+-------+----+---oo3oo3oo3oo&#y  | 1 1 | 20  * |  3 |  3.. .. .. .x     | 0 2 |  * 10 |  3 |  3----------------+-----+-------+----+---.. .. .. ox&#y  | 1 2 |  2  1 | 30 |  2----------------+-----+-------+----+---co .. oo3ox&#zy | 2 3 |  6  3 |  6 | 10 some trig. bipyramid`

Code: Select all
`o3m3o4o =qo3oo3oo4ox&#zx - height = 0o.3o.3o.4o.     | 8  * |  8  0 | 12 |  6 verf: cube.o3.o3.o4.o     | * 16 |  4  4 | 12 |  6 verf: cube----------------+------+-------+----+---oo3oo3oo4oo&#x  | 1  1 | 64  * |  3 |  3.. .. .. .x     | 0  2 |  * 32 |  3 |  3----------------+------+-------+----+---.. .. .. ox&#x  | 1  2 |  2  1 | 96 |  2----------------+------+-------+----+---qo .. oo4ox&#zx | 2  4 |  8  4 |  8 | 24 oct`

Code: Select all
`o3m3o5o =co3oo3oo5ox&#zy - height = 0                  c = (5+3 sqrt(5))/5 = 2.341641                  y = sqrt[(6+2 sqrt(5))/5] = 1.447214o.3o.3o.5o.     | 120   * |   20    0 |   30 |  12 verf: doe.o3.o3.o5.o     |   * 600 |    4    4 |   12 |   6 verf: cube----------------+---------+-----------+------+----oo3oo3oo5oo&#y  |   1   1 | 2400    * |    3 |   3.. .. .. .x     |   0   2 |    * 1200 |    3 |   3----------------+---------+-----------+------+----.. .. .. ox&#y  |   1   2 |    2    1 | 3600 |   2----------------+---------+-----------+------+----co .. oo5ox&#zy |   2   5 |   10    5 |   10 | 720 some pent. bipyramid`
(this is the one Quickfur diplayed partially)

Code: Select all
`o3m4o3o =co3oo4oo3ox&#zy - height = 0                  c = sqrt(8)/3 = 0.942809                  y = sqrt(5)/3 = 0.745356o.3o.4o.3o.     | 24  * |   6  0 |  12 |  8 verf: oct.o3.o4.o3.o     |  * 24 |   6  8 |  24 | 12 verf: rad----------------+-------+--------+-----+---oo3oo4oo3oo&#y  |  1  1 | 144  * |   4 |  4.. .. .. .x     |  0  2 |   * 96 |   3 |  3----------------+-------+--------+-----+---.. .. .. ox&#y  |  1  2 |   2  1 | 288 |  2----------------+-------+--------+-----+---co .. oo3ox&#zy |  2  3 |   6  3 |   6 | 96 some trig. bipyramid`

Code: Select all
`o4m3o3o =co4oo3oo3ox&#zy - height = 0                  c = sqrt(2)/3 = 0.471405                  y = sqrt(7/18) = 0.623610o.4o.3o.3o.     | 16 * |  4  0 |  6 |  4 verf: tet.o4.o3.o3.o     |  * 8 |  8  6 | 24 | 12 verf: rad----------------+------+-------+----+---oo4oo3oo3oo&#y  |  1 1 | 64  * |  3 |  3.. .. .. .x     |  0 2 |  * 24 |  4 |  4----------------+------+-------+----+---.. .. .. ox&#y  |  1 2 |  2  1 | 96 |  2----------------+------+-------+----+---co .. oo3ox&#zy |  2 3 |  6  3 |  6 | 32 some trig. bipyramid`

Code: Select all
`o5m3o3o =co5oo3oo3ox&#zy - height = 0                  c = (sqrt(5)-1)/3 = 0.412023                  y = sqrt[(9-sqrt(5))/18] = 0.613004o.5o.3o.3o.     | 600   * |    4   0 |    6 |    4 verf: tet.o5.o3.o3.o     |   * 120 |   20  12 |   60 |   30 verf: rhote----------------+---------+----------+------+-----oo5oo3oo3oo&#y  |   1   1 | 2400   * |    3 |    3.. .. .. .x     |   0   2 |    * 720 |    5 |    5----------------+---------+----------+------+-----.. .. .. ox&#y  |   1   2 |    2   1 | 3600 |    2----------------+---------+----------+------+-----co .. oo3ox&#zy |   2   3 |    6   3 |    6 | 1200 some trig. bipyramid`

(where rad = o3m4o and rhote = o3m5o are the corresponding Catalan rhombohedra)

--- rk
Klitzing
Pentonian

Posts: 1377
Joined: Sun Aug 19, 2012 11:16 am
Location: Heidenheim, Germany