WISH : Un-cluster

I wish that it was possible to “Explode” or “Un-cluster” a cluster, restoring the components on the canvas, and keeping all the links with the rest of the definition.


Good point.

Restoring the links to the rest of the definition would be very useful.

1 Like


This eternal double facepalm!!! It makes you feel very guilty if the answer to your question turns out to be obvious
:smile: :smile: :smile:

be kind with us, the new users! we are trying our best to find our way in this wonderful platform!
:smile: :smile: :smile:

To be fair this feature was added fairly recently, and I don’t think it was loudly announced.


Hi David,

I didn’t notice since I’m still using RH5.
Yet, in my case, all the “Upstream” links were restored while the “Downstream” links are lost.
I’ll send you the definition in PM.

1 Like

btw, have you reimplemented cluster password protection?

Nope. And since it isn’t really protection in the strictest sense, it’s scheduled to be removed during the next major redesign.



Thanks a lot for implementing explode cluster. This has been preventing me from using clusters before, so much appreciated.

I’m happy about this. I’ve never understood why people like to password protect their little (free) scripts


I have removed it completely from my grasshopper derivative. Its just giving a false sense of security anyway, thats why I asked back then.

This password protection is so weak that its extremly easy to bypass this system. Sure there will never be a secure system, but I can fully understand if someone decides to share a script but doesn‘t want others to give them their code. And I bet many developers would even like to charge a bit of money, but its kind of complicated. I do understand both mentalities.

Just wanted to ask the same in the forum and never noticed that it was silently added in Grasshopper. So good!

Using that I finally figured out what the relays are actually useful for. So it goes roughly like:

  1. Cluster a big bunch of compontents. Since the input and output creation is kind of “dumb” if you have the same value going to multiple components then it creates several inputs all with the same name, even though just one would be needed. But cleaning up and building it properly is kind of a hassle before hand.

  2. In the newly created cluster its now kind of easy to see what clusters have the same name and are connected to the same thing on the outside. You remove all cluster inputs that are duplicates and connect everything to one.

  3. Now you want to rename your input, which you can’t do any longer, since its connected to multiple things so the naming of the input on the outside does not change any longer if I rename sth on the inside (took me a while to figure this out).

  4. Now I can add a relay on the inside and give it a name. The cluster input changes name inside the cluster, but is still the original one on the outside (don’t get why, more on that later)

  5. Finally I can explode the cluster. The relays stay intact. Select everything again and cluster once more. Now I have properly named inputs.

I find this much easier than doing everything before the first clustering.

What I still don’t get is why the names of the inputs outside the cluster are not corresponding to the names of the cluster inputs and outputs. They can change name, so why would I ever want them to be different? Now you can’t tell which input on the outside corresponds to which input on the inside. That’s just madness!! So then you are either left with a) setting everything up perfectly before clustering (not good), b) leaving all input and output names as they were (terrible) or c) doing that cluster, uncluster, cluster thing, which works but is not ideal.

So my 2 biggest wishes for clustering for many years now are:

  1. If you have several identical inputs it should be smart enough to just create 1 input. When exploding it could just add a relay there, so everything stays intact.

  2. Make cluster input names on the inside and outside the same. I dont see any reason why they should not be linked. Either I rename on the inside and it changes on the outside and I cant rename on the outside OR I can only rename on the outside and not on the inside. But why have both? Maybe I am missing something, but I can’t find a reason why you would want essentially the same variable to have 2 names and not know the connection.