Picking + Gumballs in Grasshopper

Previously, I demonstrated how to directly pick points generated in a Grasshopper definition. In this example, we will add a Gumball so that we can manipulate those points. It is possible to do this using the Gumball option offered by Grasshopper, but you will have to internalize the data first (which means breaking some dependencies in the graph). This example was inspired by the gumball demo thread in the Grasshopper forum and David Rutten's example.

Read More
/

Picking in Grasshopper

Is it possible to directly manipulate geometry generated in Grasshopper? Normally, to interact with such geometry, we have to bake it in the Rhino document first. However, by doing so, we end up 'breaking' the definition. Here is a simple example showing how points generated by Grasshopper can be directly picked. No baking required.

Read More
/

Meta Grasshoppering II - Dynamic layout

Here's a fun example of 'meta-grasshoppering'.  We are going to lay out some panels (in my opinion one of the most versatile components in Grasshopper) dynamically via a Python component and play around with their positions, colours and groupings.

Read More
/

Meta Grasshoppering - Cleaning up wires

Metaprogramming is when you create programs to manipulate or generate other programs. This idea may be applied to Grasshopper as well. Here I will demonstrate one example where metaprogramming (or metagrasshoppering) is useful. A common problem of visual programming is the spaghetti mess of tangled wires. This limits the comprehensibility of the overall definition. We will address this problem through a Python component that allows users to toggle the wire display of selected components. 

Read More
/

Higher Order Functions

I had the opportunity to listen to Professor Antonio Leitao's presentation at the recent CAADRIA conference. I have been following his work with interest since meeting him at ACADIA in 2011.  At that time, Professor Leitao and Jose Lopes presented Rosetta - a multi-language (Racket, Javascript, Python) programming environment that targets different CAD platforms (AutoCAD, Rhino). Rosetta's appeal lay in its 'write once run everywhere' potential. However the topic of Professor Leitao's recent talk wasn't about Rosetta. Instead he was advocating the use of higher order programming for generative design.

Read More
/

Quilting the hyperbolic plane

We recently ran a workshop at the CAADRIA conference in Kyoto entitled 'Physics based design: Quilting the Hyperbolic plane'

Read More
/