Author Archives: 02 Mary Heinrich

P5_02 Heinrich

curtain panel––large opening

curtain panel––medium opening

curtain panel––small opening


1) Grasshopper script to divide surface, draw perpendicular-to-tangent segments from points, use angles between segments to determine the seam line between concave and convex in a complexly curved surface

2) Use divisions generated to determine seams of skin

3) Populate the spaces between seams with doubly-ruled, but curved surfaces

4) Support each individual surface with four sides, thereby allowing the geometry of each resulting origami nub to define the curvature of the facade surface

5) Connect the network of origami nubs with pins through neighboring skin surfaces

6) Support network with ribbed grid behind open honeycomb

Main point: The self-supporting doubly-ruled nature would allow each nub, in true construction, to be easily prefabricated from sheet material off-site. The individual, stable trapezoidal forms could then be pinned to each other on site.

Curve/Division/Divide Curve

The grasshopper button “Divide Curve” (found under the “curve” tab) divides an existing curve into equal length segments. To use the button, you must start with a drawn rhino curve:

Then, in grasshopper, under the “params” tab, select the “curve” button. After placing the curve command, right click on it, select “set one curve” (unless using the grasshopper definition on multiple curves, then you would choose “set multiples curves”), and click on the curve to which you want to apply the final definition:

Next, select “Divide Curve” under the “curve” tab. Connect the curve command to the “C” input of the divide command. The second input, “N,” determines the number of segments to divide the curve into. The default is 10 segments. The command will not only determine the division of the curve, but will create points at the divisions:

The “N” parameter can be set locally (it could also be set by a connection to another command, if desired), and can be modified by right clicking on the parameter letter, selecting “Set integer”, entering a value, such as 100, and clicking “commit changes”:

The “K” parameter is a simple true/false parameter, and is set locally to determine whether or not the segments are split at their kinks.

(Both the “N” and “K” parameters can be set with multiple values for your collection of curves, if the command is applied to more than one originally selected curve.)

The output parameters for this command are:

“P”: the points created at the divisions

“T”: the vectors that would be tangent to the curve’s points of division

“t”: the parameter values at the points of division

Divide Curve command

Heinrich: Section 02


P1_Mary Heinrich_02


The Wave Pavilion deals conceptually with how the language of line can be sculpted into a patternistic system of dialogue, implying space-defining surface in a way that is atmospheric rather than palisaded.
This system of linear elements, calculated through the use of parametric script, also becomes a project of exemplifying infinitely customizable digital fabrication. The team designed and fabricated a custom CNC bender (to work in conjunction with a kuka robot) to precision-bend 1/2 inch steel rods into a myriad of custom shapes. Additional rhinoscripting was used to translate the digital 3D linear forms into choreographed instructions from which the bender and kuka could operate.
Video of the customized bender in action:
Macdowell.Tomova Bender and Kuka Robot
This project seems to be most relavent to the spatiality of a skyscraper by way of its fabrication. The high-level of customizability in mass-produced elements would bring substantial opportunities. Such a process would make it economically feasible to populate the vertical immensity of a skyscraper with infinitely variable spatial constraints––The economic need for a ‘module’ could evaporate.