NATURAL SYSTEM STUDIO Semester 2 2012 Studio Leaders: Stanislav Roudavski & Gwyllim John Student: SetarehGhaseniMotlagh (566988)

Final ALbume, Natural system studio

Embed Size (px)

DESCRIPTION

its a my final album for natural system studio

Citation preview

Page 1: Final ALbume, Natural system studio

NATURAL SYSTEM STUDIO

Semester 2 2012

Studio Leaders: Stanislav Roudavski & Gwyllim John

Student: SetarehGhaseniMotlagh (566988)

Page 2: Final ALbume, Natural system studio

1- NATURAL SYSTEMS 2- COMPLEXITY & EMERGENCE 3- NATURAL SYSTEMS AND ARCHITECTURE

4 -PROGRAMMING AND SCRIPT-ING

5- ARCHITECTURAL IDEAS 6- DEGITAL ARCHITECTURAL DESIGN

8- PROBABILITY 9- PARTICLE SYSTEMS

10- OSCILLATION 11- AUTONOMOUS AGENTS 12- CELLULAR AUTOMATA

13- FRACTALS 14- GENETIC ALGORITHM 15- NEURAL NETWORK

7- STUDIO AIM AND APPROACH

TABLEOF

CONTENTS

Page 3: Final ALbume, Natural system studio

living organisms can be regards as systems, and these systems acquire their complex forms and patterns of behavior through the interactions. In space and over time, of their components.1

People have been turning to nature for inspiration to help them solve prob-lems for millions of years. From buildings and bridges to materials and medicine – examining the design of nature has aided in the de-velopment of almost every aspect of our lives, and most of us – often without realizing – benefit from these inspired revelations several times a day. Designers, scientist, and engineers continue to study the complex structures found in nature to create greener and more efficient products and process for our homes and lives.For example:

Velcro - Inspired by Burrs: Velcro was invented in 1941 by Swiss engi-neer George de Mestral. Mestral first got the idea for this new material from the burrs that were often stuck to his dog’s hair. When he placed the burrs under a microscope he noticed tiny hooks at the end of each spine. These miniature hooks easily caught on to anything shaped like a loop like animal fur, clothing, or hair.

Improved Wind Turbines - Inspired by Fins, Tails and Flippers: By mimick-ing the characteristics of whales’ fins, tails and flippers, engineers have been able to design more efficient wind turbines. Toronto-based com-pany Whalepower has come up with a revolutionary blade design that has been shown to increase annual electrical production by 20% while greatly reducing noise. This design can also be used on fans, pumps, and compressors. 2 

1. NATURAL SYSTEMS

1.1. Why Following the Nature

1- Morphogenesis and the mathematics of Emergence / Michea Weinstock2- Design Inspiration from Nature – Biomimicry for a Better Planet / by Rebecca

Paul, 07.16.10 / This article is underwritten by Veer.com. / BIOMIMICRY design inspiration from nature.

http://inhabitat.com/finding-design-inspiration-in-nature-biomimicry-for-a-better-planet/

Image 1: Velcro - Inspired by BurrsImage 2: Improved Wind Turbines - Inspired by Fins, Tails and Flippers

1

2

1 2

Page 4: Final ALbume, Natural system studio

Now if we decide to describe the universe with this system, we will find out at each level of understanding, traditional scientists study two types of phenomena: agents (molecules, cells, etc.) and interactions of agents (chemical reactions, immune system responses, etc.).

Studying agents in isolation is a useful way of discovering the form and the function of agent. But to have complete and perfect realization of how an agent behaves in no way guarantees we will understand how this single agent will behave for all time or in the context of other agents; Therefore, we will need to study both part (agents and their reactions) together to comprehend its behaves.

We also know that agents that exist on one level of understanding are very different from agents on another level: cells are not organs, organs are not animals, and animals are not species. Yet surprisingly the interactions on one level of understanding are often very similar to the interactions on other levels. How so?! Why do we find self-similar structure in biology such as trees?! How does this relate to the self-similarity found in inanimate objects such as snowflakes?! And so many similar questions.

The answers to all of these questions are apparently related to one sim-ple fact: Nature is frugal. Of all the possible rules that could be used to govern the interactions among agents, scientists are finding that nature often uses the simplest. More than that, the same rules are repeatedly used in very different places.1

like the landscape gardener, the lot of the generative artists is to take naturally evolving phenomena and fashion them into something aestheti-cally pleasing. It’s finding that point of balance between the beautiful unruliness of the nature world and the desired order of our ape brains. A garden that is unkempt and overgrown is unpleasing to us because it’s too far into the realm of the chaotic, whereas concreting the area instead is the tidiest, most ordered of solutions, which also removes all the beauty.2

1.2. How to Study the Nature

1.3. Reason of the Beauty of Nature

Images: Agents in different levels 1- The computational beauty of nature / Garry William flake / Chapter 16: Autono-mous Agents and self-organization

2- Generative Art, a practical guid using processing / Matt Pearson

3 4

Page 5: Final ALbume, Natural system studio

There is another concept that we need to define for this album and that is Emergence and Complexity. Emergence is a concept that appear in the literature of many disciplines, and is strongly correlated to evo-lutionary biology, artificial intelligence, complexity theory, cybernet-ics and general systems theory. In the simplest commonly used definition, emergence is said to be the properties of a system that cannot be deduced from its components, something more than the sum of its parts. This description is perhaps true in a very general sense, but rather too vague to be useful for the purpose of design research in architecture. One can truthfully say, for example, that every higher-level physical property can be described as a consequence of lower-level properties. In the sciences, the term refers to the production of forms and behavior by natural systems that have an irreducible complexity, and also to the mathematical approach necessary to model such process in computational environments.

The task for architecture is to delineate a working concept of emergence and to outline the mathematics and processes that can make it useful to us as designers. This means we must search for the principles and dynamics of organization and interaction, for the mathematical laws that natural systems obey and that can be utilized by artificially constructed systems.

Mathematics has always played a critical role in architecture, but the character and function of mathematics in relation to the theories and the material objects of architecture have varied so that a definitive account remains elusive. It is evident that there is a pressing need for a more developed mathematical approach in current

