Let's talk about Grasshopper 2.0

find it,THX!

As a seasoned Grasshopper user, it’s scary how many things in terms of nomenclature have changed.

Screenshot 2022-04-02 at 14.20.58

Screenshot 2022-04-02 at 14.21.07

Screenshot 2022-04-02 at 14.20.32

If you used to like working with named components instead of icons, you’ll be disappointed that you currently can’t get rid of the icons, in favour of an abbreviated text description.
Also the names that can get displayed in bubbles above the components seem design-wise kind of half-arsed, compared to the rest, a worse version of what plug-ins like Sunglasses currently try to do.

Screenshot 2022-04-02 at 14.19.09

Most icons are nicely designed, however they are by nature simply less readable than a short text, at least for me. I wonder what all these soft pastell colours mean for people with impaired vision, colour blindness, and such.
Now that the icons scale while zooming out, big definitions will probably look like a bowl of skittles.

Honestly, I don’t about this.

The little sparkle animation when connecting to an input is cute, however it’s probably going to get old quickly.
I wonder what all the little animations and effects mean for canvas performance, something that GH1 still struggles with at least on macOS, and without all the eye candy.

Having a dedicated buttons to turn off component activity or visibility is nice, however why are they so huge?

Screenshot 2022-04-02 at 14.26.28

Why is a stylised Batman Beyond on the icon for the randomize trinket?

Screenshot 2022-04-02 at 14.27.24

Also the Vornoi component should be in every version, even an alpha.

1 Like

Mostly not implemented yet. The hard part of meta-data was making sure all data could be tagged, all the dozens of functions that will use the meta-data to do things have yet to be written. Only display and baking at the moment are sort of hooked up.

Meta-data is a collection of named values, very much like user texts in Rhino. However, Grasshopper puts stringent limitations on what type of data is stored in meta data. Only immutable data is allowed, as it is my assumption that meta data is probably shared amongst a large number of values, and if it wasn’t immutable then you could never trust the data you have now is the data you assigned a while ago.

1 Like

Can I ask you to start a new topic for this? It’s going to be hard to find specific bug reports and discussions in this post later.

1 Like

It’s not yet possible to display the user-assigned name of components. I haven’t found a solution yet to this problem I like. I want to avoid vertical text as that’s much harder to read, so the GH1 approach doesn’t work. Whether the icon automatically disappears when you assign a custom name, or whether that remains an option is yet to be seen.

So they’re easier to hit? So many UI decisions have been made in the spur of the moment and are liable to change still. Those pop-up forms were much smaller a few months ago so having huge elements on them wasn’t an issue. Those days are gone now and it’s only going to get worse, so those bug buttons will probably be shrunk sometime soon.

It’s a cat. Cat’s are exceedingly random, which is why I picked that.


I wrote an entire icon display pipeline from scratch because nothing out there did what I really needed. One of the features of this code is that it understands special colours and resolves them only at draw-time. Although you cannot do this yet, it is in principle possible to assign different colours to those special colour codes, so if you don’t like the orange or the blue, that can be changed at runtime without having to reload, let alone redesign the icons themselves.

Replacing the hard-coded colour fallbacks for the Cyan and Yellow to Grape and Lime results in this:

… or just grey:


The cat we had when I was child was very predictable, especially when treats came into play. :wink:

Epic! Love the toned down grey “theme”.

So for meta-data, name:value = key:value = immutable:mutable?
If so, then every new key created would have to be a new type?
Does that mean user-generated keys in Rhino can put used as inputs to GH2, but once inside GH2 the key itself cannot be renamed, but the values can be changed?

Slightly more general question: GH2 is written in C#, an imperative/object-oriented paradigm, but the actual GH2 (and all node-based programming?) scripts are replicating a functional paradigm, so is your approach to make the components act like pure functions as much as possible? (I’m not a programmer, so maybe I’m completely misunderstanding this.)

On macOS, there seems to be a bug, where sporadically the components from the Vector, Curve, and Surface tabs/categories don’t all load.

Hi do you know where does custom preview component in grasshopper2?and how does we displaying render brep mesh curve,… by material and color?

Yes, in the Data tab/category under Meta look for the Assign Display Color component. I don’t know if assigning a material is possible yet, but there’s also a Assign Display Diffuse component, which lets you set the diffuse material colour.


Hi David & team, Congrats on this awesome milestone and thanks for your clarity on communications and expectations for all of us.

I’ll start playing with this soon, one thing I was hoping for and I’d like to know: how much is part of your GH2 architecture, is a fluid segmentation/separation of:

  1. input geometry (if any)
  2. GH UX canvas (PC/client device/website)
  3. computing environment (your PC/other PCs/AWS instances)
  4. Output (pre/post baking to any/multiple places -your PC/client device/website, other software such us Blender, Unreal, Revit…)

I know your team has been working on all the foundation and pluming for all those things to happen. It would be great to now see you all building a welcoming home for all this where we can enjoy doing our work in).



Oh I’m here for the bugs. Is there a topic for debugging yet?

Do you prefer a topic per bug or one called GH2 bugs?

A topic per bug is much better than a single topic for many bugs.

Very nice.
Since gh files can’t open in Grasshopper 2 i think people will continue use Grasshopper 1.
Will Grasshopper 2 replace Grasshopper 1 or it will be available as second option?

@DavidRutten congrats on the first release of GH2, I can’t wait to get my head into the new possiblities.

Not quite as excited about rewriting my 6800 component def of KaroroCAD from scratch to work in GH2, but I’m sure there will be a lot I can refactor in the process.



There is no replacement going on. We will continue to support and add new features to Grasshopper 1. You should also be able to run both Grasshopper 1 and Grasshopper 2 at the same time. You have to remember that this is the first alpha of GH2 and we expect it to take quite a while before we hit a point where we would consider it a stable official release.


When this happens, can you run the G2PluginViewer and see if you can find any error messages there, or whether the components missing in the tabs are in fact available in that viewer?

Very nice to see that ins’t an April fool