Box Tree

A simple play with boxes and the OcTree component which creates boxes around a set of input points. This component creates each box around a specified number of input points, thus resulting in a denser field of smaller boxes where the points have a tighter relationship. To generate the points, I used Rajaa Issa’s Fractal Plant vb-script component. The boxes are then assigned different colours depending on their size and baked on separate layers using Giulio Piacentino’s Bake Attributes C# component.

// download definition file: pxl-tree.ghx



Without making any excuses, one reason why I haven’t posted the last month is that I’ve started working for Jonas Lindvall. While this employment surely won’t stop me from posting once in a while, I’ll guess they’ll be less frequent. So please be patient.


Bitmap Terrain

A quick way to create terrain is to use a heighfield map. With the new bitmap component it’s now very easy to do in grasshopper. Divide the starting surface into points which are fed into the bitmap component. Move these points along the z-axis according to a suitable channel value (brightness, or another colour depending on your image) and then rebuild the surface again. Done

// download definition file: bitmap-heightfield.ghx


Bitmap Colour

Another use for the bitmap component is to sample colour from an image and then translate onto geometry. Simply select colour in the component preferences and connect it to the shader component which creates a material. This can then be baked for rendering using Giulio Piacentino’s Bake Attributes plugin.


Bitmap Pattern

Another new feature of the latest versions of Grasshopper is the bitmap component. It’s a component which opens up a lot of new possibilities and it’s really easy to use. You simply load an image, input some points and out comes a value between 0 and 1 responding to the hue, brightness or transparency etc., on that point in the image. You may need a bit of tweaking to get the desired result but it works great. It’s harder to explain how it works than to do it yourself, if you look at the definition it should be very clear.

// download definition file: bitmap-pixel-loft.ghx


Voronoi Attractor

In the latest release of Grasshopper, David Rutten has incorporated many of his Pointset Reconstrution tools for Rhino. There are, for example, components for voronoi, delaunay, quadtree and convexhull funtions. To have them right there in grasshopper lets you skip the step of calling them from rhino or a script. Great!

To try these new components out, I’ve put together a quick voronoi definition which inputs a surface and an attractor point which influences the sizes of the voronoi cells. The closer to the point, the smaller and tighter the cells.

// download definition file: voronoi-attractor.ghx


A Popular Landscape

Maybe it’s only me, but I think it’s nice to see that someone else intends to put a facetted landscape in Shanghai. Thomas Heatherwick has designed the brittish pavilion which aport from standing in a crystalline terrain, also incorporates fiber-optics for interior lighting. The landscape folds up in the corners, enabling visitors to move in underneath.

Another landscape:


Learning VB-script

Ok, I’ve been away a while, sorry about that. Now, for the last couple of days, I’ve read through the VB-scripting section of the grasshopper primer. Hoping to learn how to put together a bit more complex definitions, with the possibility to use recursive and evaluating functions. As a first exercise, I have written a small script which finds, within a set of points, the point furthest away from each point in the set, something a haven’t been able to do without the script.

// download definition file: connect-points-script.ghx


Boolean Pattern

A definition which turns a set of closed curves and a polysurface into a structure by a boolean operation. The curves are extruded, scaled and subtracted from the polysurface, leaving two new sets of solids: structure and filling.

The definition used with a circle-packing script:

// download definition file: boolean-pattern.ghx


Surface Inflation

This is a definition for creating inflated or bulging surfaces. It works on both trimmed and untrimmed surfaces, and can for example be used together with a hex-script to create ETFE-panels.

The definition first untrims the surface and creates a uv-grid of points. The points within a specified radius from the centre are then moved along the surface normal, in proportion to their distance to the surface midpoint. The modified points are weaved together with the unaffected points and fed into a surface from points-component, which created a new bulging surface. Lastly, this surface is trimmed according to the input surface and the definition is complete.

Two examples of the definition used together with a planar honeycomb pattern and a grid of surface frames:

// download definition file: surface-bulge.ghx


Hex Grid

A general definition for creating honeycomb patterns on surfaces. The definition is based on Luis E. Fraguada’s (www.livearchitecture.net) VB-script component, which creates the basic honeycomb lines. These lines are joined to form polylines from which a couple of different surfaces can be generated by lofting, extruding, scaling and so forth.

In this second image, the aperture of each cell is set in relation to the distance to a specified point.

// download definition file: honeycomb.ghx



My and my partner in crime, Mikael Ling’s, entry to the Art Fund Pavilion competition. The design is heavily based on the requirements of easy transportation and storage, quick assembly and a digital fabrication process in which each box can be cnc-milled out of standard sized plywood sheets.



More grasshopping. A general box-to-surface-morph definition. Any object can be spread out over a surface. With its bounding box as a reference, the object is morphed to match the boxes created on the target surface. The object can then also be scaled according to various parameters.

// download definition file: boxmorph.ghx



For the last week, I have been trying to get to know Grasshopper a little bit better. Simple operations, which in rhinoscript requires quite a lot of code to accomplish, are set up easily but I haven’t really figured out how to best handle more complex functions yet. Especially how to deal with nested data lists and extracting specific values. But I guess I will get there in time.

Underneath here is a render from my surface-noise definition. An attractor point influence the amplitude of the noise. Additionally, I have revisited my triangulation script and set up a grasshopper variation, also with an attractor point to control the angle of the rotation of the triangles.

// download definition files: surface-noise.ghx and triangulate.ghx


The Presentation

2009/02/09, 0900
attending jury: Sir Peter Cook, Christer Malmström, Gunnar Sandin, Ricardo de Ostos, Abelardo Gonzales, Morten Lund

Even tough I was quite nervous, the presentation went well. Afterwards, much of the discussion was about how this synthetic forest I have created would be experienced by the visitors. How this abstract version of nature comes alive without the accidents and incidents which form the “real” nature. In my opinion, the random elements introduced by the scripts, along with the noise and the motion brought into the pavilion by the visitors themselves, would make the interior forest feel alive.

A related issue that was discussed was how the box, the perimeter of the site, is experienced from the inside. Would the existence of a boundary ruin this experience? My hope is that the gradual transformation of the ground into the walls, you can’t really get that close before the surface gets to steep, draws attention away from them. This is also an issue about lighting and their importance in creating the desired ambience.

As it’s hard, or almost impossible, to tell how a complex environment like this is experienced beforehand, a bigger model, maybe even a 1:1 model of the foliage, would be very helpful. The jury hoped to see a full scale installation, something I would really like to do, having the sufficient funds and space.

Finally, we talked very briefly about scenography in opposition to architecture. Where lies the border between the two? Unfortunately, we hadn’t time to discuss this issue further, but in my opinion, if I create a pavilion in which the architecture is the exhibition itself, to make the visitors actors, on a stage to be explored, is the very essence of the project.

The other model I made last week, showing the wires and the spaces they create and define.

Since my thesis project now finally is over, the postings here will probably be less frequent. But I’ll continue to put up new scripts and images as projects come and go.


The Model

Finally, the model is finished. These photos are quite poor, but better than nothing. This week will be focused on putting together the slideshow and presentation, but hopefully I can put together another model as well, showing the space-creating properties of the suspended wire.

// UPDATE: I replaced the photos with some higher quality ones, enjoy.

By the way, the report has now been handed in to the critics, it can be found here and here.