architecture. First, the liberation of tectonic form the economic strait-jacket of orthogonal geometry demands more precision in the interface between architectural definition of form and the computer-driven fabri-cation process of manufacturing constructors. Second, the engineering design for the complex geometries of contemporary tectonic must begin from a definitive mathematical base. And third, there is a lacuna in the theoretical body of architecture, an absence that is marked by the proliferation of design processes that borrow the appearance of scien-tific methods yet lack their clarity of purpose, mathematical instruments and theoretical integrity.1

2. COMPLEXITY & EMERGENCE

1- Morphogenesis and the mathematics of Emergence / Michea Weinstock

5 6

Page 6: Final ALbume, Natural system studio

Turning to nature to solve our problems is not peculiar to industry. It in-fluence all aspects of our lives. And architecture as a one of the most im-portant factors of our lives which define our lifestyle, is not exception. On of the most famous architects in this field is Iraqi-British Architect, Zaha Hadid. The authority of nature is visible in her designed forms and more than that in intelligent facades and technical services of her buildings.

3. NATURAL SYSTEMS AND ARCHITECTURE

Changdu Contemporary Art Centre by Zaha Hadid Architects Zaha Hadid Architects have unveiled their design for the largest cultural building in China, to be located in Chengdu in Sichuan Province. The Chengdu Contempo-

rary Art Centre will comprise three auditoria, an art museum, exhibition space and conference centre, plus restaurants, bars and shops. The facade

will be covered in criss-crossing louvres to provide shade from the sun.

7 8

Page 7: Final ALbume, Natural system studio

First photograohs of Eli and Edythe Broad Art Museum by Zaha Hadid unveiledNews (dezeen magazine, 17 october 2012): Michigan State University has unveiled

the first photographs of its Zaha Hadid-designed museum of contemporary art, which opens to the public next month. Featuring a pleated stainless steel facade, the Eli and Edythe Broad Art Museum stands in contrast to the brick buildings of

the university's Collegiate Gothic north campus. Zaha Hadid won a competition in 2008 to design the museum, which contains 1600 square metres of exhibition

space, alongside an education wing, study centre, cafe, shop and outdoor sculpture garden. The three-storey building has one basement floor and features double-

height galleries for showing modern art, photography, new media and works on paper.

The museum opens on 9 November with the inaugural exhibitions Global Groove 1973/2012, an exploration into current trends in video art, and In Search of Time,

which investigates the relationship to time and memory in art.

910

Page 8: Final ALbume, Natural system studio

Jesolo Magica by Zaha Hadid ArchitectsZaha Hadid Architects have designed a retail and business centre for the resort of Jesolo near Venice in Italy. Called Jesolo Magica, the project will include shops,

bars, restaurants, offices, a hotel, a congress centre and health centre. The building is due for completion in 2014.

Zaha Hadid and Suprematism at Galerie Gmurzynska ZurichZaha Hadid has curated and designed an exhibition at Galerie Gmurzynska Zu-

rich that juxtaposes her own work with early twentieth-century Russian art pieces. Entitled Zaha Hadid and Suprematism, the show follows Hadid�s continu-ing interest in the Russian avant-garde, first explored with her graduation

project in 1976-77.

11 12

Page 9: Final ALbume, Natural system studio

There is also an international New York-based competition in natural system, D3 Natural System Competition.he competition invites architects, designers, engineers, and students to collectively explore the potential for analyzing, documenting, and de-ploying nature-based, sustainable influences in urbanism, architec-ture, interiors, and designed objects.

Image 1: First Prize 2012: Young Bum Kim, Hung Kit Yuen; Courtesy of d3Image 2: Second Prize 2012: Erin Saven, Wy-men Loh; Courtesy of d3

Image 3: 1st prize, 2011 - Entropic Industries/Jared Winchester, USAImage 4: 2nd prize, 2011 - Chia-Hao Lai, TAIWAN

1

2

3

4

13 14

Page 10: Final ALbume, Natural system studio

Architects couldn't design these kind of building with ordinary software, they had to find new ways to design a program that they need; Therefore, they started Scripting and even in some higher levels, programming.

Scripting is the capability offered by almost all design software pack-ages that allows the user to adapt, customize or completely reconfigure software around their own predilections and modes of working. At its most demanding for the emerging connoisseur, scripting can refer to higher-level computer programming where, in the ‘open source’ environ-ment, ‘libraries’ of function can be combined with preconfigured routines (algorithms) as a means to produce manufacturer-independent digital design capability. At its simplest, therefore, scripting affords a signifi-cantly deeper engagement between the computer and user by automat-ing routine aspects and repetitive activities, thus facilitating a far greater range of potential outcomes for the same investment in time. In the other word, To script is to write a screenplay or dialogue from which a play might be preformed.

Scripting is not new to design and was originally considered the task of a specialist; being taught to program computers in any way was not part of a design education. It is only recently that there has been a suffi-cient groundswell of interest to prompt change. Many designers are now aware of the potential of scripting, but it is still seen as a difficult arena to enter.

Scripting culture considers the implications of lower-level computer

programming (scripting) as it becomes more widely taken up and more confidently embedded into the ‘design process.

At a semantic level it is possible that the designer less likely to flinch at the term scripting that they might at the term programming, for it is quite clear that most of the designers who use computers as a core part of their digital practice do not automatically turn to programming to form part of their repertoires.

Programming language is, after all, just another language. And a lan-guage can be spoken in many different ways, with variety of accents or inflections. The programming language differs from languages such as English, German, and French only in that it’s intended to facilitate com-munication between humans and machines, rather than humans and other humans. Because of this necessary of human-to-machine commu-nication, we wouldn’t imagine that we could use a language like Java or C++ to write a poem. But if a language isn’t capable of poetry, it has clearly lost its relevance on the human side of the equation.

My conjecture is that code can be poetry, and code can be fun. But we may have to sacrifice some of the rigidity, good design, and best prac tices of professional, commercial programming to enable this. 1

some may think there is something counterintuitive about using a pro-gramming language as an artistic tool, like using a forklift to perform a ballet or a T-square to draw a curve. This is because, traditionally,

4. PROGRAMMING & SDCRIPTING

4.1. Scripting Culture

4.2. Programming Language

1- Scripting cultures : architectural design and programming / Mark Burry / 2011

