Grasshopper 2: UI Wishes

Before posting this I would like to put up a disclaimer that I just recently started using Grasshopper so I am most likely not aware of all the inns and outs of the development and the requests I am posting have been asked for previously (despite having glanced over the forums). Most of my suggestions are UI related and would speed up my workflow.

E: I will continue to compile suggestions in this post once I come across something worth adding.

Colour and visibility

  1. For groups and components (such as panels) I would like to see a swatch drop-down so I can select any colour that was either there by default or added by the user, much like the way swatches work in Photoshop or Illustrator. This makes colour coding and structuring scripts a breeze.
  2. Perhaps live swatches where, if the colour of the swatch is changed, the change propagetes to all the groups/ components assigned to the swatch.
  3. Optionally, a layering system may be beneficial for quickly recolouring any groups by their function (e.g. evaluation, geometry creation, data, etc.) It could also be used to quickly show and hide certain parts/ steps of the script without having to select specific components to show/ hide.
  4. A colour picker to change the colour of the existing group/ component to that of the selected one could be a first step.
  5. Global font & size settings, sometimes panels (from different users/ display dpi settings) have different text sizes.

Wires and restructuring

  1. When dragging a wire into a blank portion of the canvas, allow there to be a menu (possibly a user customisable or context sensitive pie menu with an additional type-in functionality) to select a node to connect to.
  2. The ability to put a component in between a wire.
  3. A keyboard combination to delete a component while rewiring the wires to the input the deleted component was attached to.


  1. Additional selection methods, such as lasso or fence to quickly select a bunch of components.
  2. While selected, multiple components could be resized similar to resizing objects in Illustrator.

Names & linked data

  1. If I use an expression component (there may likely be other components), I would like to be able to rename my input parameters from the expression window so I don’t have to do a round trip. I would then like to optionally select the parameter that I am typing in, in order for the names to be linked. If the parameter name were to be changed, the now linked parameter in the formula would change accordingly. This is the way parameters work in Revit, Fusion 360 and Inventor. Renaming the parameters, renames them in the formulas.
  2. There are some bugs with ‘show full names’ where copied components receive no or an abbreviated name. Switching input method also causes expressions to fail due to their inputs changing back to their default name. Nevertheless, I find full names much easier and quicker to use and understand (like many fellow students), it would be great if sliders would be renamed to the input they are connected to (like when show full names is turned off) in case no user name was set.
  3. A wireless send/ receive functionality, in which a component/ parameter is linked to another, this allows sending through data across the canvas by selecting the linked component/ parameter. The child component, as this would be called, would inherit its data from the host, while also linking the names of both. Changed names to the child propagate to the parent and vice versa.

Snaps/ component guides and arrangement

  1. Although the align and distribute functionality work well (apart from the very tiny hitbox that is often missed), I would argue that these are only required due to a lack of snapping/ smart guides between different components. I would prefer there to be guides (like in Indesign, Photoshop, Illustrator, etc.) that show how components allign. These guides could also be used to snap to.
  2. Other than top,middle and end snaps, there should be snaps for straight alignment of wires. The cleaner the script the better, especially if it takes no additional effort.
  3. Alt + drag copies should work with shift to constrain the duplicate’s movement orthogonaly.
  4. Alt + drag copies should be invokable by pressing alt before clicking on the component. This is an industry standard regardless of wether alt, ctrl or shift is used to that end. Seperation division should be invoked in a different manner, alt + drag copies is a very intuitive command that, atleast for me, is useless in the current status.


  1. A baking component which allows to manually select components to bake to which is wired to existing components. It should include all things that can be generated by Grasshopper (i.e. geometry, dimensions and annotations).
  2. Alternatively, my proposed layering system could be used to bake certain layers (e.g. only annotation, parts of geometry, etc.).


  1. A global setting to set a default angle to degree or radians, so you could omit conversion to radians if you prefer to use degrees instead.
  2. The ability to link min/ max amounts of parameters through formulas. So let’s say the upper limit of ‘number slider A’ can only be half of ‘number slider B’. This may reduce slider induced bugs.
  3. An alias editor which allows for setting aliases for all components. You should be able to search by alias and by component, as well as have a search bar to test inputs. Best example is found in the 3ds Max Hotkey Editor.. Perhaps also an option to rearrange aliases for any given search string?

In general, I think Grasshopper would benefit from having more user actions to reduce the amount of clicking or worse, clicking into the menus of menus. A (drawing) tablet friendly UI would certainly be much easier to work with for some.


For me BAKE, BAKE and BAKE is the biggest wish for GH2.

Being able to bake multiple components at once by the press of a single Button, being able to bake the GH2 Dimensions components to Rhino dimensions, because Elefront it is not working with RhinoMAC. For me it is important to be able to generate also the technical drawings straight from GH.

Also, I can’t find a component capable to generate a TABLE with values from GH results to Rhino Layouts. This TABLE component will be very useful to generate all sorts of reports.

Pssst, you can already do that. Simply select the desired components and invoke the radial menu, then click on the sunny side up egg icon. The radial menu can be opened with the middle mouse button or ALT + SPACEBAR on macOS.

Using this one:

1 Like

There is a bake button/ component in Lunchbox, it bakes all geometry that is put into the component, at least that’s what it states on the grasshopperdocs for Lunchbox.

Unfortunately it can’t do this (bake dimensions):

You want to use Elefront’s Linear Dimensions and the bake objects from Elefront to bake them.
Or if you want to use the aligned dimension, use MetaHopper’s Bake object.

As I already stated before, Elefront it is not a viable option as it is not running on RhinoMAC.

Well there is a mac version of metahopper so you can use that to bake the dimensions.

@Macuso baking is a completely different topic But certainly important. So better start a new thread for this.
@Intuos many good suggestions!

The main ideea of this topic is how to improve the default functionality of Grasshopper.

I know that there exist a lot of 3rd party components but they tend to not be very reliable options. What we are asking here is how to have some default functionality straight from Grasshopper.

1 Like

I have compiled a few more requests in the first post, such as the baking component discussed here. The wireless send/ receive functionality, which links components and data across the canvas without having wire clutter. Finally, the Snaps/ component guides and arrangement section was added.

there is Telepathy plugin that does this. have you tried it?

Unfortunately there is no Rhino 6 version, I used the same terminology in the request hoping those who know about Telepathy would pick it up :wink:

For now, I make these things manually by adding panels/ surface/ curve containers with their wire display turned off. But let’s not deviate too much into plugins.

Works here in 6