Plankton install issues

Hi all,

I’m having trouble getting this installed/functioning. I am running Rhino V6 and Kangaroo2. I’ve downloaded plankton.dll, plankton.gha, and MeshMachine.gha. I moved them all to Program Files/Rhino 6/Plugin-ins/Grasshopper/Components. I’ve also copied them to the AppData/Roaming/Grasshopper/Libraries folder to see if that helped. They are all unblocked.

When I open Grasshopper I can place Plankton components on the canvas, but when I open Daniel’s, I am presented with a series of popups to resolve assembly references:

  • When it asks for a “New” KangarooLib.dll do I choose KangarooSolver.dll?

  • When it asks for a “New” PlanktonGH.dll do I choose Plankton.dll?

  • When it asks for a “New” GH_Kangaroo.dll do I choose Kangaroo2Component.gha?

If I do specify files as described above, I still get errors:

VertexNeighbours, NakedVertices, Combine & Clean (all Kangaroo functions) are not installed

I know there has been a lot of discussion on this, but for some reason I can’t get this thing working. It looks absolutely fantastic (and potentially a silver bullet for me) so I’m eager to get it going. Any help would be greatly appreciated.



Hi Declan,

This script has been long overdue an update.
I’ll include a proper compiled component for this with the next release,
but in the meantime, here’s a version which just fixes some of the references and old components.

The only libraries this now needs to reference are KangarooSolver.dll and Kangaroo2Component.gha
(These should be found in C:\Program Files\Rhino 6\Plug-ins\Grasshopper\Components) (19.4 KB)

1 Like

Hi Daniel - thank you so much for your prompt response! I am working on my home machine to get this ready for monday, but I’m still having trouble. Do I still need to add meshmachine.gha to the C# assemblies? Below is there error message I get after pointing to the dll’s/gha’s in the Components folder.

Any idea what’s got it hung up?

**edit - I noticed i have Kangaroo and Kangaroo2 in my ribbon, but the only thing in the Kangaroo tab is MeshMachine.

Ah sorry, I should have specified - this will need you to be running the very latest R6 service release candidate.
Then the only referenced assemblies you should set for the script are KangarooSolver.dll and Kangaroo2Component.gha

No MeshMachine, no Plankton, and no Galapagos

Hi Daniel,

I’m running V6 SR15, which seems to be the latest. I’ve downloaded the Kangaroo dll & gha again just to be sure they’re not old, but I’m still getting the errors. I’m wondering if I’m doing something obvious (I’m not all that great with Kangaroo…). I toggle the reset boolean a few time, I’ve unblocked the timer in the Windows tray.

I really appreciate your help. I think this could be a hugely powerful tool for me once I get it fired up.
Below is the current state of affairs:


It’s not in SR15, but in the SR16 Release Candidate

This also includes Kangaroo, so no need to download anything else separately.

NOW we’re up & running - thank you!!!

Is there any way to contain the outermost circles within the boundary curve?

I’m actually planning to replicate the gemstone/prong placement function as shown at 1:00 in your video here. If that is an available .gh I would be infinitely grateful.

Thanks for all your hard work!


I’ll fix the remeshing script to include the boundary tangency at some point, but here’s another way of doing it with already inbuilt Kangaroo components (which do now include something for circle packing meshes tangent to a boundary curve). This separates the remeshing from the relaxation, but that often isn’t a problem. (37.9 KB)

Wow! This is so great!! Thanks again for your time - it is greatly appreciated. Rest assured the drinks are on me if we ever bump into each other :wink:

One last question would be: Is it possible to dictate a diameter (or radius) range of the circles? Upper and lower limits would be very important for a real-world pave application.

Other than that its absolutely fantastic. I owe you one (or five)!


Hi Daniel (and anyone else reading this),

Just a quick followup to see if there’s a way to specify circle diameter range? I’ve tried a few things related to mesh edges, but I haven’t had any luck. I even ran Galapagos watching the diameters and adjusting the mesh sliders, but I think I’m over-complicating it.

Also, it seems to only work on srf’s with no sharp corners.

Thanks again,


What sort of size range are you looking for?
One thing about compact circle packings like this is that their radii are not independent - in fact once the points along the boundary are fixed, the combination of edge lengths is uniquely determined for a fixed mesh topology.
You could easily add a clampLength goal to the edges, but I suspect it won’t work well unless integrated into the remeshing step. I can have a look at adding this at some point.
There will still be a limit on how tight the ratio of smallest to largest circle can be though. I think it works out to around 3:5 because of how the remeshing works.
(talking here about compact packings - ie where all the gaps between circles are 3 sided. If you accept gaps with more sides, things are more flexible - you can even make the circles all the same size, though personally I don’t find these non compact packings as aesthetically pleasing)

As for sharp edges/corners - You can add creases to the remeshing, but what should happen to the circle packing across these creases?
If the circles just need to come tangent to the crease, it is probably easiest to just split the mesh at the creases and solve each patch independently

To illustrate - the one on the left is a true compact circle packing, and the one on the right is only a packing in the looser sense that each circle touches some of its neighbours

Thank you Daniel. I would definitely need this to be a true compact circle packing (with boundary), not just for aesthetics, but for actual manufacturing reasons.

Regarding the range, 1.0 - 3.5 would actually be perfect. I will try my hand at clampLength and see if I can get it to cooperate.

Thanks again for your continued generosity!

**Edit - I have tried to implement clampLength, but I am such a Kangaroo novice that I can’t really determine where it would have the correct effect, since the original ReMesh is what’s driving the circle diameters. Is there any way to build on the ReMesh “Length” input somehow? That seems to be the correct specification, it just doesn’t allow upper/lower callouts.

Also, please know that I’m happy to pay for this assistance, so PM me if you want to discuss!


@DanielPiker , After banging my head against this, I’m afraid I just can’t get enough control over the diameters to be able to use it in my everyday work. It is so very close to perfect, but the SimpleRemesher adds too many circles around the edge that are too small.

It is an incredibly powerful tool, and I look forward to seeing future iterations that might have slightly more control over circle diameter and/or mesh edge length.

Thanks for all of your help up to this point - you’re a champ!