Goldberg Polyhedra

96 views
Skip to first unread message

Roger Kaufman

unread,
Jan 9, 2017, 11:48:12 AM1/9/17
to anti...@googlegroups.com
Hi Adrian,

I was looking at Goldberg Polyhedra. On this page it tells how to
generate them by Conway notation.

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

I noticed they were using a y and z operators.

y = tk
z = dk

On the Conway Notation page it describes generating Goldberg polyhedra
with extra operators. It gets pretty complex there.

Some operators I didn't see before:

n : needle
z : zip
x : exhalt
y : yank
q: quinto
v : volute
u: subdivide

Somebody must be working on this still. I wonder if John Conway is involved?

Roger




Adrian Rossiter

unread,
Jan 10, 2017, 6:32:14 AM1/10/17
to Antiprism List
Hi Roger

On Mon, 9 Jan 2017, Roger Kaufman wrote:
> I was looking at Goldberg Polyhedra. On this page it tells how to generate
> them by Conway notation.
>
> https://en.wikipedia.org/wiki/Goldberg_polyhedron

I wonder if it might be possible by considering element counts
to determine which ones can't be made this way (or, at least, some
of them).


> I noticed they were using a y and z operators.
...
> On the Conway Notation page it describes generating Goldberg polyhedra with
> extra operators. It gets pretty complex there.

There appears to be no limit to even the number of non-composite
operations.

A simple one that I can't see there (can it be composed from other
operations there?) is the next in the sequence kis, meta... that would
divide an edge in three segments and join them to the face centres. Here
it is applied to a cube

off_util null -A v0,0,3 -A v3,3,3 -A v3,1,3 -A v3,-1,3 -A v3,-3,3 -A f0,1,2 -A f0,2,3 -A f0,3,4 | poly_kscope -s O | off_util -M a -S | canonical | antiview

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

Roger Kaufman

unread,
Jan 10, 2017, 8:19:49 AM1/10/17
to anti...@googlegroups.com
Hi Adrian,

I am curious. Does the geodesic program make Goldberg polyhedra? From my
experimenting, the numbering system might be different.

I doubt it that it is able to generate all Goldberg's with conway
notation. Maybe if an Antiprism program worked for it, alteration in
conway notation wouldn't be needed.

Roger

Adrian Rossiter

unread,
Jan 10, 2017, 10:07:56 AM1/10/17
to anti...@googlegroups.com
Hi Roger

On Tue, 10 Jan 2017, Roger Kaufman wrote:
> I am curious. Does the geodesic program make Goldberg polyhedra? From my
> experimenting, the numbering system might be different.

Looking at the four at the top of the page here

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

The Antiprism models differ in the twist direction relative to the
order of the number pair, so similar models are made with

G(1, 4): antiview geo_4_1_d
G(4, 4): antiview geo_4_4_d
G(7, 0): antiview geo_7_d
G)5, 3): antiview geo_3_5_d

Or, using geodesic

G(1, 4): geodesic -c 4,1 ico | pol_recip | antiview
...

Roger Kaufman

unread,
Jan 10, 2017, 11:27:43 AM1/10/17
to anti...@googlegroups.com
Hi Adrian,

On 1/10/2017 10:07 AM, Adrian Rossiter wrote:
> Or, using geodesic
>
> G(1, 4): geodesic -c 4,1 ico | pol_recip | antiview

geodesic -c 1,4 ico | pol_recip | canonical | antiview

I appears that if using geodesic and the indexes reversed generates all
the series (tet,oct,ico). The results just need to be canonicalized.

This is good. I can use this in my discussion.

My fear is that trying to use conway notation to do this will always
leave gaps and further need for more operations.

Roger

Brian H.

unread,
Jan 20, 2017, 2:25:20 PM1/20/17
to antiprism
enantiomorphs are left & righty ,,, winged?...  nah, mirror-images!

Roger Kaufman

unread,
Jan 23, 2017, 12:02:38 PM1/23/17
to anti...@googlegroups.com
Hi Adrian,

