Fullerenes the sequel

9 views
Skip to first unread message

Roger Kaufman

unread,
Oct 19, 2023, 8:03:42 PM10/19/23
to anti...@googlegroups.com
Hi Adrian and All,

Back in 2017 I first tried making fullerenes with fullgen, got a bit
carried away and made them all the way up to 140 vertices. I remember it
took weeks.

Subsequently we worked on canonical and other features. Getting the
material back together, I rebuilt them.

The motive for doing it was that I tested the old models and most of
them didn't pass being canonical even at 1e-11. I wondered how the new
algorithm would work and it turns out it works very nicely.

I canonicalized them at  -l 17 using a limit of -n 5000. An exact n is
arbitrary  because at -l 17 the model will jitter and never come to an
actual completion so n stops it. Much of the time it would do a whole
set of vertices passing at -l 17, and if not, a dozen or two could be
finished at -n 10000. Running these loops took very little time.

This is impressive (we are talking 425,376 models here!) and some of
them are tubular but it did them anyway at -n 5000. All of them, if
trying to rerun straight canonical (-l 12) on them, will find them
already canonicalized.

Working at such a fine limit I expect some problems and there were. All
of these find a symmetry of C2. I wasn't going to mention it because
they all have long and also very short edges, however I noticed all them
had to do with D symmetry. Perhaps if you wanted to look into it
sometime it might narrow it down.

fg120/D5v/fg120_00000001.off
fg132/D2/fg132_00014115.off
fg134/D3h/fg134_00008879.off
fg136/D2/fg136_00017241.off
fg140/D5v/fg140_00000001.off
fg140/D3v/fg140_00018411.off
fg140/D2/fg140_00018850.off

fg138/C2/fg138_00010566.off stubbornly would not pass at -l 17, even up
to -n 50000 and at least 1 edge pair wouldn't cross withing precision. I
ran -n 5000 to 50000 over night to see if I could hit a number where it
would work but it never passed (it does at -l 16). That model is
interesting because it is a spiral end to end.

It is also where I found that if it is rotated an arbitrary way, convex
hull can break a face or two. (I attached the models being mentioned)

off_util fg138_00010566.off | conv_hull | off_report
off_util fg138_00010566.off | off_trans -R 10,20,30 | conv_hull | off_report

I generated the model(s), zeroing out the vertices with -S 0 first for
consistency.

off_trans -S 0 fg138_00010566.off | poly_form -a u -l 0 -n 100000 -s 10
-z -1 | canonical -l 17 -n 5000 -z -1 -Y > tmp.off

The full sets are are here on my polyhedra dedicated google drive.

fullerenes_c20_c80.7z
https://drive.google.com/file/d/11u8nMoBSjEGKKnCgCNo547USQyBVsmkx/view?usp=share_link

fullerenes_c82_c140.7z
https://drive.google.com/file/d/1guEa0SPEDWDZuUWGIiGewCTIKwc2QoaG/view?usp=share_link

Roger

output.zip

Adrian Rossiter

unread,
Oct 20, 2023, 3:42:02 AM10/20/23
to Antiprism List
Hi Roger

On Thu, 19 Oct 2023, Roger Kaufman wrote:
> Working at such a fine limit I expect some problems and there were. All of
> these find a symmetry of C2. I wasn't going to mention it because they all
> have long and also very short edges, however I noticed all them had to do
> with D symmetry. Perhaps if you wanted to look into it sometime it might
> narrow it down.
>
> fg120/D5v/fg120_00000001.off

I looked at this one, and the problem is that the small adjacent faces
are close to co-planar. The symmetry detection first calculates a convex
hull, and finds the symmetry of that. In order to detect the symmetry
of lower precision models, it calculates a lower precision convex hull,
which is more likely to merge near-coplanar faces, and this is the case
here

canonical -l 17 -n 100000 fg120_00000001.off > t.off

off_report t.off
num_verts = 120
num_faces = 62

off_util t.off | conv_hull | off_report
num_verts = 120
num_faces = 63

