27 sided spherical geometry (icosikaiheptagon, icosiheptagon, icosaheptagon)

557 views
Skip to first unread message

Lordmathos FX

unread,
Oct 20, 2016, 5:28:46 AM10/20/16
to antiprism
HI, I am new to this program and I am trying to create a 27 sided geodesic sphere.

Can someone please help as I am totally lost.,

Thanks

Adrian Rossiter

unread,
Oct 20, 2016, 5:56:18 AM10/20/16
to antiprism
Hi

On Thu, 20 Oct 2016, Lordmathos FX wrote:
> HI, I am new to this program and I am trying to create a 27 sided geodesic
> sphere.

You can create a roughly spherical, fairly symmetric, 27-sided polyhedron
like this

repel -N 27 | conv_hull | pol_recip | canonical | antiview

27 points are placed on a sphere, and repel each other. The convex hull is
made, which has 27 vertices. The dual is made, which has 27 faces. The
canonical form is made, which has better symmetry.

Adrian.
--
Adrian Rossiter
adr...@antiprism.com
http://antiprism.com/adrian

Roger Kaufman

unread,
Oct 20, 2016, 6:41:55 AM10/20/16
to anti...@googlegroups.com
Hi Adrian,

I was in mid reply with the exact same command. It produces a nice D5h
polyhedron. It is interesting that the number of faces is odd and prime.

I thought I'd take it a bit further and try to see if there were other
Fullerenes with 27 faces. I still have Antiprism 0.19.1 and you once
wrote a program (fg2off) to translate the output from fullgen into off
files. This still compiles and works.

I was trying to input 27, but fullgen reports it is an impossible vertex
count. Well of course, because we are looking at the reciprocal. The 27
sided Fullerene has 50 vertices.

With a parameter of 50, fullgen generates 271 different models. I didn't
look at all the models to see if they truly all have 27 faces. And this
doesn't prove there aren't other models of 27 faces with different
vertex counts.

Roger

Roger Kaufman

unread,
Oct 20, 2016, 2:47:51 PM10/20/16
to anti...@googlegroups.com
Hi Adrian,

On 10/20/2016 6:41 AM, Roger Kaufman wrote:
> With a parameter of 50, fullgen generates 271 different models. I
> didn't look at all the models to see if they truly all have 27 faces.
> And this doesn't prove there aren't other models of 27 faces with
> different vertex counts.

All of the models have 27 faces. This is probably the full set of
geodesic models with 27 faces.

Model 253 is the only one that would not inflate properly with minmax.
Possible? The rest have been canonicalized.

Model 1 and 105 are D5h, and 105 is the model produced by repel.

I added a txt report of the symmetry of each model. I was thinking of a
way to move them into respective directories named by Sym type, but most
of them are C1.

I attached a zip file of the OFF file output.

Roger

fg50.zip

Adrian Rossiter

unread,
Oct 21, 2016, 12:58:03 AM10/21/16
to Antiprism List
Hi Roger

On Thu, 20 Oct 2016, Roger Kaufman wrote:
> Model 253 is the only one that would not inflate properly with minmax.
> Possible? The rest have been canonicalized.

Minmax processed this one fine for me, but even experimenting with
multiple runs and different parameters I couldn't get convergence
with canonical.

If you try to make the polygons regular the model is quite elongated.

minmax -p u -n 10000 fg50_00000253.off | minmax -a u | antiview

I wonder if this is a factor.

I couldn't get it to planarise with canonical, and this is what
minmax does

minmax -p u -n 10000 fg50_00000253.off | minmax -a u -f 90 -n 100000 | antiview

Maybe it doesn't have a convex form.

Roger Kaufman

unread,
Oct 21, 2016, 7:41:51 AM10/21/16
to anti...@googlegroups.com
Hi Adrian,

On 10/21/2016 12:57 AM, Adrian Rossiter wrote:
> I couldn't get it to planarise with canonical, and this is what
> minmax does
>
> minmax -p u -n 10000 fg50_00000253.off | minmax -a u -f 90 -n
> 100000 | antiview
>
> Maybe it doesn't have a convex form.