Talking with Tom Ruen, I was suggesting that if he wanted to be able to
generate Goldberg polyhedra that it could just add a geodesic operator
with 2 parameters (the default would be 2,0). Then the duals of those
with sees T,O, and I are Goldberg. This would solve the problem of gaps
in the sequence not being able to be constructed any other way such as
prime numbers. It looks like this might be applied to the operator he
calls 'u' and is called subdivide. If not it would need another letter.

Then after seeing your suggestion for a 3 way sub-divided 'meta', it
seemed like a good idea to him. I suggested if he were going to do that,
then just index 'meta' and be able to continue the sequence. Then m1=k
m2=m .... He seems to have already run with this updating the page. It
looks like he added the idea of indexing to some other operators.

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

The 'flex' operator for pyrito symmetry didn't work out.

I am going to let the conway notation page settle out for a while and
see how it ends up. I know he does test programming to see if they work.

In the meantime I am going to start on canonical now. The object is to
make it easier to use, clean up the code, look for speed ups,
improvements etc. I figure I will be working on this for several months.
Then I can take a look at the conway program.

Roger

Adrian Rossiter

unread,
Jan 23, 2017, 2:40:25 PM1/23/17
to Antiprism List
Hi Roger

On Mon, 23 Jan 2017, Roger Kaufman wrote:
> Talking with Tom Ruen, I was suggesting that if he wanted to be able to
> generate Goldberg polyhedra that it could just add a geodesic operator with 2
> parameters (the default would be 2,0). Then the duals of those with sees T,O,
> and I are Goldberg. This would solve the problem of gaps in the sequence not
> being able to be constructed any other way such as prime numbers. It looks
> like this might be applied to the operator he calls 'u' and is called
> subdivide. If not it would need another letter.

Just for interest, the geodesic subdivision applies to triangles, but
you can also apply a quadrilateral version to quadrilateral faces
(in the natural way).

With Class I triangular subdivisions there is an obvious way of
associating the subdivision triangles with an original face

off_color -f U ico | geodesic -c 6,0 | antiview

With Class II and III triangular subdivisions this is not the case

off_color -f U ico | geodesic -c 6,1 | antiview
off_color -f U ico | geodesic -c 4,4 | antiview

You can see that you could swap colours of some of the triangles
on the colour bordwers to make another valid assignment. Also, the
Class II subdivision assignment is chiral even though the original
faces weren't!

This same effect creates a difficulty for models that use the
quadrilateral subdivision for quadrilateral faces. Where a triangle
face meets a quadrilateral face in the base model, the boundary in the
subdivision has tiles that could equally be two triangles or one square,
depending on whether they are assigned to the triangle face or the
quadrilateral face. It is possible to choose an assignment rule, but I am
not sure there is any obvious expectation of how the boundary tiles should
be constructed, and therefore what the final model should be.


> I am going to let the conway notation page settle out for a while and see how
> it ends up. I know he does test programming to see if they work.
>
> In the meantime I am going to start on canonical now. The object is to make
> it easier to use, clean up the code, look for speed ups, improvements etc. I
> figure I will be working on this for several months. Then I can take a look
> at the conway program.

I have started looking at a constructive description of Conway
operators, based on the ideas in poly_weave (and to_nfold), that
will allow a program to apply them to any surface.

Essentially, the faces are divided into triangles with "meta".
Points, in barycentric coordinates, are assigned and will
(generally) be present in every triangle. Faces are drawn by
defining a chain of edges, which are a sequence of pairs of a point
(barycentric coordinates) followed by a step to the next triangle.
The chein of edges is repeated until the original triangle
is returned to. A new face of the same kind is started from the next
unvisited triangle. When the triangles are exhauseted the next
chain is processed.

There is some extra handling for the general case. The meta triangles
need to be considered as "positive" and "negative" to be able to make
chiral patterns. Non-orientable surfaces won't have "positive" and
"negative" triangles to form chiral patterns. Alternation, requires
the removal of certain tiles and a "restitching" to close the holes.
Etc.

It should be possible to describe all the the Conway operators
in terms of the set of chains for each face.

