Issuu on Google+

NATURAL SYSTEM STUDIO Studio leaders: Stanislav Roudavski Gwyllim Jahn Setareh Ghasemi Motlagh 566988


BEGINING In Natural System Studio was an opportunity for me to learn processing. During this process I used Shiffman books like “Learning Processing”, “The Nature of Code”, lots of websites as “learning processing”, “openprocesding”, “processing”, “issue.com” and searching in so many different websites...!


Draw some shape.

Move the shape with the mouse. draw randomly woth moving the mouse moving shape by initializing variables

How did I start?! The method I used in learning processing was Shiffman’s method, so I started with “learning Processing” Book and “Processint website.

With variables I learned that how can i draw random shapes and random colors wich can appeares one by one. like the example bellow:

float r; float g; float b; float a; float diam; float x; float y; void setup() { size(200, 200); background(0); smooth(); } void draw() { // Fill all variables with random values r = random(255); g = random(255); b = random(255); a = random(255); diam = random(20); x = random(width); y = random(height); // Use values to draw an ellipse noStroke(); fill(r, g, b, a); rect(x, y, diam, diam); }


After that I continued learning with book and different tutorials; therefore I could improve in writing harder codes. but still in this stage all the codes which I have writen are already existing in Shiffman books or tutorials of the sites as (http://www. plethora-project.com/)

int i; int y; float r; float g; float b; size(300, 300); // Just setting up the size background(255); // Black background stroke(25); // Shapes have white lines for (i=0; i<300 ; i += 10) { for (y=300 ; y>0 ; y -= 10) { r = random (255); g = random (255); b = random (255);

}

}

fill(r, g, b); rect(i, y, 10, 10);


class Ball { // Zoogâ&#x20AC;&#x2122;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) { Ball ball; // Change the location of Zoog randomly void setup() { x = x + random(-1,1)*speed; size(200, 200); y = y + random(-1,1)*speed; background(0); // Constrain Zoog to window smooth(); x = constrain(x,0,width); ball = new Ball(100, 125, 60, 60); y = constrain(y,0,height); } } void draw() { // Display Zoog // mouseX position determines speed void display() { factor float factor = constrain(mouseX/10, stroke(255); 0, 5); point(x,y); ball.jiggle(factor); } ball.display(); } }


Array & ArrayList


After these I started to searching and looking at the others project in different sites as â&#x20AC;&#x153;www.openprocessing.orgâ&#x20AC;? and similar sites to see the abilities of the program and see what i can do with it with the thing that I know already. I chose the programs which i already had studied about it and tried to make difference on them as I wnted to. In the other hand I started to searching about the real project which were close to the codes which i had writen. to reach to my Idea.

Existing Programs of others with or without some differences


Existing Programs of others with or without some differences


And in the same time I was searching for the real project which are close to these kind of designs.

Like this â&#x20AC;&#x153;Bloomâ&#x20AC;? which is a maze in a children play grounds in some park.


Or this one which is a student-led initiative investigating new methods of practice. The project presented a unique opportunity for the students of the Directed Research Studio (DRS) of the McGill School of Architecture to learn through hands-on experience in an academic context. DRS masters students in coordination with the Facility for Architectural Research in Media and Mediation (FARMM) are responsible for the design, fabrication and assembly of the parametric pavilion.


after looking at these kind of project I reached to this Idea that this program has the speciality in designing irregular shapes and form. Therefore I came up with the idea of designing an architectural monoment. This monoment can be in a small size like a monoment for a park or a public area, or even it can be like a symbol for a city. to reach to this Idea I started to write codes in a similar ways to try to design something like this.


Codes:

float angle = 0.0; // Current angle float speed = 0.01; // Speed of motion float radius = 100.0; // Range of motion float sx ; float sy ; void setup() { size(925, 475); noStroke(); smooth(); inicia( random(5), random(2)); } void draw() { angle += speed; // Update the 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);

// 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(255); line(x2, y2, x, y); } void inicia(float _sx, float _sy ) { background(0); sy=_sx; sx = _sy; }

This random curves are the ability of this program which I’m gonna use. because it ia a potential that I couldn’t find in any other programs.


with making differences in the red part as fallo we can have different kind of shapes:

// 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(150)); beginShape(); vertex(300, 180); bezierVertex(random(150),random(1 50), x2 ,y2 , x, y ); endShape(); }


// 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(150), 0, 0); rect(x2, y2, 50 , 10); // Draw lines


Preliminary Assessment, Week 5,