This seems to planarize it. But it still can't find a canonical form.

minmax -p u -n 10000 fg50_00000253.off | minmax -a u -f 90 -n 100000 >
tmp.off
canonical -M l tmp.off > tmp_convex.off

off_report -S F tmp_convex.off


If it is going to have a canonical form, it would have to be more
spherical. This planarization almost gets there but not quite. I raised
-l but it doesn't help with the planarity.

canonical -M q -l 15 tmp.off | antiview


However, when I did this I stumbled into a canonical form which is planar.

canonical -M q tmp.off | canonical -M m -e 30 > tmp_canonical.off

off_report -S F tmp_canonical.off

It looks like there is more symmetry, but it is just C2.


I noticed while -e is 50 (the default) it never halts. At 40 it does but
some of the faces are not right. When I checked, it looks like a face
get drawn into a filament and there will be 0 angles in the face.

Using a different command -M n (base/dual method), the same thing
occurs but I was able to limit how far it went before it started getting
stretched. It appears what happens is that a face can have one of the
edges become 0 in length. I don't know how this could be prevented.

canonical -M q tmp.off | canonical -M n -n 52000 -z 10000 | antiview


Roger





Roger Kaufman

unread,
Oct 22, 2016, 2:37:43 PM10/22/16
to anti...@googlegroups.com
Hi Adrian,

On 10/21/2016 7:41 AM, Roger Kaufman wrote:
> Using a different command -M n (base/dual method), the same thing
> occurs but I was able to limit how far it went before it started
> getting stretched. It appears what happens is that a face can have one
> of the edges become 0 in length. I don't know how this could be
> prevented.
>
> canonical -M q tmp.off | canonical -M n -n 52000 -z 10000 | antiview

Whether a polyhedron has been able to be canonicalized has always been
trial an error. I don't know a way around that and the program has lots
of options to try to find a successful outcome. It works in most
reasonable cases.

The bigger problem is trying to make the program halt. Currently there
is implemented a divergence test but it doesn't always succeed.

It appears another way to do it might be to see if any face becomes
non-convex. If that happens a canonical model cannot be found. For the
subject polyhedron above it happens with both algorithms. For -M m it
happens right away.

canonical -M q tmp.off | canonical -M m -n 1 -z 10000 | antiview

canonical -M q tmp.off | canonical -M n -n 52100 -z 10000 | antiview

This would also be able to test input. I noticed most of the non-convex
uniform polyhedra are processed successfully by canonical and they are
not correct.

It might be able to replace the divergence test.

I found this here. If such a test was time consuming it might be tested
every N iterations.

http://stackoverflow.com/questions/471962/how-do-determine-if-a-polygon-is-complex-convex-nonconvex

Roger



Roger Kaufman

unread,
Oct 24, 2016, 1:29:33 PM10/24/16
to anti...@googlegroups.com
Hi Adrian,

On 10/22/2016 2:37 PM, Roger Kaufman wrote:
> It appears another way to do it might be to see if any face becomes
> non-convex. If that happens a canonical model cannot be found. For the
> subject polyhedron above it happens with both algorithms. For -M m it
> happens right away.

Do we already have a function to test for non-convexity of a face?

I have thought about this a bit. If a polyhedron is closed and has a
non-convex face then the polyhedron itself is non-convex.

The only exception I can think of is a toroid. But a toroid would would
not be Genus 0.

Requirements for being a convex polyhedron:

1) Closed
2) Genus 0
3) No non-convex faces

Valid statement?

Roger

Adrian Rossiter

unread,
Oct 25, 2016, 2:42:05 AM10/25/16
to anti...@googlegroups.com
Hi Roger

On Fri, 21 Oct 2016, Roger Kaufman wrote:
> However, when I did this I stumbled into a canonical form which is planar.
>
> canonical -M q tmp.off | canonical -M m -e 30 > tmp_canonical.off
>
> off_report -S F tmp_canonical.off
>
> It looks like there is more symmetry, but it is just C2.