As an example, "dual" is just

P0,V (rotate around the vertex centre)

with P0=(0,0,1), the original face centres

"expand" has three chains

P0,V
P0,E
P0,F

with P0 = (1/2,0,1/2) which is a point half-way between a
vertex and face centre. But this could be any point
((1-a), 0, a) with 'a' ranging 0.0 to 1.0 to expand
between ortho and dual.

As in poly_weave the final points can be placed on a smoothed
version of the origional surface.

There is also the potential to move from the base model to the
applied operator model by a (generally meaningless) continous
transformation, which could make some nice animations.

I'll see if I can put together a rough program to demonstrate the
constructive notation.

Roger Kaufman

unread,
Jan 23, 2017, 3:17:50 PM1/23/17
to anti...@googlegroups.com
Hi Adrian,

I might have opened a can of worms with the idea of Geodesic operator :D


On 1/23/2017 2:40 PM, Adrian Rossiter wrote:
> I'll see if I can put together a rough program to demonstrate the
> constructive notation.

Just a quick reply. Tom shows application of conway operators to the
generation of tilings. The conway program as ported can't do that as it
wasn't designed to. In order to that it would have to be practically
re-written from the ground up.

These are the seeds he defines

Q = Quadrille =Square tiling
H = Hextille = Hexagonal tiling = dΔ
Δ = Deltille = Triangular tiling = dH

Maybe what you are doing might be a step in that direction.

Roger



Adrian Rossiter

unread,
Jan 23, 2017, 4:00:11 PM1/23/17
to anti...@googlegroups.com
Hi Roger

On Mon, 23 Jan 2017, Roger Kaufman wrote:
> On 1/23/2017 2:40 PM, Adrian Rossiter wrote:
>> I'll see if I can put together a rough program to demonstrate the
>> constructive notation.
>
> Just a quick reply. Tom shows application of conway operators to the
> generation of tilings. The conway program as ported can't do that as it
> wasn't designed to. In order to that it would have to be practically
> re-written from the ground up.
>
> These are the seeds he defines
>
> Q = Quadrille =Square tiling
> H = Hextille = Hexagonal tiling = dΔ
> Δ = Deltille = Triangular tiling = dH
>
> Maybe what you are doing might be a step in that direction.

The constructive notation is a lower level notation that will be
used to define the Conway notation operation letters. The program
will be able to apply the notation to any set of edge-connected
polygons with up to two faces at each edge. A portion of plane tiling
will be fine, but final polygons on a boundary with "external"
vertices will, likely, be discarded.

Roger Kaufman

unread,
Jan 23, 2017, 5:52:35 PM1/23/17
to anti...@googlegroups.com
Hi Adrian,

On 1/23/2017 2:40 PM, Adrian Rossiter wrote:
> depending on whether they are assigned to the triangle face or the
> quadrilateral face. It is possible to choose an assignment rule, but I am
> not sure there is any obvious expectation of how the boundary tiles
> should
> be constructed, and therefore what the final model should be.

Of note. I thought the conway program could exit, do other things, then
continue if need be. So it could take external input. The conway program
seemed to work on any input, not just the seeds, so I allowed it to take
input. I know geodesic operates on any input, not just triangles
(T,O,I), so this shouldn't be a problem.

On 1/23/2017 4:00 PM, Adrian Rossiter wrote:
> The constructive notation is a lower level notation that will be
> used to define the Conway notation operation letters. The program
> will be able to apply the notation to any set of edge-connected
> polygons with up to two faces at each edge. A portion of plane tiling
> will be fine, but final polygons on a boundary with "external"
> vertices will, likely, be discarded.

Will this be something that can be used in the conway program? Or is it
specifically for poly_weave?

You just reminded me that I had a side project once that would take a
tiling and make a sphere, or vice versa. I didn't have this in my list
so I have added it. The idea was that tilings could be operated on by
conway notation as spheres, then the final product unwraped. Ultimately
any polyhedron could be made into a tiling which might be interesting.

