preliminary assessment, week 5

15
NATURAL SYSTEM STUDIO Studio leaders: Stanislav Roudavski Gwyllim Jahn Nooshin Roohani Tezangi 565243

Upload: nooshin-roohani

Post on 12-Mar-2016

227 views

Category:

Documents


0 download

DESCRIPTION

Preliminary Assessment, Week 5

TRANSCRIPT

NATURAL SYSTEM STUDIO

Studio leaders:Stanislav Roudavski

Gwyllim Jahn

Nooshin Roohani Tezangi565243

This studio is a great chance to learn coding and scripting relevant to the digital archi-tecture and particular design. In this way, we try learn pro-cessing and different func-tions in order to create our own idea for this studio.

There are references to learn cod-ing and processing. I’m using Learning Processing and Emer-gent Technologies and Design books. Moreover, I’m using Pro-cessing website in order to find the answer for my mistakes and also OpenProcessing website to check the ideas and coding of other people.

We learned many functions through these refrences such as bouncing balls, gravity, random, array, loop, drops, walker, and so on. Further-more, We learned to animate the sketches according to the location of the mouse. Not only animate the sketches but also change the color of parameters of the sketches.

Functions:

// FUNCTIONS void run(){display();move();bounce();gravity();}

void gravity(){ speedY += 0.2;}

void move(){ x += speedX; y += speedY;}

void bounce(){ if(x>width || x<0){ speedX *= -1; }

if(y>height || y<0){ speedY *= -1; }}

void display(){ ellipse(x,y,20,20); }}

We can use random func-tion to creat random color and random size of parti-cles in our sketches.

ArrayList:

// DECLAREArrayList ballCollection;

void setup() { size(600, 600); smooth();

// INITIALIZE ballCollection = new ArrayList();

for ( int i = 0; i < 100; i++) { Ball myBall = new Ball(random(0, width), ran-dom(0, 200)); ballCollection.add(myBall); }}

