Python Rhino/Rhinoscript
Client B.Arch, Employer RISD
December 2013
Analyzing topography for ideal siting.
Designed in my final Advanced Studio at RISD, this project, sited in the Mohegan Bluffs on Block Island in Rhode Island, is a study in digitally analyzing landscape to create an ideal building.
All of the generated images in this project were created with the scripting language Python, and the PIL and Rhinoscript libraries.
Code is available here.
Using a heightmap derived from a 2011 LIDAR scan of the island, I defined my site as an 80 pixel x 80 pixel square, where each pixel is equivalent to 10' x 10'.
On the heightmap, I set the color black to sea-level and white to 255'. This drawing shows the numerical value of each pixel value on the site.
For each pixel on the site, I analyzed the pixels to the North, East, South, and West to determine its average slope and normal direction.
From the newly-created Slope Intensity image, I generated a series of maps with different threshold values to determine steep and flat areas on the site.
For each pixel in the Slope Intensity images, If the pixel was lighter than the threshold, it turned white, and if it was darker, it turned black.
I ended up choosing a value somewhere in the middle that had a nice balance of black and white as the next iteration of the site.
Essentially, the black pixels on this image are places where the ground is flat enough to build upon, and the white pixels are unbuildable steep sections of terrain.
Next, I wanted to find the flattest areas surrounded by the steepest, so in a series of four drawings, I progressively found black pixels touching varying amounts of white pixels.
Eventually, I was left with 18 islands on the site -- white pixels that were surrounded on all four sides by black pixels.
Next, I had each island connect itself to its nearest island neighbor, leaving me with 5 constellations -- sets of points I would turn into buildings.
Using a pixelized method of drawing a line from point A to B, I redrew those constellations in voxels: three dimensional pixels.
On the ground, I generated a series of drawings connecting the islands from high to low, and from North to South, in an attempt to create pathways between the buildings.
Programmatically, the building is a seasonal artist's retreat for 5 artists. There are community education and gallery aspects involved, as well.
Next, I created a program to randomly add windows to a wall, given their size and percent-translucent.
When it was time to put that program into use on the building, I added functions that would redistribute window placement based upon the privacy required by the voxel's program, and the cardinal direction of the wall.