Grasshopper 2

Continuing the discussion from Grasshopper component UI naming rules:

Any indication when we can expect (a WIP version of) GH2? Will it be shipped with rhino 6?


(1) don’t know. (2) definitely not.

It’ll be quite a while before the first beta release, and I expect rather a long beta process. Maybe it’ll be ready in time for Rhino7, but since nobody knows when that is going to happen it hardly matters.


Then it is ok to suggest a feature I’ve been longing for?

Hi, David. I am not sure if it is possible to do in GH, I assumed that the order of inputs/outputs is hardcoded and swapping them would mess up the code. What I mean is a rather common occurrence when you have some parts of definition that go up or down on the canvas plane which inevitably leads to wire entanglement (overlapping). Nothing makes me happier than seeing the perfect and unperturbed flow of wires, especially if the definition is from someone else. Makes it just so much easier to understand.

It would be nice to have a button(hotkey) to “untangle” all the wires if u got a messy definition. It looks like all letters (inputs and outputs) on components suddenly rearranged (wires to) if a wire comes from a place below, but its input is the first in a column, then it slides down and untangle the wires. Freshly dragged components will have a “standard” layout but you can change it from here (button for automatic change, ZUI for manual). Something like automatic indentation in some IDEs.

P.S. Server cabling is just a reference XD


I understand your desire for neatly organized connections. However switching input positions is like switching acceleration/break/klutch peddles in a car for aesthetic reasons. It will cause havoc.


1 Like

Yes, I also thought so, but now I tend to think that it can apply to you if you are beginner. Nowadays I keep noticing that I never tend to memorize the actual positions or order of inputs/outputs, I got used to the letters and know what they mean, so I assumed that seeing their order changed won’t slow me down significantly. I hope it will be possible to toggle this option, so people can choose to keep it if they find it useful. It would be better to try it out anyway.

@Willem What do you think?

FYI, a feature similar to this was included in early (circa 2008-9) versions of GH (If my memory serves me correctly). I believe it was removed because it is not a trivial problem to solve and there was probably more important stuff to do. In my years of teaching I’ve seen my share of definitions which make me just want to close the file. Teaching discipline and organization techniques is key for some sort of sanity in the definitions. I hope that over the years a sort of GH Definition sharing etiquette has bloomed and people know that it is rude to share messy definitions.

None of this solves your issue immediately, but I do like the idea of being able to organize things at the connection level…bundling cables seems like a nice concept. I also like what you said about [quote=“timglobal, post:3, topic:37563”]
Freshly dragged components will have a “standard” layout but you can change it from here (button for automatic change, ZUI for manual). Something like automatic indentation in some IDEs.

Thinking about the GH Canvas like an IDE (including the features that are meant to promote developer efficiency and good code habits) could be a useful metaphor for developing fresh workflow tools.

1 Like

As an example, I’m really glad that they made icon/name view toggle-able. As each person is different and how your brain interpret information is a bit different, so when I see screenshot of definition with name view, it really cringes me, because I’m this person who reads rather slowly but have a much faster visual understanding, so glancing over an icon is enough for me to understand the concept. But when I see names I run through them, reading them, which is milliseconds slower, but doing this over and over again slows me down and wears me out.

Yeah, it is actually after grasshopper I realized that I’d probably love writing code, since from the time I started it had a very nice design and user friendly UI. And I am immensely glad that they kept counting from 0, directional logic flow and the lists/trees thing, because learning to code now feels so easy and intuitive, same concepts everywhere, just different "grammar. Before GH I thought programming was hard and boring, not anymore XD. GH is such an awesome software.

You’re right that the #1 problem with readability is the proliferation and entanglement of wires. I do agree with Willem that re-ordering parameters is a bad idea, plus it won’t solve the most egregious problem, which is long distance wires. If the ordering of parameter becomes more standardised, it will automatically reduce the occurrence of crossing wires between two components, although there will always be some cases left.

I don’t know what solutions will work until I try them. I have some ideas about how to present wire-bundles in a more readable fashion, especially when zoomed out, but it’s pretty vague at the moment. Perhaps the solution lies in adding features that allow users to chop up a large network into smaller chunks, thus indirectly reducing the amount of wiring.

I imagine this will be a very active area of discussion once GH2 beta-1 goes out and we can all talk about the same thing and test proposals.

1 Like

Yeah, after what you mentioned I can see some approaches like “burying” or teleporting far away bundles of wires in a user-friendly manner or ability to “tug” on wires, moving them out of the way a bit when they lie under the components. Even here one can be extremely creative and effective, no doubt all these will be figured out eventually.

Well, at one point it would be cool to think node graphs as 3D or at least 2.5D - since the one in GH is vector based, it should be quite possible to get a good system working.
One could place some nodes in the back, that are less important and others at the front.
This way one could work with size/shadows/wire thickness/opacity/blur and so create a much more readable graph.
When you click on a node, that “depth” could come into focus and be fully opaque.
Our brain is made for 3 dimensions, so it makes sense to use them.

Just for some examples and ideas:

Blackmagic “Fusion” has nodes where the connections change to reduce wire overlap (not sure if I like it much - in a simple merge node, the placement of “foreground” and “background” is confusing if the background is above the foreground…).
(the standard version is free)

“EigenD”, a node based audio/midi patching application for the Eigenlabs “Eigenharp” has a funny implementation of cable ducts around the working area:
Here is a video where you can see the interface:

Scroll a bit forward in time…

Native Instruments “Reaktor” has a way to create bundles of signals, so that you can have one wire/connection transport a user defined collection of data, a bit like a struct in C.

Blender 3D has many interesting ideas in dealing with nodes, like the Node wrangler:
Especially an easier way to cut connections would do GH a lot of good.

In SideFX Houdini (like in the older “Shake”) you can wiggle a node to disconnect it from the attached wires.
It also has a very deep concept of groups and attributes that you can attach to pretty much every entity and which makes dealing with large numbers of objects/points much easier and brain friendly than relying on the order of things like in GH mainly.
I currently use Houdini much more than GH since it’s multithreaded and deals much better with larger numbers of objects and points.Waiting half an hour for a solution to compute when only one core is working really hurts…
Also animation is missing dearly from GH/Rhino ATM

I wouldn’t want to do this in GH 1: :wink:

Looking forward a lot to GH 2 :slight_smile:




Regarding the long distance wires, could you have a toggle between the current green fade to grey and a high contrast marching ants effect?

I am very new to Grasshopper but I found myself getting lost and having to move the boxes around to see what was going where in some instances.

Maybe a glow around the box(es) in question. Rather than focussing on the wire it’s the box and which node the wire is plugged into which is more important than looking at a long wire weaving in and out of a desktop full of cables?


1 Like

One might also look for inspiration and common practices at wiring diagrams for complex vehicle electronic systems: eg: air and spacecraft system interconnections.

Another thought to take into account is that the foundation for Grasshopper is, in fact, a 3D depiction system. Perhaps some visualization efficiencies could be realized by taking advantage of it. Of course, it would probably also be very easy to confound visualization to an impossible degree with a poorly thought-out approach. The present Grasshopper 2D approach has been around for a really long time, eg National Instruments analog test equipment programming.

Instead of using clusters is it possible to scale up or down a Group by dragging one of its corners like a windows?
We could shrink it visually to a very small component size area or drag it as large as need it making modular working easier than working with clusters.
It could be more practical in many cases.


One more point:
ATM everything needs to be baked statically to be able to render it or use it otherwise.
While sometimes that makes sense, often I would not need a baked result and actually don’t want one, since it both creates large or even gigantic files and also goes against the grain of the whole procedural/generative idea.

The Houdini simulation I posted above needs up to 14 GB RAM, but the file on disk is only 2 MB. Simulation time is low enough to be done on demand.
IMO it would be awesome if it were possible to have a kind of “virtual” geometry in Rhino like that, that can be rendered but isn’t saved into a file statically.
This could for instance be done in a kind of block/instance that doesn’t rely on a file on disk but queries GH for the data.
Many production renderers have such “procedurals” that only exist at rendertime.



1 Like

Are you using the Vray Beta 3.0? It has some experimental components that do exactly this…

Interesting - I never liked Vray much but maybe I have to revisit it :slight_smile:
Lets hope it comes to other engines too.



Houdini looks impressive, I looked up its interface and workflow, I still think GH’s components are more fun to work with XD. But yeah, GH can learn something from houdini as well.

Well, Grasshopper looks nicer (although Houdini 16 will work on that) and has some very good tools and ideas, but after learning Houdini for about 2.5 months intensively now, I have to say that going back to GH is rather painful. When GH starts to take half an hour to compute your static solution on one thread and Houdini does it animated in realtime on twelve, things start to look different.
For instance the “Shortest Walk” node in GH that I used a lot becomes very slow on larger networks and has very limited options compared to Houdini, where you can do tons of stuff, like custom path costs, avoiding certain edges, define edges as one-direction-only, custom turning cost, write the cost to each point on the way as attribute …
Or Mesh machine in GH is very very slow and tends to explode all the time - I spent days with simulating, explode, tweak, resimulating, explode, tweak… Meet the remesh node in Houdini. Instant result, and it never once exploded on me so far.
Using millions of points? Don’t do that in GH.

GH got me deep into the whole generative modelling thing and I’m very thankful for it, but Houdini plays in a totally different league.
It’s not the right tool for everybody and everything, but if you hit the wall with GH at one point with your generative projects, be sure to give it a deep look and do some of the awesome Entagma tutorials to get into the flow:

Be careful though: It’s highly addictive once you get over the threshold… :wink:



Could I ask you about the how you are going to use this tool? Like is it a hobby (for fun) or are you planning to use it in your career? I wanna try the tool but I fail to see its immediate value in architecture.

That’s going a bit offtopic, but in short, I already do use it in my work as a designer (
But I’m not an “architect” although I worked on architecture related things in the past… :wink:
Depends on your usecase mostly.