void draw() { background(0);

// CALL FUNCTIONALITY for ( int i = 0; i < ballCollection.size(); i++) { Ball mb = (Ball) ballCollection.get(i); mb.run(); }}

After that, we learned some kind of function like array and arraylist in order to make the same shapes with less coding.

void draw() { w.step(); w.display();}

class Walker {int x,y;

Walker() { x = width/2;y = height/2;}

void display() { stroke(255);point(x,y);}

void step() {

int stepx = int(random(3))-1; int stepy = int(random(3))-1;x += stepx;y += stepy;}}

class Ball { // Zoog’s variables float x,y,w,h; // Zoog constructor Ball(float tempX, float tempY, float tempW, float tempH) { x = tempX; y = tempY; w = tempW; h = tempH; } // Move Zoog void jiggle(float speed) { // Change the location of Zoog randomly x = x + random(-1,1)*speed; y = y + random(-1,1)*speed; // Constrain Zoog to window x = constrain(x,0,width); y = constrain(y,0,height); } // Display Zoog void display() { stroke(0); line(pmouseX,pmouseY,x,y); }}

int ballCount = 7000;int ballSize = 2;int ballSpeed = 3; float[]xspeed = new float[ballCount];float[]yspeed = new float[ballCount];float[]xpos = new float[ballCount];float[]ypos = new float[ballCount];float[]wdth = new float[ballCount];float[]ht = new float[ballCount];int[]colors = new int[ballCount]; void setup() { size(592, 400); background(0); for (int i = 0; i < ballCount; i++) { xspeed[i] = random(1, ballSpeed); yspeed[i] = random(-ballSpeed, ballSpeed); wdth[i] = random(1, ballSize); ht[i] = wdth[i]; xpos[i] = width/2+random(-width/20, width/20); ypos[i] = height+random(-height/20, height/20); colors[i] = color(random(255), random(255), random(255)); fill(colors[i]); } noStroke(); frameRate(30);} void draw() { background(0); for (int i = 0; i < ballCount; i++) { fill(colors[i]); ellipse(xpos[i], ypos[i], wdth[i], ht[i]); xpos[i]+=sin(i)*xspeed[i]; ypos[i]+=cos(i)*yspeed[i]; if (xpos[i]+wdth[i]/2>=width || xpos[i]<=wdth[i]/2) { xspeed[i]*=-1; } if (ypos[i]+ht[i]/2>=height || ypos[i]<=ht[i]/2) { yspeed[i]*=-1; } }

Then I tried to search OpenProcessing website to find interesting sketches and listend to plethora-project website and I attempted to learn them and combine with other functions. On the other hand, I searched for some real project such as different pavilions in order to find some real project which are relevant to my sketshes.

CONTEMPLAY PAVILION

The complexity of the pavilion’s geometry creates a unique opportunity to undertake re-search through parametric modeling and digital fabrication. Parametric modeling consists of establishing a set of dynamic geometrical relationships to ultimately produce an entity with fixed dimensions. Its main advantage lies in rapid and flexible design exploration: designers can develop virtual prototypes, and simultaneously test the implications of changes on each of the multidisciplinary constraints shaping the project. The selection of the möbius strip as a formal generator for the project necessitated a design, which would eventually require large numbers of similar yet unique components to resolve its continuously changing cur-vature.

Parametric Design Studies on Novel Interiorities

Using a set of operations based on parametric component models and scripting, a rigor-ous re_evaluation and reinterpretation of the Gothic tectonic system is achieved. The re-search design process suggested in this thesis preparation document commences from basic parametric experimentations, which are based on the apprehension of the Gothic system as one of rigorous and consistent construction and articulation, as well as a system of force transmission and equilibrium. Further modeling and scripting experimentation with the con-cepts of the parameterization of the Gothic vault bay, of field component organizations, of globally affected field and mesh geometries, as well as coloration differentiation induced, form_generating patterns, inform the current system deployment tactics. The outcome of the aforementioned design research process will be the creation of interiorities of multi_layered complexity and differentiation.

Orna-mate ShadowsThe orientation and size of the sections which make up the walls fulfill the requirement for shadeduring the day and visibility of the sky at night without the necessity of adding or subtract-ing material as the sun sets. The form of the indi-vidualsections integrates the programmatic needs for dining with ornamentalprotrusions into a sin-gle language. Combined, the animation of these sectionsforms the language of the whole – one of continuity, movement and growth. By utiliz-ing local discontinuity, the walls express three au-tonomous elements while maintaining an overall coherence. The addition of the palm leaves at the ornamental protrusions enhances this language of growth while blurring the boundaries between manmade structure and nature.

In my opinion, the most interesting feature of processing and coding is that we can draw ran-dom shapes with random characteristics. Therefore, as a result, by learning processing and also looking these projects, I got the idea of having the shape of random parameters such as line with random angles. This shap can be a building or a pavilion or even a bridge.

float angle = 0.0; // Current anglefloat speed = 0.01; // Speed of motionfloat radius = 130.0; // Range of motionfloat sx ;float sy ;float hh = 0;color col;void setup() { size(925, 475); noStroke(); smooth(); inicia( random(5),random(2));} void draw() { angle += speed; println(“angle:;”+angle); float sinval = sin(angle/sy); float cosval = cos(angle); // Set the position of the small circle based on new // values from sine and cosine float x = width/2 + (sinval * radius); float y = height/2 + (cosval * radius); fill(255); // Set the position of the large circles based on the // new position of the small circle float x2 = x + cos(angle * sx) * radius ; float y2 = y + sin(angle * sy) * radius ; ellipse(x2, y2, 1, 1); // Draw larger circle //line if(hh<255){ hh+=1; } else{ hh=0; } col = color(0,0,100+hh,15); stroke(0,random(10,40)); line(x,y,x2,y2);} void inicia(float _sx, float _sy ){ background(255); sy=_sx; sx = _sy; println(“inicia : sx: “+sx +” sy:” + sy);}

Even lines can be any other perticles such as ellipse or rectangular or what ever with random angles and random size

float angle = 0.0; // Current anglefloat speed = 0.01; // Speed of motionfloat radius = 100.0; // Range of motionfloat sx ;float sy ;

void setup() { size(925, 475); noStroke(); smooth(); inicia( random(5), random(2));}

void draw() {

angle += speed; println(“angle:;”+angle);

float sinval = sin(angle/sy); float cosval = cos(angle);

// Set the position of the small circle based on new // values from sine and cosine float x = width/2 + (cosval * radius); float y = height/2 + (sinval * radius); fill(random(255));

// Set the position of the large circles based on the // new position of the small circle float x2 = x + cos(angle * sx) * radius ; float y2 = y + sin(angle * sy) * radius ; stroke(random(0)); rect(x2, y2, 80 , 10); // Draw lines}

void inicia(float _sx, float _sy ) { background(255); sy=_sx; sx = _sy;}