A tiling -> scaled into standard rectangle -> mapped to sphere
Sphere->mapped to standard rectangle -> (optionally) re-scaled back to
original tiling dimensions

Lastly, while we are on John Conway, he apparently only suggested
notation for polyhedra vocally or textually to a few. What he turned his
attention to was Knot Theory and operators for that.

https://en.wikipedia.org/wiki/Conway_notation_(knot_theory)

Roger

Adrian Rossiter

unread,
Jan 24, 2017, 5:55:14 AM1/24/17
to Antiprism List
Hi Roger

On Mon, 23 Jan 2017, Roger Kaufman wrote:
> On 1/23/2017 2:40 PM, Adrian Rossiter wrote:
>> depending on whether they are assigned to the triangle face or the
>> quadrilateral face. It is possible to choose an assignment rule, but I am
>> not sure there is any obvious expectation of how the boundary tiles should
>> be constructed, and therefore what the final model should be.
>
> Of note. I thought the conway program could exit, do other things, then
> continue if need be. So it could take external input. The conway program
> seemed to work on any input, not just the seeds, so I allowed it to take
> input. I know geodesic operates on any input, not just triangles (T,O,I), so
> this shouldn't be a problem.

The geodesic subdivision does only work on triangles (and quadrilaterals,
if the quadrilateral version is used), so there needs to be an extra step
to triangulate the polygons first for general use of geodesic subdivision
in Conway notation.

In the geodesic program the triangulation step is not consistent with a
Conway notation approach. The edges are joined to the face centres, but
only if the face is not already a triangle. If this was used for Conway
notation there would be no simple formula for the numbers of elements in
the final model.


> On 1/23/2017 4:00 PM, Adrian Rossiter wrote:
>> The constructive notation is a lower level notation that will be
>> used to define the Conway notation operation letters. The program
>> will be able to apply the notation to any set of edge-connected
>> polygons with up to two faces at each edge. A portion of plane tiling
>> will be fine, but final polygons on a boundary with "external"
>> vertices will, likely, be discarded.
>
> Will this be something that can be used in the conway program? Or is it
> specifically for poly_weave?

It should be possible to generate all the current Conway notation models,
which removes the need to write code to generate each individual pattern.

poly_weave already does the core of what is needed. Here is an example of
using poly_weave to apply the "expand" operator, expressed using the
constructive notation operations. (I gave the operations for "expand"
incorrectly yesterday, as the chains for the expand edge quadrilaterals
have length 2.)

"expand" has three chains
P0,V
P0,V + P0,F
P0,F
with P0 = (1,0,1) [poly_weave normalises this to (1/2, 0, 1/2)]

Apply to a triangle tiled torus, as an example base model

unitile2d -s t 2 -l 24 -w 6 | antiview

Each chain is a poly_weave pattern, so apply all three to the base model,
and colour the result by polygon type [image attached]

unitile2d -s t 2 -l 24 -w 6 | poly_weave -p 1,0,1V -p 1,0,1V1,0,1F -p 1,0,1F | off_color -f N | antiview

Same poly_weave command applied to a cube

off_util cube | poly_weave -p 1,0,1V -p 1,0,1F1,0,1V -p 1,0,1F | off_color -f N | antiview


Some other examples (but note that some patterns are introducing extra
coincident closing edges to their polygons, which is likely a bug in
poly_weave)

"join": 0,0,1V + 1,0,0F

unitile2d -s t 2 -l 24 -w 6 | poly_weave -p 0,0,1V1,0,0F | antiview

"ambo": 0,1,0V | 0,1,0F

unitile2d -s t 2 -l 24 -w 6 | poly_weave -p 0,1,0V -p 0,1,0F | antiview

"truncate": 2,1,0V | 02,1,0v + 02,1,0e (small truncation)

unitile2d -s t 2 -l 24 -w 6 | poly_weave -p 2,1,0V -p 02,1,0v02,1,0e | antiview

"kis": 1,0,0v + 1,0,0v + 0,0,1 (poly_weave needs e.g. vv to stay on the
same face as the default step is VFE)

