What is Grasshopper

I wanted to give an introduction to Grasshopper which is popular software in the Computational Design space.

Grasshopper is a visual programming platform that comes as an extension of a modelling software called Rhino. It is a lot like programming except done visually and is focused on geometry. It's very flexible and powerful, but because of that, using this program comes with a steep learning curve. With so many options and features, it is very easy to feel lost and intimidated by the program.

So, as part of my effort to share computational Design knowledge, I going to be using this Newsletter to help guide any of you out there that may be struggling with learning or using Grasshopper. I know that there are many resources out there to learn this but I have found many of them to be not that useful and have a toolbox-like approach (which is just listing every possible feature/function of software).

Undertaking projects and experiments, was where I found I learned the most. Doing them gave me clarity and a good sense of direction when I first started. But It is not easy, it comes with a lot of struggling and discomfort but certainly pays off in the long run.

Therefore, I am going to try and adopt a similar approach. By hopefully giving you some example projects and things to work off. But before we get into all of that. I think it is still important to lay down some foundational knowledge.

What is Grasshopper

As I mentioned before, Grasshopper is a visual programming platform that comes as an extension of a modelling software called Rhino. It is a platform that promotes algorithmic modelling.

However, different to other more "traditional" programming languages, Grasshopper is a very visual experience. You drag and drop "components" on a canvas instead of typing code.

This extension of Rhino gives you full control over the entire modeling process which isn't something other modeling software can do. It provides a snapshot of the modelling process. It turns the abstractness of modelling into something concrete. It may take more knowledge and skill to use but it also means being able to solve more complex problems.

Aside from that, Grasshopper also has a pretty big community and allows the development of custom components too. This, in turn, means that there are community-made components that extend Grasshopper's functionality beyond the realm of geometry. There are even plugins that bring the capabilities of machine learning, topology optimization, computer vision, and more.

The Flaws

But of course, as with everything in life, Grasshopper isn't without its flaws.

Because Grasshopper is tied to Rhino, it is hard to deploy any tools or scripts as compared to traditional programming. For one, anyone you share a grasshopper file with needs to have Rhino installed. Not to mention, they also need to have some idea of how Grasshopper/Rhino works.

As Grasshopper uses "drag and drop" features, it can be very disorienting to people who are used to programming with text only. Not to mention, larger grasshopper scripts can look very messy because of all the additional components on the canvas.

Lastly, because Grasshopper's focus is delivering a great visual experience, it can be very slow when dealing with large datasets. This can be worked around by either breaking down scripts into smaller scripts or using some more advanced scripting components to manage the data.

Final Thoughts

But even with these flaws, I still think Grasshopper is one of the most powerful tools out there, especially in the Computational Design space

So, I hope that was helpful and in the next few editions of this Newsletter, I will be laying down more foundational knowledge for Grasshopper. If you are interested, stick around.

Thanks for reading

Braden.

P.S. I also have a Youtube video covering this edition of the Newsletter