For developing the tensile roof two similar yet different approaches were taken up. In the first approach a MESH PLANE component was taken up, where as in the second one a MESH BREP.

Result of Approach 1:

Result of Approach 2:

**The tensile roofing is designed to replace the bamboo roof structure of the complex with a more Dynamic tensile form. **

*Initial Concept of the Museum Complex:*

The view of the globular bamboo roofing.

Replacing the Globular roof structure of the Museum with a more Dynamic form using **Kangaroo and Weaverbird.**

**Kangaroo Physics**

Kangaroo is a live Physics Engine for interactive simulation, form-finding, optimization and constraint solving.

It works with the inputs such as:

– Show

– Anchor Points

– Load Points

– Edge Length

– Solver

**Weaverbird- Topological Mesh Editor**

Weaverbird is a topological modeler that contains many of the known subdivisions and transformation operators, readily usable by designers. Instead of doing the work repeatedly, or sometimes using complicated scripts, this plug-in reconstructs the shape, subdivides any mesh, even made by polylines, and helps in developing fabrication for the structure.

**STEP 1: Setting of a curve.**

Mesh Plane has 3 inputs Boundary(B), Width count(W) and Height Count(H). Where boundary is the curve we set in step 1, Width count is the number of faces along X direction and Height count is number of faces along Y direction. Both width count and Height count are set using Number sliders which can control the size of the mesh. The output of the component is a Mesh(M) and its area.

When we use the component MESH PLANE always develop a rectangular plane as the input data is the width and the height count.

Naked vertices component has a Mesh as an input and the outputs are Clothed Index, Naked Index, Naked Points and Clothed Points. Naked points are the points along the periphery of the mesh and the clothed points are the points inside the periphery. Clothed index output and Naked index output gives the indexes of vertices surrounded by faces.

**Step 2: Generating of Anchor Points and Load Points.**

Random Split List it splits a list into 2 lists. The inputs of the component are Master list (L), Seed(R), and Split(S); the outputs are two lists A and B. We load the clothed points to a Random split list into the Master List input and the naked points into another to derive the Random points that will acts as Load Points and Anchor points of the Structure (Skin). The split value is inserted using a number slider, which can define the ratio in which the list will be split; for instance 0.5 will give us 50:50 list, where as 0.25 will give a 25:75 etc. The seed value helps us in deriving with probable set of points.

**Step 3: Derivation of final set of points.**

The set of the final set of Anchor points, Load points and the high points are fed to MERGE component and stored inside the POINT component.

**Step 4: Anchor Component and Load Component**

From the Random Split component we get the output of a set of points (as lists), which will be the final set of Anchor points, Load Points and High Points of the structure. The set of Load point list are further added to the component LOAD. The component LOAD has two inputs- Point(P) and Force Vector(FV). A Unit Z factor in a positive Z value is connected to force vector where we input the load that will be applied to the structure and will define the form. Unit Z factor will act along the Z direction and it will specify the highest point of the roof structure. The positive Z value is added as we want to set the highest point of the structure.

The Anchor Command has the inputs Point(P), Target(T) and Strength, where we feed the points into the command and the output is the Anchor out. It sets the final anchor points of the structure before fed into the BASIC SOLVER.

**Step 5: Show and Edge Lengths**

Edge length is a command is used to determine the strength or the force that the structure can withstand.

The values derived from Anchor component, Load Component, Show and Edge length components are first merged using a MERGER and the fed into the Basic Solver. These set of values are the raw input for the Solver.

**Step 6: Solver**

Once merged we get an output/ RESULT, which will be the Goal Objects input of the basic solver.

**SOLVERS in Kangaroo:**

There are 5 types of Solvers in Kangaroo, they are:

- BOUNCY SOLVER
- SOLVER
- SOFT & HARD SOLVER
- STEP SOLVER
- ZOMBIE SOLVER

