ARCH 655 Final Project - Algorithms and Scripting for Parametric Design

Taichung Metropolitan Opera House

Continuing with ARCH 655 Project 1, I decided to work on the model that I created and add the patterns that can be seen in the image below.

Image 1

The patterns are consist of several circles that attach to the building facade which can be realized by using Grasshopper or Python scripting.

Creating Pattern by Using Grasshopper

First, I baked the surfaces from project 1 grasshopper file and utilized as the base of the final project.

Image 2 - Baked Model in Rhino

Then, I started by creating a rectangle grid in order to insert the circles for later use. 

Image 3 - Creating Rectangle Grid

For the patterns, I don't want them to be exactly the same. My goal is to generate circles with different sets of the radius. In order to accomplish this, "Random" node is used to set up a list of numerous values.

Image 4 - Generating Radiuses

The circles were then created based on the grid. One thing to mention here is the use of "Jitter" node. It shuffles the list of the values which helped create more random sizes circle.

Image 5 - Circle Patterns

Next, numbers of the circle pattern were reduced to build better artistic design. 

Image 6 - Reducing the Circle Patterns

Image 7 - Before and After Reducing the Circles

The following step was to trim the pattern with the original surface and the result is as shown below.

Image 8 - Trimmed Pattern

To make this model more parametric-defined, I changed the pattern from circle to polygon which can be adjusted by the slider node to decide the shape of it.

Image 9 - Change the Pattern

Image 10 - Applying Pattern on Each Surface

Last, the surfaces were created based on each polygon and extruded for better visual understanding. 

Image 11 - Extruding the Pattern

Modifying the Model with Python

With the help of Python script, the nodes that were used could be fewer and hence improved the performance of this model. For this project, the part of controlling the generation of random values was replaced by Python node in Grasshopper.

Image 12 - Python Node in Grasshopper

The script that I used is listed below:
--------------------------------------------------------------------------------------------------------------------------
import random

value = []

for i in range (0, N):

    value.append(random.uniform(start, end))

A = value
--------------------------------------------------------------------------------------------------------------------------
Here, "start" and "end" defined the range of the values that can be created. "N" determined how many different values we want to generate. 

Project Movie


Reference

Image 1: http://www.npac-ntt.org/index

Comments

Popular posts from this blog

ARCH 655 Project 1 - Taichung Metropolitan Opera House

ARCH 653 Project 1 - Taipei 101