off_util t.off | conv_hull -Q A0.99999 | off_report
num_verts = 116
num_faces = 60

This last one is the symmetry detection convex hull, and I have attached
an image of one of the caps, showing how two faces have merged and two
vertices have been lost.

Adrian.
--
Adrian Rossiter
adr...@antiprism.com
http://antiprism.com/adrian
Screenshot from 2023-10-20 09-27-36.png

Roger Kaufman

unread,
Oct 20, 2023, 9:01:59 AM10/20/23
to anti...@googlegroups.com
Hi Adrian,

On 10/20/2023 3:41 AM, Adrian Rossiter wrote:
> I looked at this one, and the problem is that the small adjacent faces
> are close to co-planar. The symmetry detection first calculates a convex
> hull, and finds the symmetry of that. In order to detect the symmetry
> of lower precision models, it calculates a lower precision convex hull,
> which is more likely to merge near-coplanar faces, and this is the case
> here

Just as a repair, I re-attached the output.zip with the completed files
as they are in the larger zips, which is the way I meant to have it the
first time.

If I run these two command on WSL they give equal faces, but on native
Ubuntu the convex hull adds a face. This shows how close it is to a
tipping point due to computational error.

off_util fg120_00000001.off | off_report
off_util fg120_00000001.off | conv_hull | off_report

This happens internally to canonical.cc as well and so on native Ubuntu
(at default of -l 12) the initial test will fail and so it will re-run
the loop.

There is no need to pursue this further.

