[Feature Request] Vertical oriented GH definitions



Hi all (specially @DavidRutten :P),

As I know, David likes to take every detail of the UI and design it as good as possible to improve user experience and usability of the tool. My request here is purely functional and involves how GH definitions are organised, developed and shown to third persons.

My request is simple but it implies probably a deep UI redesign so I don’t know if it will be of interest to the development team…anyway, here it is: is it possible to implement any way to develop GH definitions that could grow vertically as well as horizontally?. This could be developed at different levels:

  1. Letting the user to select in the canvas how he want to orient the growth direction of the definition (landscape/portrait). This will not change “too much” the current behaviour, it only will allow to users using portrait oriented screens for coding (as I do) to work more comfortably with GH definitions in that coding screen. The only elements that will need a redesign are those displaying “live” information to the user as panels, etc.

  1. Creating components that let the user reorient the grow direction of the definition between portrait and landscape, creating zones in the canvas were the components instantiated will connect on landscape or portrait fashion. The limits on those areas will make the cables turn to the correct direction to attached to the components instantiated in there. This new way of organising definitions will probably encourage the development of other cable visual style in which the cables will be composed by straight lines and fillet arcs to accommodate the growth direction changes (similar to the connections that could be created in Gliffy in some diagrams)

  1. Multi directional implementation: this implies a complete redesign of the current components, making them in a way that let the user specify the face of the component in which each in/out node will appear (left,right,bottom or top). That flexibility in Gliffy let the user to accomodate the diagram to the nature of each idea to explain and makes easier for him/her and the people reading the graph to understand the idea. In GH it would improve the readability of the definitions and will give the user freedom to organise visually and functionally the code. See how the wire reconnects the flow chart end with the first element attaching a cable to the top of the element.

Just dropping some old ideas about GH interface in case that they could be useful.


Vertical slides
Vertical canvas?
Why the icons use in grasshopper tutorials and not the full names display mode?
(Miguel Villegas Ballesta) #2

I think this would be really nice!
Also for presentation/work, this could be great. The scrollwheel/scroll movement on screen is actually more intuitive and “quiet” for the spectator and shold allow for a more “followable” discourse.

(Menno Deij - van Rijswijk) #3

It’s been discussed before. (there is a search feature to find old discussions)


Hi @menno,

Sorry for duplicating…I saw that was some time ago and forgot to link the old one.

I will link back to that one and add the new information.



User say - important
Developer say - Not important

Result = Important


Or let me rephrase in Delphi Pascal lingo :

If User.IsImportant(CaseAtHand) OR Developer.IsImportant(CaseAtHand) Then
    Developer.PleaseImplement(CaseAtHand, Time.Now);

// Rolf

(David Rutten) #6
Case nextUp = null;
double returnOnInvestment = 0.0;
foreach (Case caseAtHand in cases)
    double investments = HoursOfInitialWork + 
                         HoursOfMaintenance + 
                         AdditionalWorkForPluginDevs * PluginDevCount + 
                         HoursOfTechSupport + 
    double returns = HoursOfUserWorkSaved +
                     UserDelight * UsersWhoLikeItCount -
                     UserDisapproval * UsersWhoDislikeItCount;

    double roi = returns - investment;
    if (roi <= 0.0) continue for;
    if (roi > returnOnInvestment)
        nextUp = caseAtHand;
        returnOnInvestment = roi;
if (nextUp == null)



User.Exit();     // Avoid this!


// Rolf