NGON plug-in not working with Rhino 8 Grasshopper on MacBook Pro M1 Max

I’m using an M1 Max MB Pro with the latest version of Rhino 8

I opened package manager and install the NGON plugin (latest version) and restarted Rhino / GH

I am not seeing the NGON plugin available. Everything still works as usual over on R7 on the same machine. Any ideas?

thank you

Best to ask @Petras_Vestartas, the author of the ngon plug-in

I think it is just not packaged for rhino8. If you would just copy paste the rh7 contents to rh8 it would work.

Does the plug-in have C/C++ code in it?

Hi,

Thank you for the quick reply

I just tried followed your suggestion (I made a copy [not alias] of NGON 3.1.0 and put it in the ‘components’ folder in ‘special folders’ menu. It has not resolved the issue after restarting.

I also ran packageManager from rhino 8 and looked at the ‘installed’ tab and NGON 3.1.0 is listed as an installed plugin.

It is not showing up on the grasshopper tabs, and when I type an ngon specific command in grasshopper it can’t find the command.

I’m still on OS 12.6 Monterey, but my Rhino 8 and GH are running the most recent versions.

I might try the latest Mac OS next because I’m overdue for that update anyways.

__

Here are screenshots for reference:


with my other GH plugins)

No just RhinoCommon 99%.

I will try on my old Mac Book pro and let you know.

Thank you

I updated to Sonoma 14.5 but (as I suspected) that didn’t correct the issue.

Also I tried dropping the NgonGH.gha Grasshopper Assembly directly into the [special folders] libraries folder and restarted rhino, but that didn’t fix the issue so I put it back in the 3.1.0 folder where it was installed by default.

On my PC at work running Rhino 8 the NGON plugin [v243] is running just fine (and is installed in the same folder)

I could try installing one of the earlier version releases on the Mac if you think that might work.

An error occured during GHA assembly loading:
  Path: /Users/jesterking/Library/Application Support/McNeel/Rhinoceros/packages/8.0/NGon/3.2.0/NGonGh.gha
  Exception System.IO.FileLoadException: 
  Message: Could not load file or assembly 'NGonGh, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

This error is what I see on my M2 Max.

Checking the .gha file:

╭─jesterking ∞ at jesterM2 in ~/Library/Application Support/McNeel/Rhinoceros/packages/8.0/NGon/3.2.0 24-05-28 - 6:08:52
╰─○ file NGonGh.gha 
NGonGh.gha: PE32+ executable (DLL) (console) x86-64 Mono/.Net assembly, for MS Windows

This will not load, since it is built for x86-64, and Rhino 8 is built for arm64. Rhino 7 runs through the Rosetta translation layer, which makes it so that NGonGH.gha can load on Apple silicon.

It needs to be built for AnyCPU.

The problem doesn’t stop there though. There are unmanaged DLLs part of the plug-in, at least libgmp and libmpfr. These are built for x86-64 as PE32 executables. Those won’t load on Mac because 1) they are built for Windows and won’t load on Apple silicon in an arm64 binary specifically because 2) they are built for x86-64

╭─jesterking [100%] at jesterM2 in ~/Library/Application Support/McNeel/Rhinoceros/packages/8.0/NGon/3.2.0 24-05-28 - 6:13:13
╰─○ file libgmp-10.dll 
libgmp-10.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows
╭─jesterking [100%] at jesterM2 in ~/Library/Application Support/McNeel/Rhinoceros/packages/8.0/NGon/3.2.0 24-05-28 - 6:13:20
╰─○ file libmpfr-4.dll 
libmpfr-4.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows

An unmanaged DLL needs to be built for x86-64 and arm64, Mach-O 64-bit linked. For example the Cycles integration library (unmanaged) used in Rhino for Raytraced and Rhino Render:

╭─jesterking [100%] at jesterM2 in ~/dev/lbp/rhino8/big_libs/RhinoCycles/ccycles/osx/release on rhino-8.x✔ 24-05-28 - 6:16:42
╰─⠠⠵ file libccycles.dylib                                                                                                                                           on rhino-8.x|✔
libccycles.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64]
libccycles.dylib (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
libccycles.dylib (for architecture arm64):	Mach-O 64-bit dynamically linked shared library arm64
2 Likes

Thank you for an update. Then I need to rebuilt. I will also remove c++ part, it was only a few components and never really use for mac…

1 Like

May there be a similar situation with OpenNest? When loading it on my M1 it gives the following error message:

An error occured during GHA assembly loading:
  Path: /Users/rudolfneumerkel/Library/Application Support/McNeel/Rhinoceros/8.0/Plug-ins/Grasshopper (b45a29b1-4343-4035-989e-044e8580d9cf)/Libraries/opennest13/OpenNest.gha
  Exception System.IO.FileLoadException: 
  Message: Could not load file or assembly 'OpenNest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

Thanks a lot!

Yes it is.

That’s great, do you think it can be fixed alongside NGon?

I will try to do this weekend.

1 Like

I updated OpenNest to work with rhino8 NET core 7 on arm64 and windows 11.

Interface changed of OpenNest, because I optimised a few features. Now you need two additional components for sheets and geometry. This is to simplify sheet making process as well as nesting polygons with attributes. Example files are in the Food4Rhino repository. You would need Rhino 8.7 at least.

4 Likes

Amazing sir, thank you!

1 Like

@Petras_Vestartas were you able to update NGon yet? Currently it does not work natively on my AppleSilicon

Cheers and thank you!

Not yet, finishing first OpenNest :slight_smile:

1 Like

Alright thanks a lot, all the best! Please update us here then

1 Like

Hello,

this is my first post here - but I seem to have run into similar issues after upgrading to Rhino 8.
My scripts using NGon components are pretty messed up right now and I spent already days on trying to fix them. Is there any update yet if you´re able to update NGon at some time?
Or does somebody have a good idea how to replicate the function of a CurveShatter component? I have a hard time structuring my data in a way that the normal Shatter component can do the job.

Best regards :slight_smile:

1 Like