That is a good result, and with -l 20 converges to the limits of
precision.

Adrian Rossiter

unread,
Oct 25, 2016, 3:08:42 AM10/25/16
to anti...@googlegroups.com
Hi Roger

On Mon, 24 Oct 2016, Roger Kaufman wrote:
> On 10/22/2016 2:37 PM, Roger Kaufman wrote:
>> It appears another way to do it might be to see if any face becomes
>> non-convex. If that happens a canonical model cannot be found. For the
>> subject polyhedron above it happens with both algorithms. For -M m it
>> happens right away.
>
> Do we already have a function to test for non-convexity of a face?

No, I don't think a complete test is needed for canonical.

Regarding your last post, referencing this thread

http://stackoverflow.com/questions/471962/how-do-determine-if-a-polygon-is-complex-convex-nonconvex

The answer by Jason S sounds good. It is equivalent to the answer before,
which has a comment on the need to check intersecting edges too (otherwise
a pentagram will be convex!). However, I don't think it is necessary to
test for intersections in canonical. It seems unlikely that the canonical
algorithm would convert a single wound polygon into a multiple wound
polygon without passing through a "dimpled" vertex form. I am not sure how
it might happen regardless unless the model started with multiple wound
faces.


> Requirements for being a convex polyhedron:
>
> 1) Closed
> 2) Genus 0
> 3) No non-convex faces

If you dimple a vertex of an icosahedron, the polyhedron is not convex but
would pass this test.

Adrian Rossiter

unread,
Oct 25, 2016, 3:11:20 AM10/25/16
to anti...@googlegroups.com
On Tue, 25 Oct 2016, Adrian Rossiter wrote:
> On Mon, 24 Oct 2016, Roger Kaufman wrote:
>> Do we already have a function to test for non-convexity of a face?
>
> No, I don't think a complete test is needed for canonical.

No, but I don't think....

Roger Kaufman

unread,
Oct 25, 2016, 1:31:51 PM10/25/16
to anti...@googlegroups.com
Hi Adrian,

On Fri, 21 Oct 2016, Roger Kaufman wrote:
> However, when I did this I stumbled into a canonical form which is
> planar.
>
> canonical -M q tmp.off | canonical -M m -e 30 > tmp_canonical.off
>

That is a good result, and with -l 20 converges to the limits of
precision.

You can go to -l 20? I was able to use -l 18 in Ubuntu. In Cygwin I
could get better precision under the Win64 build so that shows it has
some benefit. Even so I could only go to -l 17 before minimum difference
was achieved.

When it doesn't halt when minimum difference no longer changes is
probably a good reason to halt the program! This is at least one thing I
can experiment with. I am thinking if the difference is PRECISELY equal
two iterations in a row it probably is not going to improve.

On 10/25/2016 3:08 AM, Adrian Rossiter wrote:
> Hi Roger
>
> On Mon, 24 Oct 2016, Roger Kaufman wrote:
>> On 10/22/2016 2:37 PM, Roger Kaufman wrote:
>>> It appears another way to do it might be to see if any face becomes
>>> non-convex. If that happens a canonical model cannot be found. For
>>> the subject polyhedron above it happens with both algorithms. For -M
>>> m it happens right away.
>>
>> Do we already have a function to test for non-convexity of a face?
>
> No, I don't think a complete test is needed for canonical.
>
> Regarding your last post, referencing this thread
>
> http://stackoverflow.com/questions/471962/how-do-determine-if-a-polygon-is-complex-convex-nonconvex
>
> The answer by Jason S sounds good. It is equivalent to the answer
> before, which has a comment on the need to check intersecting edges
> too (otherwise a pentagram will be convex!). However, I don't think it
> is necessary to test for intersections in canonical. It seems unlikely
> that the canonical algorithm would convert a single wound polygon into
> a multiple wound polygon without passing through a "dimpled" vertex
> form. I am not sure how it might happen regardless unless the model
> started with multiple wound faces.

Ah yes, and I probably have even done intersection testing before. I
probably won't add this (see below).

