I’ve been trying to run a Grasshopper definition with rhino.compute which involves several 3rd-party Grasshopper plugins. The definition works fine when I open it in the Rhino GUI, but when I try to run it through the rhino.compute Grasshopper endpoint or Hops I get no results. In the output from rhino.compute I get several “GH – Missing Definition Objects” messages followed by a large number of “Parameter failed to collect data” messages:
CG [06:25:21 DBG] Received a HTTP POST request to the /grasshopper endpoint
CG [06:25:21 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:21 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:21 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:22 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:22 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:22 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:22 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:22 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:22 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:22 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:22 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:22 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:22 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
CG [06:25:22 ERR] An exception occurred while processing request
System.Exception: GH - Missing Definition Objects
Loading CSharp 9 (50)
CG [06:25:22 DBG] Setting input values
CG [06:25:22 DBG] Solving definition...
CG [05:57:59 WRN] Parameter failed to collect data: component "Access JSON Property" (a6f30214-c137-403c-9cba-ec0a268fca91)
...
After debugging with Context Bake components in various parts of the definition, I can see that the “failed to collect data” messages start downstream from a Parse JSON component from the Shapediver plugin, which is definitely receiving a JSON string as input but is producing no output.
I think this is because the Shapediver plugin (and quite a few other plugins the definition depends on) are failing to load in Grasshopper. When I first run the rhino.compute server I see that these plugins are being loaded:
* Loading BitmapComponent assembly...
* Loading ClipperComponents assembly...
* Loading CurveComponents assembly...
* Loading FieldComponents assembly...
* Loading GalapagosComponents assembly...
* Loading GhPython assembly...
* Loading GrasshopperHyperGooComponents assembly...
* Loading IOComponents assembly...
* Loading Kangaroo2Component assembly...
* Loading Heteroptera assembly...
* Loading Hops assembly...
* Loading Human assembly...
* Loading LunchBox assembly...
* Loading LunchBoxML assembly...
* Loading MathComponents assembly...
* Loading Meshedit2000 assembly...
* Loading metahopper_0 assembly...
* Loading Pufferfish3-0 assembly...
* Loading RhinoCodePluginGH assembly...
* Loading ScriptComponents assembly...
* Loading SdGhClient assembly...
* Loading SdGhPdfComponents assembly...
* Loading ShapeDiverForGrasshopper assembly...
* Loading ShapeDiverSquid assembly...
* Loading SurfaceComponents assembly...
* Loading Swiftlet assembly...
* Loading TriangulationComponents assembly...
* Loading VectorComponents assembly...
* Loading WombatGH assembly...
* Loading XformComponents assembly...
But when I visit the /plugins/gh/installed endpoint I get this JSON:
{
"BitmapComponent": "1.27.0",
"ClipperComponents": "0.3.3.0",
"GrasshopperHyperGooComponents": "1.27.0",
"Heteroptera": "8.0.4",
"Hops": "0.16.26",
"Human": "1.3.1",
"LunchBox": "2025.5.5.0",
"LunchBoxML": "2024.2.11.0",
"MeshEdit Components": "2.0.0.0",
"MetaHopper": "1.2.4",
"Pufferfish": "3.0.0.0",
"SdGhPdfComponents": "1.27.0",
"Squid (ShapeDiver Edition)": "1.27.0",
"Swiftlet": "0.1.9.0",
"Wombat": "1.1.0.0"
}
So the list of plugins that are returned from the endpoint is much smaller than the list of plugins that rhino.compute is trying to load on server initialization, and crucially it is missing the ShapeDiverForGrasshopper plugin that contains the Parse JSON component that I need.
Notes:
- I’m debugging rhino.compute on my Mac in a Windows VM
- these are all 3rd-party plugins so I don’t have access to their source code
- I’ve tried calling the definition with Hops, which results in a red error bubble with the “GH – Missing definition objects” message
- I’ve tried changing the Rhino .NET runtime to NETFramework which resulted in no changes
I’d appreciate any advice on how to debug further, as it doesn’t look like there’s a way for me to dig into the actual Grasshopper code that is loading these plugins.