15 16

Page 11: Final ALbume, Natural system studio

programming languages have been the realm of logic, structure, and organization. They’re used to for problem solving, modeling data, and accurate simulations. Highly logical activities such as these inevitably make coding unattractive to more creative thinkers. This is a waste. Pro-gramming languages are just tools; they don’t belong to one community or another. They can be equally effective in the hands of designer or in the hands of a systems architect, but the works created by these tool us-ers will be radically different. 1

1- Generative Art, a practical guid using processing / Matt Pearson

17 18

Page 12: Final ALbume, Natural system studio

Let us take a moment and step back and look at the whole changes that has happened in architectural theories and Ideas in past decade. This first wave of practice-driven educational models has brought professional education in architecture to a new frontier. This condition now demands a process of redefinition of the intellectual and cultural frameworks of architecture as well as the theoretical foundations for architectural and design education. The need to accommodate the scale of change in professional practice with its new demands of requisite knowledge and skills presents this generation of design pioneers with a new challenge: to create a theory of architectural education and design pedagogy that acknowledges the scale and qualities of theoretical, pro-fessional, and technological changes that digitally mediated architecture is beginning to exert. In the case of such a broad cultural shift there is a need, first of all, to reconsider the theoretical basis, its related knowledge and its design methods in relation to emergent digital technologies.

Following this basic assumption that change in the professional culture of architecture is substantive in that it transcends stylistic agenda, it has now become important to re-consider certain of the existing theories of design and education. Concepts such as design thinking (Rowe, 1987) have in the recent past been part of a powerful cognitive model of design. The term ‘designerly ways of knowing’ (Cross, 1982, 2007) is particularly significant, since it also introduces the notion of knowledge in design and what this might imply with respect to new approaches of digital de-sign education.

If digital design knowledge constitutes among other things a new set of conceptualizations, including ideas related to the meaning of form,

nature of functional and formal knowledge, and the models of generative processes, there is a need for an encompassing theory of digital design pedagogy that accommodates this modified knowledge base.1

Types of changes that had happened in last decade are as follow:1- Changes in design media (from paper-based to computer-based)2- Changes in the architectural knowledge base3- Changes in processes.

5. ARCHITECTURAL IDEAS

1- Digital architecture as a challenge for design pedagogy: theory, knowledge, models and medium / Rivka Oxman / Faculty of Architecture and Town Planning,

Technion, Institute of Technology / Haifa , Israel / 2007

19 20

Page 13: Final ALbume, Natural system studio

There is a tension between design automation and digital speculation within a context of a residual undercurrent of general resentment over the computer’s arrival in the first place (granted, barely perceptible now, but present all the same).

For the past two decades the economic returns of using computers have been increasingly undeniable to nearly everyone, and few would disa-gree with any assertion that they are here to stay, but there remains the tension I refer to above, between the computer as practical aid-de-camp, and computer as sigital design agent. I see merit in both schools of thought, and scripting as a effective mediator.1

The importance of digital design is because of its result which is unique formal contents and also unique architectural concepts. And every one who is studying this knowledge should understand that digital concepts are integrated as a unique body of knowledge consist-ing of the relationship between digital architectural knowledge and digital design skill.

Design computation and digital design had an influence on the develop-ment of theoretical; computational and cognitive approaches by various researchers as a foundation for design education and pedagogy (Knight 1999; Oxman, 1999, 2001, 2004, 2006a,b,c; Cuff, 2001; Knight and Stiny, 2001; Ozkar, 2007). Others considered the role of data architecture and visualization as a foundation for education (Bermudez and Agutter, 2005), as well as developing a basis for curriculum construction (Mark et al., 2003; Kvan et al., 2004).2

6. DIGITAL ARCHITECTURAL DESIGN

1- Scripting cultures : architectural design and programming / Mark Burry / 20112- Digital architecture as a challenge for design pedagogy: theory, knowledge,

models and medium / Rivka Oxman / Faculty of Architecture and Town Planning, Technion, Institute of Technology / Haifa , Israel / 2007

21 22

Page 14: Final ALbume, Natural system studio

One of a major aims of the studio is to demonstrate the methodological relevance of the concept of processing sketches in relation to digital design processes. The following points enhance design exploration through digital processes:

- Formation, generation and performance are the motivating forces of digital design.- The coupling of these three processes with the new material sensibility is the frontier of design research.- First material, then selecting a digital design model, is suggested to be the methodological sequence of digital architectural design.

The project is started in two different parts, learning the processing program and searching about natural systems and digital design. In the learning part I used Shiffman's books - Learning Processing: A Beginner''s Guid to Programming Images, Animation and Interac-tion, Nature of Code - different web sites - processing, openprocessing, learning processing, etc,.

In the reaserch part I have used many different articles and books which i have menchened in this journal.

7. STUDIO AIM & APPROACH

Now let us start processing with processing softwar....!

23 24

Page 15: Final ALbume, Natural system studio

In this first sketch of the album I tried to simulate corals. But the reason of bringing it to the album is to explain how the each part of the codes work.

8. PROBABILITY

Up to Down, Frames No. : 0015, 0374, 0060, 0149

render();updatePos();flock(); }

//create a function called render. Set the fill to the agentColour and draw an ellipse. color change by time.void render(){agentColor = agentColor+ change;if (agentColor> 360){agentColor = 0;}fill(agentColor,90,70,transparency);ellipse (location.x, location.y, agentSize, agentSize);}

//create a function called updatePos. In this function we will move our agent, and perform a few checks to keep the agent on the screen.void updatePos() {location.add(velocity);if (location.x < 0){location.x = width;}if(location.x > width){

//define a new class, called Agent.class Agent{//class propertiesPVector location;PVector velocity;float agentSize;float agentColor = 1;float transparency = 50;float change = 0.3;// class constructorAgent (PVector LOCATION, float AGENTSIZE, int AGENTCOLOUR, PVector VELOCITY) {// using these parameters, assign values to each of the properties of our class. location = LOCATION;agentSize = AGENTSIZE;velocity = VELOCITY;}

�define the custom functions. create a new function called run and we will use this function to run all other functions.void run(){

25 26

Page 16: Final ALbume, Natural system studio

loc location.x = 0;}if(location.y < 0) {location.y = height;}if(location.y > height){ation.y = 0;}}

