Now that we’ve established that Organising your scripts is the way forward, yout next question should be ’how?’ That’s exactly what we’ll be covering in this section — Scouting the Canvas.

The canvas is easily one of the underrated features of Grasshopper. Of course it is no where near perfect (winks twice at GH2) but, it practically has all necessary options to get us started with the task at hand — organising.

The Iron Curtain

It has different names — boundary, axes, origin, border, etc. but serves one main purpose — to define a beginning to a file. The border is the grasshopper equivalent of the first line in a document, or the first cell (if you’re talking 2D) in a spreadsheet. Content is placed inside the borders — are they now?

One of the major features of the Grasshopper landscape is that, the are outside the borders (outer canvas) are also accessible, and is considered a work-area. (beat that Spreadsheet) This brings up the question, how can we leverage this to our advantage? Behold! The Iron Curtain.

Outside the Borders

It is almost a tradition to place primary inputs, (Number sliders, MD Slider, Panels, etc.) along the borders to grant easy access. You wouldn’t have to scan the canvas to find the components looking for, you’d just know where it is in the first place.

“The canvas is easily one of the underrated features of Grasshopper.”

This can be taken a step further, and the outer canvas can also serve as the space for a number of things.

  • Global Constants: Similar to declaring constants in text-based programming, data that is constant (such as the building address , location or other metadata) for the current file can be placed outside.
  • External Imports: Another reference to text-based programming, is to place external dependencies grouped together. Placing them outside, separates these from the active scripts (ones that you can modify).
  • Reference Files: I use a lot of references. It is one of the ways I learnt to use grasshopper. Keeping these files to the North of the border, helps to both organise and also tweak these without affecting our active scripts.
  • Branding: (subset of Global Constants)A great place to place the logo, contact information, and all necessary branding can be placed without affecting the readability. I have caught myself multiple times, deleting those logos on the canvas. Ideally, logos can be placed on the North-Western corner of the border. That is the area which (almost) no one ever uses.
  • New ideas: (Although I personally prefer having separate files, adding is to the list. Use at your own risk-of spaghetti)The outer canvas can also be a great place to try out new ideas and prototype.

Note: I’m not really a fan of scripting first, and then organise the file. While some us prefer that, I personally prefer creating the file, with looking the part (readability and re-usability) as one of the priorities.

Further Reading & Useful Resources: