19 Apr

Illustrating Mathematics with Grasshopper

Facilitator: Dave Bachman

Grasshopper is a visual scripting platform for Rhino 3D. David Bachman is a level 2 certified Rhino instructor and author of Grasshopper: Visual Scripting for Rhinoceros 3D. Rhino 3D is the predominant CAD tool in the field of Architecture, as it allows one to build models using precise construction tools, as well as by scripting with several programming languages. For this reason, it has also become popular among Mathematicians for creating mathematical models. Grasshopper is an auxiliary program which allows one to build objects in Rhino by an easy to use “visual” scripting language. Grasshopper code has several advantages over traditional scripting. Most notably, it allows for the ability to isolate a specific element of the model being built and dynamically interact with and modify it in a large variety of ways. Participants in this workshop will learn the basics of model building with Grasshopper. Depending on time and interest, we may also explore more advanced topics such as popular plug-ins to enhance the functionality of Grasshopper (e.g. Anemone for looping, Kangaroo for physics simulation, etc.), interfacing with external scripts, optimizing code for parallel processing, etc.

Our first meeting will be held jointly with the Blender Workshop (in Rémi Coulon’s Blender Zoom room, see the link on Sococo), so participants can understand the differences between these computer graphics packages.


  • What prerequisite knowledge or skills will the workshop assume?

    Linear Algebra and familiarity with Parametric Curves and Surfaces. Some knowledge of Differential Geometry may be helpful, but is not necessary.

  • What specific preparation or tasks should participants have completed prior to the beginning of the workshop?

    Download and install Rhino 7. There is a free trial version available that will work for the period of the Workshop.

  • What outcomes should participants expect to achieve by the end of the workshop?

    Students will learn how to build 2- and 3-dimensional models by creating flowcharts in Grasshopper. This will entail gaining familiarity with the wide variety of the available Grasshopper components, and an understanding of the way Grasshopper handles data structures and data flow. Students will also become familiar with some of the more popular plug-ins to expand Grasshopper’s functionality, such as Daniel Piker’s Kangaroo Physics package.

  • Will there be specific projects for participants, or should participants have their own projects in mind already?

    It would be best if students came with their own projects, but I will have some ideas to choose from if they do not.

Grasshopper is a visual scripting platform for Rhino 3D. David Bachman is a level 2 certified Rhino instructor and author of Grasshopper: Visual Scripting for Rhinoceros 3D. Rhino 3D is the predominant CAD tool in the field of Architecture, as it allows one to build models using precise construction tools, as well as by scripting with several programming languages. For this reason, it has also become popular among Mathematicians for creating mathematical models. Grasshopper is an auxiliary program which allows one to build objects in Rhino by an easy to use “visual” scripting language. Grasshopper code has several advantages over traditional scripting. Most notably, it allows for the ability to isolate a specific element of the model being built and dynamically interact with and modify it in a large variety of ways. Participants in this workshop will learn the basics of model building with Grasshopper. Depending on time and interest, we may also explore more advanced topics such as popular plug-ins to enhance the functionality of Grasshopper (e.g. Anemone for looping, Kangaroo for physics simulation, etc.), interfacing with external scripts, optimizing code for parallel processing, etc.

Our first meeting will be held jointly with the Blender Workshop (in Rémi Coulon’s Blender Zoom room, see the link on Sococo), so participants can understand the differences between these computer graphics packages.