unitile2d -s t 2 -l 24 -w 6 | poly_weave -p 1,0,0v1,0,0v0,0,1vv | antiview

"meta": 1,0,0 + 0,1,0 + 0,0,1 (poly_weave "tb" applies this to both
triangle types)

unitile2d -s t 2 -l 24 -w 6 | poly_weave -p 1,0,0vv0,1,0vv0,0,1vvtb | antiview


For an example non-Conway notation operation, the following double
wraps the faces and fills the holes at the base vertices with vertex
figures: 1,0,0FF | 1,0,0FFV

off_util geo_2_d | poly_weave -p 1,0,0FF -p 1,0,0FFV| antiview
poly_weave_expand.png

Adrian Rossiter

unread,
Jan 24, 2017, 6:02:03 AM1/24/17
to Antiprism List
On Tue, 24 Jan 2017, Adrian Rossiter wrote:
> "truncate": 2,1,0V | 02,1,0v + 02,1,0e (small truncation)
>
> unitile2d -s t 2 -l 24 -w 6 | poly_weave -p 2,1,0V -p 02,1,0v02,1,0e |
> antiview

02 is just 2!

Roger Kaufman

unread,
Jan 24, 2017, 8:04:33 AM1/24/17
to anti...@googlegroups.com
Hi Adrian,

On 1/24/2017 5:55 AM, Adrian Rossiter wrote:
> In the geodesic program the triangulation step is not consistent with a
> Conway notation approach. The edges are joined to the face centres, but
> only if the face is not already a triangle. If this was used for Conway
> notation there would be no simple formula for the numbers of elements in
> the final model.

Perhaps its better then to have a Goldberg operator. geodesic creates
them albeit the index are reversed. Then there is a one-to-one
correlation to the result. I was trying to create what Tom had for 'u'
with geodesic and I don't think it is the same.

As for the conway program, it will be a while till I get to it so it can
wait. Its possible then later it could be re-written simply by replacing
the code in the functions with these. That is, the conway operators just
become wrappers to Antiprism code, which is the course that it has been
taking for a while now.

> off_util geo_2_d | poly_weave -p 1,0,0FF -p 1,0,0FFV| antiview

I think we might have our first bug in the new build. I am keeping 24.1
in Cygwin so the command works there. But in the new build, which I am
doing in Ubuntu, this happens.

off_util geo_2_d | antiview
antiview: error: reading 'stdin': line 23: face size: '0', must be 1 or more

This is because the first face has 0 sides. But it can be see that all
the faces are in error, a completely different outcome than in 24.1. I
attached it in case it isn't happening for you, I can try to find what
is happening. (I'm suspecting maybe not since you gave it as an example!)

Roger




geo_2_d.zip

Adrian Rossiter

unread,
Jan 24, 2017, 8:37:14 AM1/24/17
to Antiprism List
Hi Roger

On Tue, 24 Jan 2017, Roger Kaufman wrote:
>> off_util geo_2_d | poly_weave -p 1,0,0FF -p 1,0,0FFV| antiview
>
> I think we might have our first bug in the new build. I am keeping 24.1 in
> Cygwin so the command works there. But in the new build, which I am doing in
> Ubuntu, this happens.
>
> off_util geo_2_d | antiview
> antiview: error: reading 'stdin': line 23: face size: '0', must be 1 or more
...
> it in case it isn't happening for you, I can try to find what is happening.
> (I'm suspecting maybe not since you gave it as an example!)

There was some debugging code in geodesic.cc that meant only half the
faces were generated. I pushed a fix for it yesterday, but forgot
to mention it when I was posting that example.

Roger Kaufman

unread,
Jan 24, 2017, 11:04:02 AM1/24/17
to anti...@googlegroups.com
Hi Adrian,

On 1/24/2017 8:37 AM, Adrian Rossiter wrote:
> There was some debugging code in geodesic.cc that meant only half the
> faces were generated. I pushed a fix for it yesterday, but for

That was it.

I also pushed the changes to johnson.cc

Roger

Reply all
Reply to author
Forward
0 new messages