Clusters - They Need Visual Identification and Key Descriptors

This post is mostly a suggestion as I use grasshopper to create extensive files and could use some help to organize the content in future versions of the program.

Presently I find grouping in grasshopper to be more helpful than clusters as the content / subject matter does not disappear behind identical looking nodes. When using clusters it is difficult to track nested information without using sticky notes and custom text fields as a reminder next to them. However this leaves a pretty unorganized map of content that is tedious to update.

For example here is one of the grasshopper files we made without using clusters. I actually have all the wires hidden but have selected them here for file clarity. About a third of the content in the image is just there to help track what is happening for coordination purposes.

On the other hand I feel some visual cues that could be custom controlled by the user would make the files substantially more manageable. Each node in the following image could be interpreted as a cluster with a basic set of identifiable content (number / letter / graphic) to imply the content within. For example, the number above could refer to the number of nodes within the cluster, the graphic coloured circles could infer key input / output nodes relative to intermediate steps, and the letter(s) below could be identification markers to reference a text document elsewhere.

It is important that the user can override the visual elements to suit the particular use. For example, vectors, planes, math, and surface nodes may be clustered together but the user generally interprets the objective of the cluster as a surface set.

I hope this reaches those who read this in good health! Thanks,

1 Like

Unrelated to OP’s visual idea, but I’d say, clusters are mainly for re-use, rather than grouping.

Some years ago I worked dev. this, but I aspire to too much and it become incomplete. I comment to try to take some steps forward.

This capture shows a vertical group, which you can only drag horizontally, a riched group where you can write name and description (and put an icon) via double click, and an on-canvas cluster, where you can also define the parameters and the main idea was to be able to reuse them as snippets, and loading easly other implementations that match its parameter setting.

I also did and UI option to show the object roles, but this doesn’t work perfectly well because is very hard to deduce automatically this without user defined labels like global and local input/output, or global and local source/target. I already suggest to do support for this metadata which will allow new features above of the definition recognition, but I don’t think they seriously considered it.

I also tried to do a metagraph like that in several ways, I spend some time obsessed with this idea. However, it seems simpler than it is, it really is a lot of work.

I hadn’t thought of including the number of components, I opted for changing the size of the nodes instead, which turned out to be very complicated to place them correctly, so good idea. Although aesthetically, I don’t like to see the numbers there, some visual solution might be better. I also fail trying to this when you zoom out to some amount, because all that view is very It’s pretty wasted, but it didn’t work out. In the end I chose to make a map in a corner, but I wanted it to be zoomable so I could go through 3 metagraphs, a top one with groups of maximum level of abstraction, an intermediate one to define the intermediate steps and another detail view to define the implementation. I was totally overwhelmed by such an ambitious idea. I finally opted to keep it simple, but my energies had already been spent. However, this poses several problems. One that I remember now is that, as a user, you have two options, either to make lots of groups, more than you would normally do, or to settle for having many groups with a single node, which does not reduce much visually the content. It’s not a problem to avoid doing this, but to not expect wonders.

I didn’t throw this project away. This was all in a project to make GH easier to use and learn. The main use of these groups was to do tutorial steps on the canvas, to minimize the author’s effort, and automatically, as with an assistant, to be able to guide the student to learn the definition/tutorial. Another important intention of the cluster in the canvas was to create definition templates, where the student faces the problem of creating something but with parameter restrictions, which models the way to face the problem and he only has to think how to transform the data. It is also very useful for standard product construction topologies, where the only thing that changes from one design to another is the implementation of detail, for example, if you want to texture a surface by moving a grid of points in its normal direction, it is a position dependent function that returns an amplitude of motion, one part of this definition is always the same (like a template, the part of extracting the points, moving them and creating another surface with them) while another part changes for each implementation (using the distance of the points to attractive geometry or something like that). Thinking about it now I think this is a bit off topic, sorry.

I’ll come back to this but it’s not a priority for me right now. But it should be native, that the next version should enrich the groups and have a map like you propose, because really from inside they can facilitate this a lot.