Intro to Design Computation

Page 1

A PARAMETRIC LEARNING JOURNEY SUTD Intro to design computation 20.002 Report Jessie Tang 1000079


INTRODUCTION SUTD Intro to Design Computation 20.002 module focuses it’s teachings on several computational techniques based on the use of C# and Grasshopper Components. In this Module, learnings are carried out in the form of 3 projects and skills are accumulated throughout the process. Course Instructors: Sawako Kaijima Vernelle Noel Lennard Ong Asami Takahashi


1

UNDERSTANDING PARAMETRIC DESIGN

2

APPLYING PARAMETRIC DESIGN

CONTENTS PROJECT 1 COMPUTATIONAL WEAVING LAMPSHADE ideation

4

code design reflection

PROJECT 2 INTERFACE FACADE SYSTEM -

16

site analysis ideation code design reflection

PROJECT 3 SPACE PARTITION site analysis ideation experimentation code design fabrication reflection

32

3

FABRICATING PARAMETRIC DESIGN


UNDERSTANDING PARAMETRIC DESIGN PROJECT 1 is about discovering what parametric design can do for you, using weaving techniques. First we have a lampshade with 126 teeth and based on the sequence of the weave, we can achieve several different designs. TRANSITION This is not your usual lampshade. The simplicity is coupled with complexity as the pattern on the lampshade transits from crosses to lines to zigzag.



Like a drum too common

ideation manually connecting the teeth in 2D & 3D to explore the difference. In the 2D pattern, it is pretty dynamic, however in 3D, it is very regular.

Too orderly


The setup comprises of 2 wooden laser cut frames and 3 loose ribs. Via

experimentation,

we

each teeth only allows the string to loop 3 times.

found out that

WOODEN FRAME

THICK POLYESTER STRING


exploration we furthered our exploration both physically and via coding. various designs were explored as the basis for our concept. We found similarity amongst coded weaving patterns - uniformity throughout the exterior. we thought: why can’t we have a different perspective at every angle?


concept we realised from our exploration that changing the parameters of the sample code eventually only gives a rather organised uniform design. However the string is a very fluidic material.

thus we thought of mixing 2 different yet simple patterns together.


/*

FileName: weaving Author: Sawako Kaijima Edited by: Lynn Ong, Jessie Tang & Geraldine Quek

*/ int np = 126; // number of points int i = 0; // to name the variables

// to create empty pockets/list to store points Polyline pl = new Polyline(); // create an empty list for the points on top curve List<Point3d> p_top = new List<Point3d>(); // create an empty list for the points on bottom curve List<Point3d> p_bot = new List<Point3d>(); // create an empty list for the index (string) List<string> id = new List<string>(); //give the min and max point to the curve, 0~1 Interval iv = new Interval(0.0, 1.0); tc.Domain = iv; bc.Domain = iv; // the point3d along the curve. 1.0 - domain, 126 double dt = 1.0 / np; //np = 126 //i++ i+1 for (i = 0; i < np; i++) { p_top.Add(tc.PointAt(i * dt)); p_bot.Add(bc.PointAt(i * dt)); } // the top & bottom pts are created & stored in list // divide the circle to 5 segments (25 pts each) id.Add(“start”); // there are 2 patterns in the design. // in pattern 1, straight lines are formed when number is even and lines are twisted with +20 when its odd. for (i = 0; i < 26; i++) { if(i % 2 == 0){ // even numbers pl.Add(p_top[i]); id.Add(“top“ + i.ToString()); pl.Add(p_bot[(i + 2) % np]); id.Add(“bottom“ + ((i + 2) % np).ToString()); }

coding C# to achieve our desired results, we created a mixture in our code such that different patterns could morph into each other. we also tested the feasibility of it via our exploration process before creating the instructions.

start top bottom bottom top top bottom bottom top top bottom bottom top top bottom bottom top top bottom bottom top

0 2 21 1 2 4 23 3 4 6 25 5 6 8 27 7 8 10 29 9

top top bottom bottom top top bottom bottom top top bottom bottom top top bottom bottom top top bottom bottom top

51 16 18 37 17 18 20 39 19 20 22 41 21 22 24 43 23 24 26 45 25

ottom b bottom top top bottom bottom top top bottom bottom top top bottom bottom top top bottom bottom top top bottom

5 5 3 3 5 5 3 3 5 5 3 3 5 5 3 3 5 5 3 4 6