void flock(){// this will store the minimum distance to another agent.float minDist = 1000000;// Create a loop to pull agents our of our agent-Pop ArrayList one at a time.for(int i = 0; i <agentPop.size(); i++) {Agent a = (Agent) agentPop.get(i);// create a float to store the distance between this agent and the one we are currently looping through.float agentDist = location.dist(a.location);if(agentDist > 0){if(agentDist < minDist) {minDist = agentDist;}if(agentDist < align){PVector addVec = a.velocity.get();addVec.mult(falloff/agentDist);velocity.add(addVec);velocity.normalize();agentSize = agentSize-0.1;}if (agentDist < avoid){PVector addVec = a.location.get();addVec.sub(location);addVec.mult(falloff/agentDist);velocity.sub(addVec);velocity.normalize();}}}

agentSize+= 0.2;//creat a check to make limits for agent size.if(agentSize < 5){agentSize = 5;}if(agentSize > 10){agentSize = 10;}}if(agentSize > 10){

agentSize = 10;}}}

ArrayList agentPop = new ArrayList();//Create some global variables for our agents.float align = 15;float avoid = 10;float falloff = 1;float numAgents = 800;

void setup(){size(1200,200,P2D);background(0);noStroke();colorMode(HSB, 360, 100, 100);//Create a loop to generate our populationof agents.for(int i = 0; i < numAgents; i ++){PVector loc = new PVector(random(width), random(height),0);PVector vel = new PVector(random(-1,1),random(-1,1),0);float s = 5;int c = 255;Agent frank = new Agent(loc,s,c,vel);agentPop.add(frank);}}

void draw(){fill(0,5);rect(0,0,width,height);//Create a loop to pull agents our of our agent-Pop ArrayList one at a time. Call it “a”.for (int i = 0; i < agentPop.size(); i ++ ){Agent a = (Agent)agentPop.get(i);a.run();}}

Up to Down, Frames No. : 0239, 0374, 0623, 0838, 01950

27 28

Page 17: Final ALbume, Natural system studio

To creat nature like sketches, I designed this sketch to make a model such as rivers covergence.

29 30

Page 18: Final ALbume, Natural system studio

A particle system is a collection of many many minute particles that to-gether represent a fuzzy object. Over a period of time, particles are gen-erated into a system, move and change from within the system, and die from the system.” —William Reeves, “Particle Systems—a Technique for Modeling a Class of Fuzzy Objects,” ACM Transac-tions on Graphics 2:2 (April 1983), p. 92. Since the early 1980s, particle systems have been used in countless video games, animations, digital art pieces, and installations to model various irregular types of natural phenomena, such as fire, smoke, water-falls, fog, grass, bubbles, and so on. We have defined a particle system to be a collection of independent ob-jects, often represented by a simple shape or dot. 1

9. PARTICLE SYSTEMS

1- The nature of code / Daniel Shiffman / Chapter 4: Particle SystemsImage: Floral Radiography affords the possibility to take a glimpse into the internal architecture of the leaves, stems and flowers of Plants. Having the structure of fine gossamer, we might recall the delicate meshes of an output from a particle system

or render from a Perlin Noise experiment.

UK pavilion at shanghai world expo 2010the concept behind thomas heatherwick's UK pavilion at shanghai expo 2010, is an

enclosure that throws outwards from all sides, a mass of long radiating cilia. 

31 32

Page 19: Final ALbume, Natural system studio

To start working with particles, I defined a simple particle which I can add any function that I want to it, functions such as velocity.

9.1. Particle Systems in Processing

Left to Right and Up to Down: Frames No. : 0029, 0035, 0074, 0105, 0152, 0168, 0202, 0346

class Particle {PVector position;PVector velocity;Particle() {position = new PVector(random(0, width), random(0, height));velocity = new PVector(random(-1, 1), random(-1, 1));}void react(Particle p){float d = PVector.dist(position, p.position);float x = d - 100.0;PVector dir = PVector.sub(p.position, position);dir.normalize();dir.mult(x/1000.0);velocity.add(dir);bounce();velocity.mult(0.999);}void move(){position.add(velocity);}void draw(){noStroke();fill(255,0,0);ellipse(position.x, position.y, 25, 25);}void bounce(){if (position.x < 0 && velocity.x < 0)velocity.x -= velocity.x;if (position.y < 0 && velocity.y < 0)velocity.y = -velocity.y;if (position.x > width && velocity.x > 0)velocity.x = -velocity.x;if (position.y > height && velocity.y > 0)velocity.y = -velocity.y;}}

class ParticleSystem {Particle a;Particle b;// and every thing the same for Particle c and

Particle d tooPVector origin;ParticleSystem(PVector location) {origin = location.get();a = new Particle();b = new Particle();c = new Particle();d = new Particle();}void run() {a.react(b);b.react(a);c.react(d);d.react(c);a.move();b.move();c.move();d.move();stroke(128);line(a.position.x, a.position.y, b.position.x, b.position.y);stroke(128);line(c.position.x, c.position.y, d.position.x, d.position.y);a.draw();b.draw();c.draw();d.draw();}}

ParticleSystem ps;void setup(){size(400,400);smooth();ps = new ParticleSystem(new PVector(width/2,height/2));}void draw(){background(0);ps.run();}

33 34

Page 20: Final ALbume, Natural system studio

9.1.1. Adding Array and ArrayLlist 9.1.2. Adding Acceleration

Or Acceleration like bellow:void update(){

velocity.add(accelaration);velocity.mult(damping);location.add(velocity);

timer -= 1.0; }

Another functions that with can do with particles are making them more by adding array or arrayList to the codes like:

class ParticleSystem { Particle[] a = new Particle[10];Particle[] b = new Particle[10];

35 36

Page 21: Final ALbume, Natural system studio

10. OSCILLATION

Sketch 1: Left to Right, Frame No.: 0079,0254, 0466, 0988Sketch 2: Left to Right: Frame No.: 0202, 0550, 0963, 1768Sketch 3: Left to Right, Frame No.: 0069, 0203, 0621, 1145

void draw() {if (frameCount < iterations) {float x1 = ampx1*cos(omegax1*t+phix1)+width/2;float y1 = ampy1*sin(omegay1*t+phiy1)+height/2;float x2 = ampx2*cos(omegax2*t+phix2)+width/2;float y2 = ampy2*sin(omegay2*t+phiy2)+height/2;t += velocity;line(x1,y1,x2,y2);}}

1

void draw() {if (frameCount < iterations) {float x1 = ampx1*cos(omegax1*t+phix1)+width/2;float y1 = ampy1*sin(omegay1*t+phiy1)+height/2;float x2 = ampx2*cos(omegax2*t+phix2)+width/2;float y2 = ampy2*sin(omegay2*t+phiy2)+height/2;t += velocity;line(x1,y1,x2,y2);}}

2

void draw() {if (frameCount < iterations) {float x1 = ampx1*cos(omegax1*t+phix1)+width/2;float y1 = ampy1*sin(omegay1*t+phiy1)+height/2;float x2 = ampx2*cos(omegax2*t+phix2)+width/2;float y2 = ampy2*sin(omegay2*t+phiy2)+height/2;t += velocity;line(x1,y1,x2,y2);}}

3

37 38

Page 22: Final ALbume, Natural system studio

an autonomous agent is a unit that interacts with its environment but acts independently from all other agents in that it does not take com-mands from some seen or unseen leader, nor does an agent have some idea of a global plan that it should be following. in other words, an agent simply does its own thing.1

In the late 1980s, computer scientist Craig Reynolds developed algorith-mic steering behaviors for animated characters. These behaviors allowed individual elements to navigate their digital environments in a “lifelike” manner with strategies for fleeing, wandering, arriving, pursuing, evad-ing, etc. Used in the case of a single autonomous agent, these behaviors are fairly simple to understand and implement. In addition, by building a system of multiple characters that steer themselves according to simple, locally based rules, surprising levels of complexity emerge. The most famous example is Reynolds’s “boids” model for “flocking/swarming” behavior. We can see this lind of flocking behaviors in many different animals such as different type of birds, fishes etc.2

11. AUTONOMOUS AGENTS

1- The computational beauty of nature / Garry William flake / Chapter 16: Autono-mous Agents and self-organization

2- The nature of code / Daniel Shiffman / Chapter 6: Autonomous Agents

This is a 2 dimension sketch of the page !!! code.

39 40

Page 23: Final ALbume, Natural system studio

Simon Kim is an Assistant Professor at the University of Pennsylvania's School of Design, and a Registered Architect. After graduating from the Design Research Laboratory at the Architectural Association, he was a designer and project architect for the Office of Zaha Hadid, and a consultant to Gehry Technologies. Simon has taught studios and workshops at MIT, Yale University, and the AA.

Simon's recent research has been an engagement with electronic de-vices, dynamic environments and urban space as a continually medi-ated and perceptual frame. His post-graduate work at MIT was on cybernetics, machines, architecture, and their translated design experiences through interfaces. Simon has presented his research at conferences on Autonomous Agents and MultiAgent Systems, and Cy-bernetic Science and Systems Research. 1

Kokkugia is an international design and research practice that operates in arange of fields including architecture, urban design and industrial design. Kokkugia's proposal for the Taipei Performing Arts Center open competition attempts to dissolve the normative conditions of spatial en-closure to create a performance venue and public space of spectacle. In this center the roof and spatial lattice are generated through a network of semi-autonomous agents, seeding design intent at a micro scale.1

11.1. Autonomous Agents in Architecture

1- PennDesign / Simon Kimhttp://www.design.upenn.edu/people/kim_simon

1- Field studio for digital art and graphic design in London

41 42

Page 24: Final ALbume, Natural system studio

11.2. Flying birds

Flying birds

Left to Right and Up to Down: Frames No. : 0035, 0047, 0071, 0089, 0123, 0149, 0154, 0215, 0283, 0338, 0830, 0870

// The goal of this sketch is to imitate flocking of animals. In 3 dimension world with processing with defining Boid systems and these boids will move as follow.

class BoidList{ArrayList boids;float h;

BoidList(int n,float ih){boids = new ArrayList();h = ih;for(int i=0;i<n;i++)boids.add(new Boid(new PVector(width/2,height/2,600)));}

void add(){boids.add(new Boid(new PVector(width/2,height/2,600)));}

void addBoid(Boid b){boids.add(b);}

void run(boolean aW){for(int i=0;i<boids.size();i++){Boid tempBoid = (Boid)boids.get(i); tempBoid.h = h;tempBoid.avoidWalls = aW;tempBoid.run(boids);}}

Boid getBoid(int n){if(n<boids.size())return (Boid)boids.get(n);return null;}

void remove(int n){if(n<boids.size())boids.remove(n);}void remove(){if(boids.size()>0)boids.remove(boids.size()-1);}}

43 44

Page 25: Final ALbume, Natural system studio

11.3. Sands of Desert

And also it had been tried in this sketch to go further on using Autonomous Agents and simulate desert with making the number of agents millions and millions

45 46

Page 26: Final ALbume, Natural system studio

The formalism for cellular automata was invented by John von Neumann (with some suggestive help from his close friend Stanislaw Ulam) in the 1940s as a framework in which to study the process of reproduction.

Cellular automata is the computational method which can simulate the process of growth by describing a complex system by simple individuals following simple rules.

complex systems can consist of many very simple units that interact. The amount of interaction among agents partially determines the over-all behavior of the whole system. On one extreme, systems with little interaction fall into static patterns, while on the other extreme, over ac-tive systems boil with chaos. Between the two extremes is a region of criticality in which some very interesting things happen. A special type of cellular automata known as Game of Life, which is in the critical region, is able to produce self-replicating systems and roving creatures, but it is also capable of universal computation.1

cellular automaton is a model of a system of “cell” objects with the fol-lowing characteristics:

1- The cells live on a grid. 2- Each cell has a state. The number of state possibilities is typically finite. The simplest example has the two possibilities of one and zero (otherwise referred to as “on” and “off” or “alive” and “dead”). 3- Each cell has a neighborhood. This can be defined in any number of ways, but it is typically a list of adjacent cells.2

12. CELLULAR AUTOMATA

1- The computational beauty of nature / Garry William flake / Chapter 15: Cellular Automata

2- The nature of code / Daniel Shiffman / Chapter 7: Cellular Automata3- The nature of code / Daniel Shiffman / Chapter 7, Page 354 , 355

Examples of Cellular Automata in Nature

47 48

Page 27: Final ALbume, Natural system studio

The connection of cellular automata to architecture is the ability of cel-lular automata to generate patterns, from organized patterns we might be able to suggest architectural forms. Cellular automata, viewed as mathematical approach, differs from a traditional deterministic methods in that current results are the basis for the next set of results. This recur-sive replacement method continues until some state is achieved.

The pure mathematical translation of a cellular automata into architec-tural form includes a number issues that do not consider built reality. Issued such as, what should be the initial configuration of cells, which generation to stop at, neighborhood definition, type of growth rule, defini-tion of cell, shape of spatial unit, overall scale, support conditions, lattice configuration, restriction to number or area of placed cells, introduction of existing or fixed elements, other concepts for connecting cells, and other methods to interpret cell locations. All of these issues, and others, can be addressed at the beginning of such a generative process and be developed or revised as the investigation unfolds.1

12.1. Architectural Interpretation of Cellular Automata

1- Architectural Interpretation of Cellular Automata / Robert J. Krawczyk / College of Architecture, Illinois Institute of Technology, Chicago, IL, USA.

This project continues the exploration of a procedural approach to generating architectural form. Rather than work with surfaces as in the subdivision experi-

ments, this project uses volumetric cells - voxels - as its basic geometry. Two broad algorithms to control the interaction between voxels are explored:

cellular automata similar to the game of life, and reaction-diffusion processes / Michael Hansmeyer, Computational Architecture

49 50

Page 28: Final ALbume, Natural system studio

This installation was created using “Game of Life” cellular automaton devised by john conway to represent the emergence of self-organizing systems. a cellular automaton is a discrete model that consists of a regular grid of cells and simple rules, studied in many fields including mathematics and science. we developed

this system in 3d models and tested it across projects of various scales. / Game of Space, Saburo Sugita Architects + Miso

The pattern that is created by this system is a mix of order and chaos, which is similar to natural conditions. “game of space” expresses the complex phenomenon

that is generated by simple rules, yet also creates  architectural forms such as slabs and arches. since cellular automaton is a scale-less system,

we believe the system can work in different design fields. some different scaled figures are located inside this installation to visualize the world that is created by

cellular automaton.

51 52

Page 29: Final ALbume, Natural system studio

Based on these searches I chose Game of Life between different types of Cellular Automata to explore in Processing. The aim of this sketch is to produce a pattern similar to nature examples.1

12.2. Cellular Automata in Processing

1- Based on a sketch by Andrew Martinhttp://www.openprocessing.org/sketch/13660

Left to Right and Up to Down: Frames No. : 0035, 0047, 0071, 0089, 0123, 0149, 0154, 0215, 0283, 0338, 0830, 0870

// this is the part of the code that we define the way that how the cube is changing each time.

void updateCube(int k, int j, int i){

int result = 0;

result += isLive(k ,j ,i );result += isLive(k ,j ,i-1);result += isLive(k ,j ,i+1);result += isLive(k ,j-1,i );result += isLive(k ,j-1,i-1);result += isLive(k ,j-1,i+1);result += isLive(k ,j+1,i );result += isLive(k ,j+1,i-1);result += isLive(k ,j+1,i+1);result += isLive(k-1,j ,i );result += isLive(k-1,j ,i-1);result += isLive(k-1,j ,i+1);result += isLive(k-1,j-1,i );result += isLive(k-1,j-1,i-1);result += isLive(k-1,j-1,i+1);result += isLive(k-1,j+1,i );result += isLive(k-1,j+1,i-1);result += isLive(k-1,j+1,i+1);result += isLive(k+1,j ,i );result += isLive(k+1,j ,i-1);result += isLive(k+1,j ,i+1);result += isLive(k+1,j-1,i );result += isLive(k+1,j-1,i-1);result += isLive(k+1,j-1,i+1);result += isLive(k+1,j+1,i );result += isLive(k+1,j+1,i-1);result += isLive(k+1,j+1,i+1);

53 54

Page 30: Final ALbume, Natural system studio

12.3. Attraction and Repulsion in Universe

55 56

Page 31: Final ALbume, Natural system studio

void run() {for (int x=0;x<width;x++) {for (int y=0;y<height;y++) {cell[x][y][0]=cell[x][y][1];set(x, y, color(-cell[x][y][0], cell[x][y][1], cell[x][y][0])); } }for (int x=0;x<width;x++) {for (int y=0;y<height;y++) { float nVal=neighbors(x, y);cell[x][y][1]=nVal/8.05; } } }float neighbors(int x, int y) {float val;If(x>0&&x<width-1&&y>0&&y<height-1) {val=cell[x+1][y][0]+cell[x-1][y][0]+cell[x+1][y+1][0]+cell[x+1][y-1][0]+cell[x][y-1][0]+cell[x][y+1][0]+cell[x-1][y+1][0]+cell[x-1][y-1][0]; } else {val=0; }return val; }

Also made a model of the universe and gravitation of planets and stars. Each cell is representing a planet and the way that they move next to each other has shown in the part of cods as follow:

57 58

Page 32: Final ALbume, Natural system studio

As

The term fractal was coined by Benoit Mandelbrot to differentiate pure geometric figures from other types of figures that defy such simple clas-sification. First, fractals are self-simillar on multiple scales, in that a small portion of a fractal will often look similar to the whole object, much as a fern leaf looks very much like a fern tree. Second, fractals have a fractional dimension, as opposed to an integer dimension that idealize objects have. And because fractals are self-similar, all fractals have a built-in form of recursion which is sometimes explicitly visible and the other times a little more subtle.The first type of fractal can typically be defined by a program-like specification, while the second type of frac-tal is usually related to a random or stochastic process.Random processes in nature are often self-similar on varying temporal and spatial scales. A different type of random self-similarity can be found in clouds, mountains, streams, and coastlines.1

why are we concerned with this problem at all? On the conceptual level, the distinctive feature of the fractal approach to plant analysis is the em-phasis on self-similarity. It offers a key to the understanding of complex-looking, compound structures, and suggests the recursive developmental mechanisms through which these structures could have been created.2

13. FRACTALS

1. renderings of the compound leaf generated using iterated function systems / The Algorithmic Beauty of Plants / chapter 8 page 186

1- The computational beauty of nature / Garry William flake / Chapter 5 : Self-Similarity and Fractal Geometry

2- The Algorithmic Beauty of Plants (chapter 8) / printed by Springer Verlag in 1990 (second printing 1996) / Algorithmic Botany, the website of the University of

Calgary

1

59 60

Page 33: Final ALbume, Natural system studio

Architectural forms are handmade and thus very much based in Euclid-ean geometry, but we can find some fractals components in architecture, too.

13.1. Fractals in Architecture

6- Lab Architecture Studio, Ronald Bates und Peter Davidson: Melbourne Federa-tion Square, 1997-2002

7-Eiffel Tower Paris8- Steven Holl, Simmons Hall, Massachusetts Institute of technology (MIT)

9- Indian Hindu Temple

1- Floor of the cathedral of Anagni2- The Sacred Stupa Pha That Luang - Vientane (Laos)

3- Pont du Gard 4- Notre Dame de Paris5- Indian Hindu Temple

1 3

2 4

5

6

7

8

9

61 62

Page 34: Final ALbume, Natural system studio

As I have notice by studying about Fractals, this is a good approach to simulate the complex systems of the nature. I started iwith easy codes to create models of nature examples such as trees (code $ figure (1))

13.2. Fractal in Processing

(1)class Branch {PVector loc;PVector vel;loat timer;float timerstart;Branch(PVector l, PVector v,float n) {loc = l.get();vel = v.get();timerstart = n;timer = timerstart; }void update() {void render() {fill(0);noStroke();ellipseMode(CENTER);ellipse(loc.x,loc.y,2,2);}boolean timeToBranch() {timer--;f (timer < 0) {return true; } else {return false;}}Branch branch(float angle) {float theta = vel.heading2D();float mag = vel.mag();theta += radians(angle);PVector newvel =new Pvector(mag*cos(theta),mag*sin(theta));return new Branch(loc,newvel,timerstart*0.66f);}}ArrayList a;void setup() {size(600,800);background(255);

a = new ArrayList();Branch b = new Branch(new PVector(width/2,height),new PVector(0f,-0.5),400);a.add(b);}void draw() {if (a.size() < 1024) {for (int i = a.size()-1; i >= 0; i--) {Branch b = (Branch) a.get(i);b.update();b.render();if (b.timeToBranch()) {a.remove(i); a.add(b.branch( 30f)); a.add(b.branch(-25f)); }}

different parts such as leafs to this simple code with adding a class (Codes and figure (2)), or making it 3D (figure(3))

class Leaf {PVector loc;Leaf(PVector l) {oc = l.get(); }

void display() {noStroke();fill(50,100);ellipse(loc.x,loc.y,4,4); } }

//and we will add some lines in ‘void draw” as follow:

a.add(b.branch(-25f)); } else {leaves.add(new Leaf(b.end)); } } }

for (int i = 0; i < leaves.size(); i++) {Leaf leaf = (Leaf) leaves.get(i);leaf.display(); } }

63 64

Page 35: Final ALbume, Natural system studio

Anyone familiar with the breeding of animals knows that offspring re-semble parents. It doesn’t take a scientist to reach this conclusion. In fact, given the agrarian culture and economics of centuries past, the average person living close to a farm a thousand years ago may have been more aware of inheritable traits than the average person today. In any event, Charles Darwin’s mental leap from simple heredity to evolu-tion and natural selection stands alone as the greatest scientific achievement in all of biology and is arguably the most important contribution to all of science. To paraphrase Richard Dawkins, never have so many natural phenomena be explained by so few facts. The predictive and explanatory power of evolution and nature selection has shed light on every facet of biology, from the microscopic scale of how bacteria quickly adapt and become resistant to new drugs all the way up to the macroscopic scale of the distribution and interrelatedness of whole species.

Just as biological systems have evolved to a fantastically creative de-gree, so the fundamental equations of biological adaptation can be used to evolve algorithms and solutions to problems within the confines of the computer. In the 1960s, a handful of scientists from different disciplines disciplines used ideas gleaned from natural selection and applied them

to computation tasks.

In the 1960’s, John Holland championed the idea of a genetic algorithm, but it wasn’t until the late 1980s that the idea reached critical mass in academic circles. More than any other technique for simulated evolution, the genetic algorithm (GA) approach most closely simulates real biologi-cal evolution as it maps programs and data into DNA-like structures that express some sort of notion of “fitness”. The DNA-like structures exist in populations whose members can mate, cross over, and mutate, thus sharing fitness-increasing traits similar to those of real populations of species found in nature.1

A basic genetic algorithm is as below:Initialize the population, PRepeat for some length of time:2-1- create an empty population, P”2-2- repeat until P” is full 2-2-1- select two individual from P based on some fitness criterion2-2-2- optionally mate, and replace with the offspring2-2-3- optionally mutate the individuals2-3- let P now be equal to P”

14. GENETIC ALGORITHMS

Image: Darwin's Theory of Evolution 1- The computational beauty of nature / Garry William flake / Chapter 20: Genetics and Evolution

Image: Darwin's Theory of Evolution

65 66

Page 36: Final ALbume, Natural system studio

Rather than using multiple versions to decide what is best based on com-parison, architects can instead use computing power to find structural solutions that are self-organizing; that is, not decided on by an individual but arrived at by genetic algorithms that iteratively apply relatively sim-ple rules. The Water Cube's soap bubble-like structure is an example of this approach.

Since the 1990’s a shift has been noticed in the way avant-garde archi-tects have used new technologies of evolutionary biology to address or depict the increased complexity that is noticed in today’s architecture. Indeed, the layer of complexity that is introduced cannot be resolved by conventional design methods. Likewise, the quantity of information and the level of complexity involved in most building projects surpass de-signers abilities to thoroughly comprehend and predict them.

Genetic Algorithms (GAs), among many other evolutionary techniques, have been used in architecture as optimization tools or as form-gener-ation tools. In the former, GAs address well-defined building problems, such as structural and mechanical. Genetic Algorithms are used as sto-chastic methods for solving optimization and search problems, operating on a population of possible solutions. In the later utilization, GAs are used under the scope of the concept of emergence. Genetic Algorithms are used to produce innovative representations and descriptions of pro-cesses by which emergent structures, often with tremendous complexity, are derived. Hereafter, this utilization of GAs is addressed as “trend”.1

14.1. Genetic Algorithm in Architecture

1- Genetic Algorithms in Architecture: a Necessity or a Trend? / Eleftheria Fasoulaki - Master of Science in Architecture, Computation Group - Department of Architec-

ture, Massachusetts Institute of Technology

Image 1- Beijing National Aquatics Centre, or Water CubeImage 2- The ceiling over this pool showcases the Water Cube's "soap bubble-like"

structure, which was designed with parametric software specially written for the purpose.

2

1

67 68

Page 37: Final ALbume, Natural system studio

Computer scientists have long been inspired by the human brain. In 1943, Warren S. McCulloch, a neuroscientist, and Walter Pitts, a logician, de-veloped the first conceptual model of an artificial neural network. In their paper, "A logical calculus of the ideas imminent in nervous activity,” they describe the concept of a neuron, a single cell living in a network of cells that receives inputs, processes those inputs, and generates an output. The most common application of neural networks in computing today is to perform one of the “easy-for- a-human, difficult-for-a-machine” tasks, often referred to as pattern recognition. A neural network is a “connectionist” computational system. The com-putational systems we write are procedural; a program starts at the first line of code, executes it, and goes onto the next, following instructions in a linear fashion. A true neural network does not follow a linear path. Rather, information is processed collectively, in parallel throughout a network of nodes. The individual elements of the network, the neurons, are incredibly simple. They read an input, process it, and generate an output. A network of many neurons, however, can exhibit incredibly rich and intelligent behaviors. One of the key elements of a neural network is its ability to learn. A neural network is not just a complex system, but a complex adaptive system, meaning it can change its internal structure based on the information flowing through it.

This ability of a neural network to learn, to make adjustments to its struc-ture over time, is what makes it so useful in the field of artificial intel-ligence. Here are some standard uses of neural networks in software today: Pattern Recognition / Time Series / Prediction / Signal Processing / Control / Soft Sensors / Anomaly Detection 1

15. NEURAL NETWORK

1- The nature of code / Daniel Shiffman / Chapter 9: Neural Network Here is a great project that came out of the Adaptive Architecture and Computation program at the Bartlett School of Architecture. “Adaptive Fa[ca]de” by Marilena

Skavara explores the functional possibilities and performative characteristics of cellular automata (CA). In addition to the unique emergent behavior of CA, a neural network enables a further computational layer to evolve CA behav-

ior to the context of its surrounding environment.

69 70

Page 38: Final ALbume, Natural system studio

In the code which we write with Neural Network, we can make some rules. For example in this code, I each cell start exploding as a result of the mouse drag or neighbor cells̀ exploding.

15.1. Neural Network in Processing

1

2

3

SIZE);}}}