I think if I were to redo the project (I'm not!), the first thing I
would do is sort the input models on symmetry with fullgen's options
(but it would change the numbering). I'm wondering how they determine
symmetry with deflated models but they do.

The second thing would be canonicalize at -l 16 instead, but the success
rate at -l 17 was extremely high. The only thing that might still have
been at issue is the alignment on these few out of nearly half a million
models.

It shows canonical is working under some very extreme conditions. Very good!

Roger

output.zip

David Beard

unread,
Jun 5, 2024, 5:02:04 AM (12 days ago) Jun 5
to anti...@googlegroups.com
Hi Roger,

Some considerable time ago you made the interesting post below. I also use Fullgen, and I am impressed that you persevered in working through that number of fullerenes! For my use case (modelling polyhedra in snapology) the canonical versions are potentially useful, but require a lot of work, the original versions from Fullgen which often I force into being regular and planar are much more useful. My models are very crude representations only of course but I enjoy building them. I’ve generated a modest number over the years, but it occurred to me that you still may have the original data prior to your canonicalisation process? If you do would it be possible to access it? It would save me a lot of time and if they were sorted by symmetry type as you have done with the canonicalised versions that would even be more useful

Cheers
David
Sent from my iPad

> On 20 Oct 2023, at 8:03 AM, Roger Kaufman <vortexs...@interocitors.com> wrote:
>
> Hi Adrian and All,
> --
> Antiprism Site: http://www.antiprism.com
> --- You received this message because you are subscribed to the Google Groups "antiprism" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to antiprism+...@googlegroups.com.
> To view this discussion on the web, visit https://groups.google.com/d/msgid/antiprism/4cd6fb67-e5c7-3c5e-9862-ccaaff1a8dc8%40interocitors.com.
output.zip

Roger Kaufman

unread,
Jun 5, 2024, 11:44:02 AM (11 days ago) Jun 5
to anti...@googlegroups.com
Hi David,


On 6/5/2024 5:01 AM, David Beard wrote:
Some considerable time ago you made the interesting post below. I also 
use Fullgen,  and I am impressed that you persevered in working through 
that number of fullerenes! For my use case (modelling polyhedra in 

Actually this whole project was to test Adrian's new canonical algorthm. Fullerenes often come in weird shapes and tubes but the algorithm worked amazingly well with little tweaking for special cases.


snapology) the canonical versions are potentially useful, but require a 
lot of work, the original versions from Fullgen which often I force into
 being regular and planar are much more useful. My models are very crude
 representations only of course but I enjoy building them. I’ve 

The problem I see here that having both regular and planar is usually not possible. Canonicalized models have the side effect of being planar but the edges won't be unit. Unit edged models is an option but the faces won't be planar. When I tried planarize only the models all came out with symmetry C1 so this wasn't much help.


generated a modest number over the years, but it occurred to me that you
 still may have the original data prior to your canonicalisation 
process? If you do would it be possible to access it? It would save me a
 lot of time and if they were sorted by symmetry type as you have done 
with the canonicalised versions that would even be more useful

The model that comes out of fullgen is just the network of connections and has no volume. It needs to be inflated and I call this the 'raw' form. In raw form, edges and faces of the model are not standardized in any way and it also has a symmetry of C1.

One question first, can you do work in a linux environment? If so I can send the script I generated and sorted them with. If you work in Windows there are other things could be done.

Roger

David Beard

unread,
Jun 8, 2024, 10:44:34 PM (8 days ago) Jun 8
to anti...@googlegroups.com
Hi Roger,

> On 5 Jun 2024, at 11:44 PM, Roger Kaufman wrote:
> The model that comes out of fullgen is just the network of connections and has no volume. It needs to be inflated and I call this the 'raw' form. In raw form, edges and faces of the model are not standardized in any way and it also has a symmetry of C1.
>
> One question first, can you do work in a linux environment? If so I can send the script I generated and sorted them with. If you work in Windows there are other things could be done.
Thanks for the suggestion, but the short answer is that I don’t work in Linux currently. I could convert an old Mac but suspect that would become a significant project in its own right and I have no familiarity with Linux anyway. I do work with Windows but my main platform is MacOS.

But your endeavours have given me an idea - the possibility of generating my own script on Mac using CaGe as the fullerene generator. The latter has a number of very useful output options as you are probably aware which includes the .off format. A database of fullerene .off files sorted by symmetry type would be a useful resource from my viewpoint.

Your kind offer of your Linux script might be a useful starting point for me to develop my Mac script.

Thanks again

David

Roger Kaufman

unread,
Jun 9, 2024, 11:27:24 AM (7 days ago) Jun 9
to anti...@googlegroups.com
Hi David,


On 6/8/2024 10:44 PM, David Beard wrote:
Your kind offer of your Linux script might be a useful starting point for me to develop my Mac script.

Here is something to look at. There is full_proc.py which if you have python can be run as full_proc.py -h for the help. To run it to completion one might try full_proc.py -i -o 20, which would produce input models in a new folder "input", and output in a new folder "output". Beware that this removes the old input and output folders so if you have any models you would want in output, you should save them.

If in windows, it requires you have a working fullgen.exe. The file planar2off.py is needed to inflate the models. For some reason it doesn't work for any vertex count greater than 58. It may be a memory limitation. And of course it needs access to antiprism commands.

Another way to approach is to take the canonicalized models as your starting place. There is nothing preventing using these as input models to some other command you want. Then the models are already in their respective symmetry groups.

Roger
fullgen_stuff.zip

David Beard

unread,
Jun 11, 2024, 12:11:52 AM (6 days ago) Jun 11
to anti...@googlegroups.com
Hi Roger

> On 9 Jun 2024, at 11:27 PM, Roger Kaufman <vortexs...@interocitors.com> wrote:
>
>
> Here is something to look at. There is full_proc.py which if you have python can be run as full_proc.py -h for the help. To run it to completion one might try full_proc.py -i -o 20, which would produce input models in a new folder "input", and output in a new folder "output". Beware that this removes the old input and output folders so if you have any models you would want in output, you should save them.
>
> If in windows, it requires you have a working fullgen.exe. The file planar2off.py is needed to inflate the models. For some reason it doesn't work for any vertex count greater than 58. It may be a memory limitation. And of course it needs access to antiprism commands.
>
> Another way to approach is to take the canonicalized models as your starting place. There is nothing preventing using these as input models to some other command you want. Then the models are already in their respective symmetry groups.
>
>
Thanks for all of this. Lots to consider in what you have suggested. Much appreciated.

Cheers

David

Reply all
Reply to author
Forward
0 new messages