0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 0 0


}else{ // odd numbers twists to +20 at bottom pl.Add(p_bot[(i + 20) % np]); id.Add(“bottom“ + ((i + 20) % np).ToString()); pl.Add(p_top[i]); id.Add(“top“ + i.ToString()); } } for (i = 25; i < 51; i++) { // pattern 2 criss cross if(i % 2 == 0){ //even pl.Add(p_top[i]); id.Add(“top“ + i.ToString()); pl.Add(p_bot[(i + 20) % np]); id.Add(“bottom“ + ((i + 20) % np).ToString());

}

}else{ //odd pl.Add(p_bot[(i + 20) % np]); id.Add(“bottom“ + ((i + 20) % np).ToString()); pl.Add(p_top[i]); id.Add(“top“ + i.ToString()); }

for (i = 50; i < 76; i++) { // pattern 1 if(i % 2 == 0){ pl.Add(p_top[i]); id.Add(“top“ + i.ToString()); pl.Add(p_bot[(i + 2) % np]); id.Add(“bottom“ + ((i + 2) % np).ToString());

}

}else{ pl.Add(p_bot[(i + 20) % np]); id.Add(“bottom“ + ((i + 20) % np).ToString()); pl.Add(p_top[i]); id.Add(“top“ + i.ToString()); }

for (i = 70; i < 101; i++) { // pattern 2 if(i % 2 == 0){ pl.Add(p_top[i]); id.Add(“top“ + i.ToString()); pl.Add(p_bot[(i + 20) % np]); id.Add(“bottom“ + ((i + 20) % np).ToString()); }else{ pl.Add(p_bot[(i + 20) % np]); id.Add(“bottom“ + ((i + 20) % np).ToString()); pl.Add(p_top[i]);

id.Add(“top“ + i.ToString()); } } for (i = 100; i < 126; i++) { //pattern 1 if(i % 2 == 0){ pl.Add(p_top[i]); id.Add(“top“ + i.ToString()); pl.Add(p_bot[(i + 2) % np]); id.Add(“bottom“ + ((i + 2) % np).ToString()); }else{ pl.Add(p_bot[(i + 20) % np]); id.Add(“bottom“ + ((i + 20) % np).ToString()); pl.Add(p_top[i]); id.Add(“top“ + i.ToString()); }

} id.Add(“end”);

weave = pl; //polyline created index = id; //instruction


the design a lampshade doesn’t always have to have a uniform shape. We hoped to achieve a different light and spatial quality the lampshade provides by offering a varying pattern across the lampshade. Each angle offers a different pattern and experience for the user. From exploring linear patterns to 3D uniform patterns, we decided to merge the qualities of both in design 6 of Design Exploration. By tweaking the values we were able to get a well composed transition from single slanted lines to double slanted lines to single cross lines to double cross lines.



learning reflections this is a interesting process, from a total stranger with grasshopper to realising its potential. joining lines manually would have made the entire modelling process a much more tedious one. even though we were only required to manipulate the code into our desired design, it is still very challenging to achieve it. our code is more of a hard coding and based off our segmentation of it in a 3:2 proportion. Yet there is potential for this code to be adapted into a more fluid one. we are glad we achieved the simplicity yet unique design that we wanted.


acknowledgements this project would not be possible without my dearest teammates:

Lynn Ong

Geraldine Quek


APPLYING PARAMETRIC DESIGN PROJECT 2 - INTERFACE is about exploring the most efficient and effective method of modeling your design. Parametric Design comes in various forms - grasshopper components, C# coding, python coding etc... via the familiarization of these tools, how can we then achieve what we want to make in rhino? RESPONSIVE PARTITION a reflective partition which from far blends right into the landscape but as one approaches, it opens up to clarity. a smart use of paper folding techniques where shadows responds to light hence creating dynamism to the facade.



site analysis the site is at singapore botanical gardens, beside the lake near the musical stage. the midgrounds of the site forms a interesting curvature which eventually formed the basic form of my design. another thing to note is that this site connects directly to the water which is non - accessible. Perhaps a barrier needs to be put in place. in the rhino model, we were required to respond to one of the parameters, the exterior light/interior light/ human.



ideation as the theme of project 2 INTERFACE suggests, it is a boundary or a transition where the activity changes from one form to another. change, seem to be the only element we need to consider. from the site, we were given several parameters as our input for a potential interface. initially I explored how a facade could interact parametrically with lighting and visual connection to humans. as i developed my design further, I realised a more physical interaction with humans would be more impactful to my design. my final design will take an eventual form formed from the site.


IDEA 1

FINAL

IDEA 2


coding/grasshopper components to achieve the design I envisioned, i first looked into how to create the zig zag pattern in idea 2. the zig zag accordion fold was chosen as the pattern due to its flexibility as well as its ability to interact statically with light. this exploration led me to discover how to use box-morphing techniques in grasshopper. with this, I am able to tessalate my surface with the pattern I want. Next is exploring how to make my interface respond to human positions.



