"Live" Kangaroo solver in cluster

Hi all,

Is it possible to have a running Kangaroo2 solver inside a cluster? Everything works well inside the cluster, but from the outside it seems to stop after only performing the first iteration.

(Motivation: I have a large and complicated interactive form-finding routine involving Kangaroo, which I would like to use in several places across the canvas.)

The workaround I’m using now is attaching a Timer component which continually expires the entire cluster – but this runs much (10x) slower especially for multiple inputs, and provides no indication when the solution has converged.

Using the Zombie solver isn’t really an option as it freezes up for many minutes for complex inputs or parameters which cause the solver to diverge - losing the interactivity and insight into the relaxation process.

I’ve attached a simplified definition which simulates gravity on an input curve:

catenary_test.gh (17.6 KB)


I did a bit more experimenting on this, and it looks like all continually-expiring objects (such as timers, Kangaroo2 solvers, custom C# scripts which call ExpireSolution etc. ) don’t have any effect inside a cluster . Does anyone know if this behavior can be changed, or is it a deliberate design restriction?

Clusters always solve “all at once” - you cannot selectively expire one part of a cluster. If the Zombie solver doesn’t work for your needs I think you will need to keep the kangaroo solver outside of the cluster.

(Forgive my deleted posts… I initially responded without reading your question carefully enough :slight_smile: )

Thanks for the reply!

I had suspected that, and was perhaps hoping for a hidden attribute that could toggle this selective-expiry behaviour. After all it seems somewhat arbitrary, given my mental model of clusters as ‘collapsed’ GH definitions…

Any hope for this feature in future versions of Grasshopper ?
And are there other restrictions on cluster behaviours that one would have to look out for?


Can you help me to use a custom script inside the butterfly environment?

I have my own C# solver that I want to use for the analysis instead of the default solvers.

Is there a way to do it?

Thanks in advance