I’m looking through a fascinating eBook on how to create algorithms for McNeel’s Grasshopper.
If you’re not familiar with Grasshopper, it’s an add-on for the popular Rhinoceros 3D CAD software system. While “Rhino3D” is a very handy and easy-to-use 3D CAD system, the Grasshopper feature takes it to places few, if any, other CAD systems can go.
Generative Design with Grasshopper
Grasshopper is a graphical programming environment that can generate 3D models from algorithms.
Readers may be familiar with the parametric design approach, where subcomponents of a design are “parametric”, that is, their dimensions and attributes can be modified at any time. This is an incredibly handy feature, as the changes can generate a cascade of dependent changes instantly. This can save a considerable amount of redesign effort.
But an algorithmic approach is much, much deeper. Instead of simply tweaking a parameter, you can create highly sophisticated algorithms that not only change the 3D model, but actually create it from nothing!
Grasshopper is quite visual, in that its interface is much like a flowchart. You start with some input parameters and push them through a series of builtin functions & combinations to generate a 3D model. However, it is essentially programming.
Here’s an example of an extremely simple Grasshopper flow:
As programming, any competent programmer should be able to pick up Grasshopper syntax and flow easily. The difficulty is this: how, exactly, do you make algorithms to generate structures in 3D space?
That’s what McNeel’s latest eBook is all about. It’s titled, “Essential Algorithms and Data Structures for Computational Design in Grasshopper”, and that’s exactly what it is.
The book takes you through the basics of Grasshopper syntax, flows and data structures, programming tools like sorting, etc, and then digs in deep into algorithms. I am very impressed with their presentation; it’s incredibly easy to follow and anyone with a programming background should breeze through this part.
Here’s a section of a tutorial to explain how a circle is generated:
What’s very interesting is that they provide a kind of mental approach for building sophisticated generators. The idea is to start at the result and work backwards through a series of steps to create the entire algorithm.
Grasshopper Truss Tutorial
Here’s a complex and even relevant problem: designing a truss system, perhaps for an aircraft wing:
The tutorial goes on for quite a while, but when finished, you assemble all the steps into this Grasshopper solution, which will indeed generate the required truss structure:
To use Grasshopper, you obviously must have a recent copy of Rhino3D. I should point out that it is not particularly expensive as far as 3D CAD tools go, so it is reasonably accessible. Rhino3D is also available on both Windows and Mac platforms. Grasshopper is automatically included in the package.
If you’d like to look at this eBook, it is free for download — with registration — at McNeel’s link below.