coding to achieve a real change in the morphed surface, grasshopper components alone would not suffice. as such, a simple C# code would help. based on a vector point away from each points on the curve of the opening, we can obtain information such as distance away from the facade. with this input, we can hence make a code that translates this distance into how much opening to give to the facade. as the box morph only works on surfaces, to create a hole in the middle of the surface I would need to split the surface into 2 with one curve upwards and one downwards to make the opening.


//Written by: Jessie Tang //For Intro to Design Computation Assignment 2 - INTERFACE //This code translates point on curve based on distance of human to wall //Inputs: // v = vector of person p and point q // q = point on splitting curve // p = location point of human // r1 = new point on curve Point3d r1 = new Point3d(); double mindist = 5000; if(v.Length < mindist ) { //If human is within minimum distance if (v.Length > 0){ //If human is on the right side of the wall r1.X = q.X; r1.Y = q.Y; r1.Z = (q.Z - (mindist - v.Length) / 3 //applying transformation in the z axis ); } else{ r1 = q; // To ensure that the surface only opens when above conditions are met. } } else { r1 = q; } A = r1;


coding _ adjustments to simulate response to human interaction, we need to create a simulation of human movements first. to achieve this, we map the human as a point onto a curve and then translate the human along this curve. we can also translate the human along a straight line approaching the site to simulate the movements upon approach.



the design a collapsable parametric facade that responds to both human interaction and interaction with the environmental lighting. acts as a perforated screening when viewed from far, yet is like a sculpture when it’s near. the shadow patterns on the folds provides a dynamic definition to its shape.



learning reflection this exercise challenges alot on self exploration to solving problems, especially code related problems. although the sample codes provided gave a good foundation to several designs, it turned out to be better if we generate our code from scratch. I also realised that there is no one way of creating the code. one can always innovate and strive to make the code shorter or simpler. My initial setup was very complicated, with 12 predefined points which i then changed to a simpler one by dividing a curve into its constituent points, then adjusting the points using C# code. however looking at other people’s design made me realise, design can be more radical and more things can definitely be done.



FABRICATING PARAMETRIC DESIGN PROJECT 3 - STRUCTURE OF SPACE is about tranfering digital results into physical fabrication parametrically. this is especially useful for highly complex structures where many many units needs to be combined and assembled in an organised way. CAVERN a smart partitioning system that infuses creativity and exploration to the space.



site analysis the site given is a physical site, situated in SUTD’s 2nd level, IDC. The site itself is rather special, unlike other places in the campus, featuring plenty of porosity. the emptyness of the exhibition area also indirectly created a very unwelcoming space that connects to the discussion area. we found that this with the undulating ceiling, makes a very raw experience. with this, we decided on a rather primal theme - cavern. the cave is similar, a foreign space, which is ambiguous. it may be the habitat for an indefinite amount of time. we have limited visual connection to the outer world and sometimes we just want to hide in our cave to escape from the real life.


ARTIFICIAL LIGHTING NATURAL LIGHTING

IDC FAB LAB EXHIBITION SPACE

WORKING SPACE



ideation our group decided that there is a need for a private space for the exhibition where visitors to this area can explore different possibilities in their quiet corner.This could also be a passive place where Idea sharing can take place. upon deliberating on a form that eventually will carry certain products, we designed a spiral like illustration based on the idea of a collapsable basket with spiraling structures. we found that the spirals naturally forms a conical shape like cave stalatices and it is able to be formed from a 2D structure. this would definitely make our


experimentation we only had a rough idea on how it works, but whether reality is as perfect as how we think is another matter. hence we need to test firstly whether it works as a partition, secondly whether it performs the way we expect it to and thirdly what material works best. so i tested out various laser cut samples based on SHAPE, SIZE, and MATERIALS to see their relationships. based on their performance, our group decided on the triangular shape with varying widths. this is then followed by a test using both grey boards and museum boards.


Final Shape - Triangle Final width - varying widths by exponential curve

A more regular expansion downwards

I envisioned its potential as a product display system, but too many things were happening around, thus making our concept not very clear


GREY BOARD 1.55mm

More even tone More RAW finish SAME STRETCH QUALITY

MUSEUM BOARD 1mm

Burnt marks more obvious Dirt marks more obvious Lighter

MUSEUM BOARD 2mm BETTER STRETCH QUALITY


TOP MORE ELONGATED When we tried with the bigger module of about 40mm, it turn out that the outer radius was tooo big and it starts to sag down alot more than the even distribution we hoped. hence we eventually decided on a thicker material to retain rigidity.

Top & Bottom Equal

BOTTOM MORE COMPRESSED

MORE EVEN Top Smaller Bottom Bigger


ends are fixed at 5mm to prevent breakages

fabrication based coding

fillet edge to prevent hazards

twin holes at each edge for fishing line to loop