>
>
>> Requirements for being a convex polyhedron:
>>
>> 1) Closed
>> 2) Genus 0
>> 3) No non-convex faces
>
> If you dimple a vertex of an icosahedron, the polyhedron is not convex
> but would pass this test.
>

Oh you are right, it can happen this way. I suppose all outside angles
between faces need to be measured for outer angle > 180 (time consuming).

Another way might be to take the convex hull and measure if volumes are
equal.

From George Hart's page, the theorem for canonical are
http://www.georgehart.com/virtual-polyhedra/canonical.html
"An interesting theorem states that there exists a "canonical form" of
any given convex polyhedron."
Then: "... and the edges of the canonical polyhedron and its dual cross
at right angles."

I was looking in this direction because in the case of the example when
the face becomes non-convex then the corresponding reciprocal cannot be
convex and so canonicalization cannot occur. After this it might as well
give up.

However, I think the divergence test is catching most conditions and I
think it is sufficient, except for when equality is occurring as stated
above. The divergence test is set at 10 but a lower number like 2 might
exit faster. It is something I can look at.

One thing that might be better to change is status reporting iteration
count. Right now it is set at 50. I think this is way to low and should
probably more likely be 1000 or higher, maybe even 10,000. The reason it
reports by default is that some models take a while to calculate and it
shows the program is not otherwise stuck. But I've noticed the program
speed seems to improve a bit when it doesn't have to output to screen as
much. The final number is reported regardless. Any thoughts on this?

Roger

Adrian Rossiter

unread,
Oct 27, 2016, 8:05:10 AM10/27/16
to anti...@googlegroups.com
Hi Roger

On Tue, 25 Oct 2016, Roger Kaufman wrote:
> On Fri, 21 Oct 2016, Roger Kaufman wrote:
>> However, when I did this I stumbled into a canonical form which is planar.
>>
>> canonical -M q tmp.off | canonical -M m -e 30 > tmp_canonical.off
>>
>
> That is a good result, and with -l 20 converges to the limits of
> precision.
>
> You can go to -l 20? I was able to use -l 18 in Ubuntu. In Cygwin I could get

I set -l 20 so it wouldn't halt, with large -n to see if it settled.


> Right now it is set at 50. I think this is way to low and should probably
> more likely be 1000 or higher, maybe even 10,000. The reason it reports by
> default is that some models take a while to calculate and it shows the
> program is not otherwise stuck. But I've noticed the program speed seems to
> improve a bit when it doesn't have to output to screen as much. The final
> number is reported regardless. Any thoughts on this?

Perhaps the default reporting frequency could depend on, say, the number
of edges in the model.

Brian H.

unread,
Jan 20, 2017, 2:34:29 PM1/20/17
to antiprism
three to the third power facets, c00l ... I have no idea about modeling, though,
what is meant by canonical, if not just super-prototypical?

Adrian Rossiter

unread,
Jan 20, 2017, 3:25:29 PM1/20/17
to antiprism
Hi Quincy

On Fri, 20 Jan 2017, Brian H. wrote:
> three to the third power facets, c00l ... I have no idea about modeling,
> though,
> what is meant by canonical, if not just super-prototypical?

http://www.georgehart.com/virtual-polyhedra/canonical.html

Adrian Rossiter

unread,
Jan 23, 2017, 6:08:36 AM1/23/17
to Antiprism List
Hi Quincy

On Sun, 22 Jan 2017, Brian H. wrote:
> sorry, but my "time" is used-up, for now. so,
> I can see that the enneah. has 3 4-way vertices from the shclegelgram, but
> I can't see the "wrl" files, so that I cannot see the heptahdron -- anyway,
> it must be the one that I thought of, but completely forgot about, so that
> it is all yours!... now,
> are the Johnsons considered canonical?

Check the first Johnson solid

https://en.wikipedia.org/wiki/List_of_Johnson_solids

against the definition of "canonical form" in the link I previously
posted.
Reply all
Reply to author
Forward
0 new messages