Here we are using a basic SOLVER. The inputs of a SOLVER Component are Goal Objects, Reset, Threshold, Tolerance and On. The Goal Objects here are the data we derived in the previous steps, ie., the Anchor, Load, Edge length and Mesh. The Reset input is a toggle button to completely rebuild the particle list and indexing. The On input is a true or false toggle button. These Toggle buttons enables us to re process the input data and re-process. The output of the Solver is a Mesh. Due to multiple running of the program the output mesh is likely to have NULL POINTS and we use the CLEAN TREE component to delete these null points and get a clean mesh.

** Step 7: Visualising**

The mesh derived is Deconstructed here to analyse the high points and low points of the structure. Here the lowest point will be depicted in blue and the highest in orange. Once the analysis is done and deriving at the desired mesh form/output we use the Weaverbird plug-in.

**Weaverbird** brings mesh editing, subdivision and mesh transformations.

**The final script:**

Grasshopper file- kangaroo 01

Rhino file- 01

APPROACH 2:

When the MESH PLANE component gets replaced with a MESH BREP component, we get to match the Initial curve with the mesh plane. Here the organic plan of the museum is derived from a trapezium.

**STEP 1: Setting of a curve.**

**Mesh BREP-**

It has two inputs, brep geometry(B) and settings(S) to be used for the meshing algorithm. Brep is a combination of multiple surfaces.

**Step 2: Generating of Anchor Points and Load Points.**

**Step 3: Derivation of final set of points.**

**Step 4: Anchor Component and Load Component**

The Load points derived from clothed points are fed into the component “LOAD” and the set of Anchor points derived from Naked points are fed into the component Anchor.

The component LOAD has two inputs- Point(P) and Force Vector(FV). A Unit Z factor in a positive Z value is connected to force vector where we input the load that will be applied to the structure and will define the form. Unit Z factor will act along the Z direction and it will specify the highest point of the roof structure. The positive Z value is added as we want to set the highest point of the structure.

The Anchor Command has the inputs Point(P), Target(T) and Strength, where we feed the points into the command and the output is the Anchor out. It sets the final anchor points of the structure before fed into the BASIC SOLVER.

**Step 5: Show and Edge Lengths**

Edge length is a command is used to determine the strength or the force that the structure can withstand.

The values derived from Anchor component, Load Component, Show and Edge length components are first merged using a MERGER and the fed into the Basic Solver. These set of values are the raw input for the Solver.

**Step 6: Solver**

Once merged we get an output/ RESULT, which will be the Goal Objects input of the basic solver.

**SOLVERS in Kangaroo:**

There are 5 types of Solvers in Kangaroo, they are:

- BOUNCY SOLVER
- SOLVER
- SOFT & HARD SOLVER
- STEP SOLVER
- ZOMBIE SOLVER

Here we are using a basic SOLVER. The inputs of a SOLVER Component are Goal Objects, Reset, Threshold, Tolerance and On. The Goal Objects here are the data we derived in the previous steps, ie., the Anchor, Load, Edge length and Mesh. The Reset input is a toggle button to completely rebuild the particle list and indexing. The On input is a true or false toggle button. These Toggle buttons enables us to re process the input data and re-process. The output of the Solver is a Mesh. Due to multiple running of the program the output mesh is likely to have NULL POINTS and we use the CLEAN TREE component to delete these null points and get a clean mesh.

** Step 7: Deconstucting, Visualising and Analysing**

The trough and crest of the structure is analysed here. For the same, the mesh is deconstructed first and a Gradient component is used for analysis. Here the Red gradient represents the Crest and the Blue gradient the trough. The Mesh is reconstructed using the Construct Mesh component.

Further the weaver birds tools like Weaverbird Picture frame, Weaverbird Loop Subdivision and Weaverbird Mesh thicken is used to define the perforation size and shape, the mesh support etc.

Rhino file- Tensilestructure

Grasshopper file- Tensilestructure