to create the specific cutting for fabrication, we would require the help of coding to parametrically determine the shape and size of our structures. after obtaining the desired exponential decend in the widths, i bake it to continue editing it in rhino to form the final laser cut file. i created the 2D spiral by frist creating multiple equilateral triangles based on the exponential equation. from the triangular curves I could then find the edge points and connect them by lines. the last 2 connection points i offset them by 1 position such that the lines are continuously connected.



3D model coding part of the requirement required a comparision between 3D model and physical modeling. Thus modeling this system in rhino proved to be a challenge to my teammates. to simplify the process, we split up into 2 codes, one looking at the macro view of the arrangement of the structures while the other looks into the micro view of predicting how the structure performs. both codes made use of the weaving algorithm taught for assignment 1, by inputing an equation and obtaining points on the curve. for the micro code, interesting detail such as adding weight as a parameter that is affecting the structure.


Creating the conical helix using parametric equations: X= t*sin(a*t) Y=t*cos(b*t) Z=t3

1. Creating nodes on the helix using the weaving code, then joining each node together to form the triangular spirals. 2.Resultant geometry is inputted into the ‘node-edge’ code to simulate the spring extension due to gravity.


/* Filename:tryout2 Author: Sawako Kaijima Edited by: Lee Fu Hui */ int i = 0; int j; if (reset) { nodes.Clear(); edges.Clear(); } if(nodes.Count == 0){ List<Point3d> curvept = new List<Point3d>(); List<string> id = new List<string>(); Interval iv = new Interval(0.0, 1.0); curve.Domain = iv; Polyline pl = new Polyline(); double dtt = 1.0 / np; for (i = 0; i < np; i++ ) { curvept.Add(curve.PointAt(i * dtt)); //create points on curve that is i*dtt distance apart } id.Add(“start”); for (i = 0; i < np ; i += a ){ pl.Add(curvept[i]); //joining the points on helix with a polyline id.Add(i.ToString()); for (j = 0; j < curvept.Count; j++){ nodes.Add(new Node(new Point3d(curvept[j].X, curvept[j].Y, 0.0), 1.0)); nodes[nodes.Count - 1].w = (double) ( curvept.Count - j) * 1.3; //note if(j != 0){ edges.Add(new Edge(nodes[j - 1], nodes[j], 1.0, (nodes[j - 1].p - nodes[j].p).Length)); } nodes[nodes.Count - 1].fix = true; }


//............................Add Forces i = 0; foreach(Node n in nodes){ n.ApplyForce(dt, damping, grav, attractor); if(n.w > 0.0){ //note n.w -= 0.00015 * (nodes.Count - i) * (nodes.Count - i); } i++; } for (j = 0; j < edges.Count; j++){ //note if(edges[j].vec.Z > edges[j].L0 * 0.01){ edges[j].n0.f += Vector3d.ZAxis * ( edges[j].vec.Z );

the code this code integrated many of the concepts learnt throughout the semester and is well composed by fu hui, our chief programmer.

if (edges[j].n0.f.Z > 0.0) edges[j].n0.f.Z = 0; } edges[j].ApplySpringForce(); }


the design although it is seemingly sparse, it defines a space in its own way. the ground plates are significantly prominent, acting like a circulation guide while the dense portions prevents physical passage hence creating light boundary. a more condensed structure may be more significant for our design if we had more units to play with. another way is to just have hanging structures from the ceiling rather than both ways. we will get a denser ceiling but we will lose the coloumn effect. besides all the qualities, it is also very compact and easy to setup. it takes up less space than any other exhibits when compressed.


light boundary

defines circulation


the fabrication we have a simple fabrication process, as all our units are the same. we only fabricated 16 units, 8 coloumns using the budget given. however the nature of the laser cutter leaves dust marks on the units upon cutting and hence cleaning is a necessary process in order to obtain a good quality result



learning reflection teamwork is never obligatory, but we made it work well. being in such a big group has been the biggest challenge in this exercise. things could not be firmed up or settled due to plenty of miscommunication etc. we had a good distribution of workload, with members willing to help one another in terms of fabrication and coding. it is our hard work and unity that led us to decide on a simple yet unique structure that resulted in a efficient submission. i was surprised that everything went according to plan and we don’t have to struggle wiht coming out with the product at the last minute. more thought could be put into the presentation though. and we could be more proactive with our critisisms about the sparsity issue. all in all it was interesting working with different people.


acknowledgements this project would not be possible without my dearest teammates:

Lilliani

Asmidah

Yee Kuan

Fu Hui

Judaxil LEADER



ABOUT THE AUTHOR: JESSIE TANG SUTD Undergraduate Year of 2015 (ASD) SOPHMORE YEAR (Section 4, Lab 2) Dislikes Studying, Loves Fabrication + other hands on stuff Hopes to open a cafe after graduation ^^


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.