//in class Signal:

void draw() { stroke(origin.x,origin.y,charge*10,255*(charge/FIRING_CHARGE));float signalx = lerp(origin.x,destination.x,progress/distance);loat signaly = lerp(origin.y,destination.y,progress/distance);ellipse(signalx, signaly, SIGNAL_SIZE, SIGNAL_SIZE);}

void update() {progress += SPEED_CONSTANT+(distance-progress)/SIGNAL_SPEED;if (progress > distance) {alive = false;destination.addCharge(charge); }}}

1. Frame number 00442. Frame number 00813. Frame number 0290

void mouseDragged() {for (int i=0; i<NUM_NEURONS; i++){if(dist(mouseX,mouseY,neurons[i].x,neurons[i].y) < 20)neurons[i].addCharge(20); } }

//in class Neuron:void draw(){if (refractory > 0){fill(refractory,255-refractory,0);stroke(refractory,255-refractory,0);}else{noFill();stroke(0,255,0); }ellipse(x, y, NEURON_SIZE, NEURON_SIZE); stroke(255*(threshold/START_THRESHOLD), num_connections, y, 10); for (int i=0; i<num_connections; i++)line(x, y, connections[i].x, connections[i].y);}

void update(){ if (refractory > 0){refractory--; }else{if (charge > threshold){for (int i=0; i<num_connections; i++)signals.add(new Signal(this, connections[i], random(FIRING_CHARGE)));charge = 0;refractory = int(random(REFRACTORY_TIME));fill(255,255,255,200);ellipse(x,y,2*NEURON_SIZE,2*NEURON_

71 72

Page 39: Final ALbume, Natural system studio

The goal of this sketch is using Neural System and simulating the Neural system in human body we can design an sketch with work as a hand with some chalk in each finger which can draw and make lines related to the position of the mouse.

15.2. Drawer Hand

Octopus reloaded by Krystof Pesek (Kof),http://www.openprocessing.org/sketch/39511

// in class Neuron :

void shiftIndex() {for (int i = 0 ; i < inputs.size();i++) {inputs.set(i, ((Integer)inputs.get(i)+1)%num);}}

void shiftXY() {X+=res;if (X>width) {X=0;Y+=res;}}void debugAssoc() {println(id+" ----------------V");for (int i = 0;i<inputs.size();i++) {int tmp = (Integer)inputs.get(i);float w = (Float)weights.get(i);println(" "+tmp + " -> "+ w);}}

void moveVal() { val += random(-jitter, jitter)/100.0;avg += (val-avg)/(num+0.0);}

void compute() {moveVal();if (frameCount%changeIndexRate==0) {shiftIndex();change = true; cnt = 5;}if (change) {cnt --;if (cnt<0)change = false;}sum = 0;int cnt = 0;for (int i = 0;i<inputs.size();i++) {int index = (Integer)inputs.get(i);Neuron tmp = (Neuron)n.get(index);float w = (Float)weights.get(i);sum += tmp.val*w*(2.0-avg);cnt++;}sum = sum/cnt;}

73 74

Page 40: Final ALbume, Natural system studio

15.3. Flying Drawers

We also can change the rules of Hand drawer and make the lines been drawn randomly by themselves.

75 76