Photovoltaics Harvest sun energy Electrical Energy SEDIMENT … · Photovoltaics_ Harvest sun...

4
SEDIMENT SPORES Photovoltaics_ Harvest sun energy Electrical Energy Compressed Air Chamber_ Storage Electrical energy stored as mechanical energy SEDIMENT SPORES Photovoltaics_ Harvest sun energy Electrical Energy Compressed Air Chamber_ Storage Electrical energy stored as mechanical energy Conduct Pipe Transmit Electrical Power Air powered Electrical turbine Mechanical energy turned into Electrical energy on demand

Transcript of Photovoltaics Harvest sun energy Electrical Energy SEDIMENT … · Photovoltaics_ Harvest sun...

Page 1: Photovoltaics Harvest sun energy Electrical Energy SEDIMENT … · Photovoltaics_ Harvest sun energy Electrical Energy Compressed Air Chamber_ Storage Electrical energy stored as

SEDIMENT SPORESPhotovoltaics_ Harvest sun energy

Electrical Energy

Compressed Air Chamber_ Storage

Electrical energy stored as mechanical energy

SEDIMENT SPORESPhotovoltaics_ Harvest sun energy

Electrical Energy

Compressed Air Chamber_ Storage

Electrical energy stored as mechanical energy

Conduct Pipe

Transmit Electrical PowerAir powered Electrical turbine

Mechanical energy turned into Electrical energy on demand

Page 2: Photovoltaics Harvest sun energy Electrical Energy SEDIMENT … · Photovoltaics_ Harvest sun energy Electrical Energy Compressed Air Chamber_ Storage Electrical energy stored as

Energy

Power

Sys

tem

Rat

ed P

ower

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015

500

0

1,000

1,500

2,000

2,500

3,000

Pop

ulat

ion

in M

illio

ns

2010 2015 2020 2025 2030

3

0

6

9

12

15

18

PumpedHydroCompressed

Air

LithiumIon

High Speed Flywheel

Ultra-capacitor

1kW

1 se

c

Dis

char

ge T

Ime

1 m

in1

hr10

hrs

10kW 100kW

System Rated Power

1MW 10MW 100MW 1GW

Superconductingmagnetic

Lead Acid

FlowBatteries

(Zn-Br, VR)

SodiumSulfur

Battery

ID_CMKF83

SEDIMENT SPORES

COMPRESSED AIR: FUTURE OF ENERGY STORAGE

Resource: http://www.gtmresearch.com

Resource: http://www.gainsma.com

Resource: http://www.gtmresearch.com

Resource: http://www.microbelibrary.org/asmonly/details.asp?id=2851&Lang

According to Georges Bataille entropy is, by definition, excess energy; an overproduction. The current world is heavily investing in renewable energy due to new laws, potential carbon taxes, etc., in which energy technological efficiencies will grow exponentially coinciding with Moore’s Law. If people are unable to control this growing energy production, the future will face the same problem we do today, excess energy we call waste and therefore the ability to store energy efficiently is more critical than producing energy itself. Interestingly enough, Abu Dhabi finds itself at the center of this polemic being one of the worlds largest oil suppliers. This mass amount of stored energy has created a rapidly growing city and population that has produced excess tertiary space in its sprawl development. However, these spaces will eventually densify but it is uncertain the future energy that will facilitate such growth knowing that oil wells will inevitably run out. Many nations have been investing in their underground salt mines to store energy in the highly efficient form of compressed air. Why could not Abu Dhabi do the same with their oil wells, augmenting

space devoid of its original use? The project puts in place a similar initiative by using devoid city space and excess materials and matter from city growth to create an energy storage and production land art piece on Site 3. Architecture is another word for system in which entropy is its structural blindness. In this context, waste is a repressed condition of architecture in which the project creates new material structures with waste by looking at systems of nature. The interest of entropy, waste and excess was derived from the context of the site as well as past land artists such as Robert Smithson and conceptual artist Marcel Duchamp. The project addresses the “structural blindness”, as Smithson puts it, of waste in the building process. By using waste as a instrument and a sand calcifying bacteria that feeds on urea, as an architecture, the proposal intends to challenge viewers perception of how space in a rapidly growing city is created and understood. This is not to battle entropy but on the contrary, to embrace it showing its repressed potentials in an urban context.

‘READY MADE’ STORED ENERGY = OIL

Present Abu Dhabi Future Abu Dhabi Expansion

DRY OIL WELL = CHALLENGE FOR ENERGY CREATION NEW ENERGY GENERATION = CHALLENGE TO CREATE NEW ENERGY STORAGE

?

CALCIFICATION (Bacteria Bacillus pasteurii)

Energy Photovoltaics

SITE 3

Sun Chart

ENTROPY REINTERPRETED = ENERGY PRODUCTION AND STORAGE SANDSTONE LANDART

City Growth = Excavated Building Soil

Potential Energy Storage System Comparison

UAE Population Growth

Production of Grid Scale Energy Storage

Masdar City

Madinat Khalifa A

Bain Al Jessrain

Officers City

Mangrove Village

Madinat Khalifa C

Madinat Khalifa B

Mahawi

Mohammed Bin Zayed City

Mussafah Industrial Area

Abu Dhabi International Airport

CITY EXPANSION

Site 3 was selected for this very reason. It is itself, a leftover space that is blocked from view by foliage. Such places are only noticed, or not noticed, once created. That is to say, we only see the dust once it has settled. The site is situated between 3 freeways near the airport and seemed to have the least value of the three sites thus proving the most potential. The forms of the land art piece are derived from the behaviors of its constructors. By creating a program that mimics a sand calcifying bacteria (Bacillus pasteurii) behaviors we are able create emergent forms out of adjacent excavated building sand brought on site. When the city grows, the land art piece grows as well. Placing molds within the piles of sand and adding the bacteria, the forms created by bacteria are shown at multiples scales relating to the human and microbe alike. This complex and organic patterning allows for multiple spatial features and habitats allowing for public viewing as well as solar energy harvesting and storage for thousands of homes.

Compressd Air Chamber

Page 3: Photovoltaics Harvest sun energy Electrical Energy SEDIMENT … · Photovoltaics_ Harvest sun energy Electrical Energy Compressed Air Chamber_ Storage Electrical energy stored as

//global variablesimport processing.opengl.*;

PrintWriter output;PeasyCam cam;

int ureaNum = 90;PeasyCam cam;PeasyCam cam;

final int SOIL_X = 2;int ureaNum 90;t ureaNum 90

final int SOIL Y = 2;final int SOIL_X 2;final int SOIL_X 2final int SOIL Z = 2;final int SOIL_Y 2;final int SOIL_Y 2

final int ENV_X = 50;final int SOIL_Z 2;final int SOIL_Z 2final int ENV Y = 50;final int ENV_X 50;final int ENV_X 50final int ENV Z = 50;final int ENV_Y 50;final int ENV_Y 50

Sand mySoil[][][] = new Sand[SOIL_X][SOIL_Y][SOIL_Z];final int ENV_Z 50;final int ENV_Z 50

kWorld world1;PFont font2;

World world1World world1int textState = 0;

PFont font2; Font font2;boolean state;textState 0;textState

//setupvoid setup(){

//setup//setup colorMode(HSB, 100);

void setup(){void setup(){ size(720, 720, P3D);olorMode(HSB, 100);orMode(HSB, 100)

cam = new PeasyCam(this, 300);cam.setMinimumDistance(1);

am new PeasyCam(this, 300);m new PeasyCam(this, 300);m.setMaximumDistance(1000000);

cam.setMinimumDistance(1);cam.setMinimumDistance(1)

//lists world1 = new kWorld();

//lists //lists

//World for (int i = 0; i < 10; i++) {

//World //WorldBacteria(new Bacteria(new kVec

for (int i 0; i < 10; i++) {for (int i 0; i < 10; i++-ENV_X,ENV_X),random(-ENV_Y, ENV_Y),random(-ENV_Z, ENV_Z))

Bacteria(new Bacteria(new kVecBacteria(new Bacteria(new kVec new kVec(random(-1,1),random(-1,1),random(-1,1)), 2, 16));,ENV_X),random( ENV_Y, ENV_Y),random( ENV_Z, ENV_Z))V_Y, ENV_Y),random( ENV_Z, ENV_Z)

}));)

//instantiate urea for (int i = 0; i < ureaNum; i++) {

//instantiate urea //instantiate urea world1.addUrea(new Urea(new kVec(random(-50, 50), random(-50, 50),(random(-50, 50)))));

for (int i 0; i < ureaNum; i++) { for (int i 0; i < ureaNum; i++) }

));)//initialize the Sands

}for(int i=-SOIL X;i<SOIL X;i++){

//initialize the Sands //initialize the Sandsfor(int j=-SOIL Y;j<SOIL Y;j++){

for(int i SOIL_X;i<SOIL_X;i++){for(int i SOIL_X;i<SOIL_X;i++){ for(int k=-SOIL_Z;k<SOIL_Z;k++){

for(int j SOIL_Y;j<SOIL_Y;j++){ for(int j SOIL_Y;j<SOIL_Y;j++){ int spaceX = ENV_X/SOIL_X;

or(int k SOIL_Z;k<SOIL_Z;k++){t k SOIL_Z;k<SOIL_Z;k++)int spaceY = ENV Y/SOIL Y;

int spaceX ENV_X/SOIL_X;nt spaceX ENV_X/SOIL_X; int spaceZ = ENV Z/SOIL Z;

int spaceY ENV_Y/SOIL_Y;int spaceY ENV_Y/SOIL_Y; world1.addSand (new Sand(new kVec (i*spaceX,j*spaceY,k*spaceZ)));

int spaceZ ENV_Z/SOIL_Z; int spaceZ ENV_Z/SOIL_Z; }Z)));)

} }}

} }}

}}}

rtToTxt() {xport.txt");rtToTxt() { rtToTxt() {

ize(); i++) {List.get(i);ize(); i++) {ze(); i++)+ a.pos.z);

List.get(i); ist.get(i); }

z);)

put.flush();put.close();put.flush();put.flush();c-12.vlw");

put.close();ut.close();});)

//drawoid draw(){

//draw//draw

55,255,0);om = 1600;55,255,0);255,255,0);

Spd = 0.02;om 1600;om 160045)*cSpd),

Spd 0.02;Spd 0.020,0, 0,0,-1);45) cSpd),45) cSpd),

*/, 1);1);

orld1.run(); /

d1.render();orld1.run();orld1.run()

});)

yPressed(){key == 'x'){portToTxt();key x ){key x ){

}();)

}*/ } }

d export(){ if(mousePressed)

d export(){d export(){ {d))

textFont(font2); {

on: " + frameCount + ".dxf"); textFont(font2);textFont(font2)

state = true;););

textState = 50; state true;state true

}0;0}}}

void endExport(){))

endRaw();{});)

class kWorld{ ArrayList population;

ArrayList ureaList;rrayList population;rayList population; ArrayList trailList; ArrayList ureaList;ArrayList ureaList;

ArrayList bacList; ArrayList trailList;ArrayList trailList;

ArrayList sandList; ArrayList bacList; ArrayList bacList;

kWorld() { population = new ArrayList();

kWorld() { kWorld() ureaList = new ArrayList();

population new ArrayList();pulation new ArrayList(); trailList = new ArrayList(); ureaList new ArrayList();ureaList new ArrayList();

bacList = new ArrayList(); trailList new ArrayList();trailList new ArrayList();

sandList = new ArrayList(); bacList new ArrayList(); bacList new ArrayList();

}();)

//instant.void run(){ //instant.instant.

for(int i = 0; i < sandList.size(); i++){ void run(){void run(){

Sand att = (Sand) sandList.get(i); for(int i 0; i < sandList.size(); i++){r(int i 0; i < sandList.size(); i++)

att.step(this);d) sandList.get(i);andList.get(i);

//tempSand.updateSand(this); att.step(this); att.step(this);

}is);)

for (int i = 0; i < population.size(); i++) { } }

Bacteria a = (Bacteria) population.get(i); for (int i 0; i < population.size(); i++) { for (int i 0; i < population.size(); i++)

a.step(this);pulation.get(i); ation.get(i);

}s);;

for(int i = 0; i < ureaList.size(); i++){ Urea tempUrea = (Urea) ureaList.get(i);

for(int i 0; i < ureaList.size(); i++){or(int i 0; i < ureaList.size(); i++) //tempUrea.update();

a (Urea) ureaList.get(i);(Urea) ureaList.get(i); //tempUrea.render(); //tempUrea.update();/tempUrea.update();

}r();)

//do stuff with calcification }

/* for(int i = 0; i < trailList.size(); i++){ //do stuff with calcification //do stuff with calcification

Calc tempCalc = (Calc) trailList.get(i); / for(int i 0; i < trailList.size(); i++){/ for(int i 0; i < trailList.size(); i++)

tempCalc.update(); (Calc) trailList.get(i);Calc) trailList.get(i);

//tempCalc.render(); tempCalc.update(); tempCalc.update();

}*/der();r();

for(int i = 0; i < trailList.size(); i++){ } / } /

Calc att = (Calc) trailList.get(i);or(int i 0; i < trailList.size(); i++){nt i 0; i < trailList.size(); i++)

att.update();c) trailList.get(i);ailList.get(i);

//tempCalc.render(); att.update(); att.update();

}r();)

//do stuff with bacteria }

for(int i=0; i< bacList.size(); i++){ //do stuff with bacteria//do stuff with bacteria

Bacteria tempBac = (Bacteria) bacList.get(i); for(int i 0; i< bacList.size(); i++){r(int i 0; i< bacList.size(); i++)

//tempBac.update();(Bacteria) bacList.get(i)cteria) bacList.get(i)

//tempBac.render(); //tempBac.update();/tempBac.update();

}er()()

} }}

//add void addSand(Sand att) {

//add//add sandList.add(att);addSand(Sand att) {nd(Sand att)

}tt)t

void addBacteria (Bacteria a) { } }

population.add(a);acteria (Bacteria a) {(Bacteria a) {

}a);)

void addBac (Bacteria a) { }}

bacList.add(a);Bac (Bacteria a) {c (Bacteria a) {

}a);)

void addUrea(Urea at) { } }

ureaList.add(at);addUrea(Urea at) {ea(Urea at)

}t);)

void addCalc(Calc att) { } }

trailList.add(att); addCalc(Calc att) {ddCalc(Calc att)

}t);)

//remove void killUrea(Urea at){

//remove//remove ureaList.remove(at);void killUrea(Urea at){llUrea(Urea at)

}t);)

void killBac(Bacteria a){ } }

population.remove(a);void killBac(Bacteria a){lBac(Bacteria a)

}a);)

//rendervoid render(){

//rendernderandList.size(); i++) {

void render(){void render(){nd) sandList.get(i); andList.size(); i++) {dList.size(); i++)

att.render();sandList.get(i); dList.get(i);

}r();;

pulation.size(); i++) {a) population.get(i); pulation.size(); i++) {ulation.size(); i++)

a.render();ulation.get(i); tion.get(i);

}r();;

reaList.size(); i++) {rea) ureaList.get(i); reaList.size(); i++) {aList.size(); i++)

at.render();ureaList.get(i); aList.get(i); //at.update();

at.render(); at.render();}

e();)trailList.size(); i++) {

} }Calc) trailList.get(i); trailList.size(); i++) {trailList.size(); i++)

//att.render();c) trailList.get(i); ailList.get(i);

}r();;

} }}

}}}

e.commons.math.*;import peasy.*;mmons.math. ;mmons.math. ;

ns.math.geometry.*;import peasy. ;import peasy. ;

import kGeom.*;import kRender.*;

import kGeom. ;import kGeom. ;

class Bacteria{CANCEL_TRAIL = 0;

class Bacteria{class Bacteria//states

RAIL 0;AIL kVec pos;

//states// kVec vel;kVec pos;kVec pos;kVec acc; kVec vel kV

float maxForce; kVec acc; c

float maxVel;oat maxForce;at maxForce

float closestAttDist; float maxVel; float maxVel

float rangeOfVision;float closestAttDist;float closestAttD

//constructor Bacteria(onstructornstructor

kVec _pos, Bacteria(BkVec vel,

kVec _pos,kVec _posfloat maxVel,

kVec _vel,kVec _vel float _maxForce){

float _maxVel,float _maxVel,

pos = kVec.clone(_pos); vel = kVec.clone(_vel); pos kVec.clone(_pos)pos kVec.clone(_pos)

maxVel = maxVel;l kVec.clone(_vel); ec.clone(_vel);

acc = new kVec(0,0,0); maxVel _maxVel; _maxVel

maxForce = _maxForce;acc e ec(0,0,0);c new kVec(0

}rce;e

void step(kWorld world){ updatePop(world.population);

updateAtt(world.ureaList);pdatePop(world.population);datePop(world.population);

updateA(world.population); updateAtt(world.ureaList); updateAtt(world.ureaList);

updateSand(world.population); updateA(world.population); updateA(world.population);

vel.plus(acc); vel.limit(maxVel);

vel.plus(acc) vel.plus(acc) pos.plus(vel);.limit(maxVel); axVel);

acc = new kVec(0,0,0); pos.plus(vel) pos.plus(vel)

});

//behaviors

// calculates new location void updatePop(ArrayList pop){

// calculates new locationcalculates new location

kVec sepC = separateCalc(world1.trailList); kVec sep = separate(pop); // Separation

kVec sepC separateCalc(world1.trailList);ec sepC separateCalc(world1.trailList)kVec coh = cohesion(pop); // Cohesion

kVec sep separate(pop); // SeparationVec sep separate(pop); // Separation float currentPh = getSandPh(world1.sandList); //ph

kVec coh cohesion(pop); // Cohesion kVec coh cohesion(pop); // Cohesion

// Arbitrarily weight these forces sepC.scale(180.0);

y weight these forceseight these forces sep.scale(100.0); sepC.scale(180.0);epC.scale(180.0);

coh.scale(.008); sep.scale(100.0);ep.scale(100.0);

// Add the force vectors to acceleration acc.plus(sepC);rs to accelerationceleration

acc.plus(sep); acc.plus(sepC);cc.plus(sepC); acc.plus(coh); acc.plus(sep);acc.plus(sep);

vel.plus(acc); vel.limit(maxVel);

vel.plus(acc) vel.plus(acc) pos.plus(vel);.limit(maxVel); axVel);

acc = new kVec(0,0,0); // reset acc to 0 each iteration pos.plus(vel); pos.plus(vel)

borders(); render(); borders();ers()

}();)

float getSandPh(ArrayList sandList){ float rangeOfVis;

ArrayList sandList){ayList sandList){int winner=-1;

float rangeOfVis;at rangeOfVis;float minDistSoFar = 10;

int winner 1; int winner 1 for(int i = 0; i < sandList.size(); i++){

float minDistSoFar 10; float minDistSoFar 10; Sand s = (Sand) sandList.get(i);or(int i 0; i < sandList.size(); i++){nt i 0; i < sandList.size(); i++)

kVec sTarget= kVec.clone(s.pos); float d = sTarget. distance (pos); kVec sTarget kVec.clone(s.pos); Vec sTarget kVec.clone(s.pos);

if (d < minDistSoFar){sTarget. distance (pos); rget. distance (pos);

minDistSoFar = d; if (d < minDistSoFar){< minDistSoFar)

winner = i;nDistSoFar d;oFar d

}r i;i

} }}

float ph = 0.0; if(winner!=-1){ float ph 0.0; float ph 0.0;

Sand myWinner = (Sand)sandList.get(winner); if(winner! 1){ if(winner! 1)

ph = myWinner.ph; d)sandList.get(winner)andList.get(winner)

}h;

return ph; }

}h;h

void updateAtt(ArrayList ureaList){ } }

int TimeCount = 0;t(ArrayList ureaList){ArrayList ureaList){

int ureaCount = ureaList.size(); int TimeCount 0;int TimeCount 0

kVec sum = new kVec(0,0,0);nt ureaCount ureaList.size();ureaCount ureaList.size()

float closestAttDist = 40; //closest agents can be to the attractor in order for them to be affected kVec sum new kVec(0,0,0);Vec sum new kVec(0,0,0);

int closestAtt = 0;them to be affectedem to be affected

// loop through all the attractors for(int i = 0; i<ureaList.size(); i++){

// loop through all the attractors // loop through all the attractors // find the closest attractornt i 0; i<ureaList.size(); i++){ 0; i<ureaList.size(); i++

Urea att = (Urea) ureaList.get(i); // find the closest attractorthe closest attracto

kVec attTarget = kVec.clone(att.pos); Urea att (Urea) ureaList.get(i); Urea att (Urea) ureaList.get(i);

float attDist = attTarget.distance(pos); if(attDist < closestAttDist){

closestAttDist = attDist; if(attDist < closestAttDist){ttDist < closestAttDist)

closestAtt = i;stAttDist attDist;ist attDist

}t i;i

seek urea and increase vector cohesion and separation avoid trails(separate) and sand(obstruction)make trail after eating urea; accelerate calcify sand when trail is within distance x

Number of Chambers...............100Total Volume of Chambers........22,000m³Air Compression.......................30 atm

PRESSURE x VOLUME = ENERGY

30 atm x 22,000m³ = 66,874,500,000 joules

1 MW = 1,000,000 joule/s

66,874,500,000 Joules/1,000,000 = 66,874 MW/sec

Maximum Storage Capacity

66,874MW/2.2MW =

35 days of energy storage at 2.2MW per day

Surface Area of Photovoltaics.............76,990 m²Energy Produced by 1m²............................72 W

72watts x 76,000 =5.4 MW(1 MW = 1,000,000 W)

Capacity Factor of 40% = 2.2MW

1 MW Powers 1000 homes

2.2 x 1000 =

2,200 homes annually

Indigenous Plants................45,500 m²

Desert.....................................3,500m³

Calcified Sand Forms...........128,000m³

TOTAL...................................177,000m³

Total Site Area.....................238,000m³

177,000/238,000 =

74% of site as potential habitats

for ( f int i = 0; i < sa San d att = ( att =att tattttatt ttttt ttttatt att aatt aaataatt tttttttttttttt Sa for (int i 0; i < sar (int i 0 <

fofofofofofofoforforforr (for ((((or (or ((ffoforor (ffforforfoff (oofo (fofo ((iniiiint i =int i =int i =nt i =nt i =nt i =nt i =t int i =int i =ii =i =nt i =t i = 0t i = 0nt i = 0int it i ==nt i =int i =nt i =t int i =iinnt int i ==i t it iinintt int i ==nt =nt i =in ==int i =i =nt i =inttt int inntttttnn ; i < popBaBaBacBaBaBaBBaaacacacacBaacacBaB BacBBBB BB BBa BaBa BB BB B BB cBac BaBac BacBBBacBaBBB cc BacBaaaccBacBacBacBBBacaaccc BB c BBBaaaaaaaaBaccBBBaaaaacccccccc iateriateriteria a teria a =a =a =a =a a a =aaaa =ria a =teria ateria a a aa a =a =a =teria a ==ter a =teria a =a =teria a =a =a =teria a =a =a =teria a =a =teria ateria a ==t aaa =a =a =aa ==teria ateria a =aaaaterria aaaa t ria aa a t (Bacteri ( a for (fofofofor (oror ( iinnnnnnntnt i 0nt i innnt i nt i iinnnt nnn i i ii ; i < pop for ( 0i ; i < pop

f ((fofofofffoforfor forforforforfor ((for (for (f (fof ((ofor (fofor (for ((o (for ( for (for (for ( for (for ( for ( for (foor (forfor for ( for ((fforfor ( for for ( for ((fffofooro for ( for (( for (for f ffffo ( for (ffooo forfor ( intiintntnt i = 0ntiiintnintiintnntnintintininnntinininntntinnniininntnnnntininntinnntnttttiinnnntnttinnnntt ; i < uU UUUr Ur UUrUr UrrereUre U UrrereUr U UUrre Urrrrrerrrere Urrr Urr U Ur rr U UUUU a at = (Ur

or (ooooor (or ((r (oor (or (r or (or ((((iinnnnnnnntttttttt i 0iiiinnnintnttintttnntttt ; i < uniin ; i < u

fo for ( int i = 0; i < t Cal c att = (Cor (int i 0; i < tint i 0; i < t

impimimpmmmmport pmpmpmport pepompooport peimport peort peort ort peort peort port prt prtrtort peort peport peport peport pemmmpopoimport pimport peort prt rt prt pport pempppoimport peort port pert peort peimpmimport pmppooort rt petport peport pempoport petmimpoport ptt peimimppoortrtimport pttt emport pp t eiimport t ptport pemport import pmp t pport ppepo tport pet peeimport pimport pemport ppo t ppmimp peeppppppp pp asyasy.assyasy.sysy.osy.org.asy.osyasy.sy.y.asyaasassysyyy.sssysysysy.ysyyyasyassyy.assyyyyyyyyasy.y.sy.yy.yyyyyyyyyy pachimportimport mportimportimpimimport impompmpimpmppmport port ptimport port pororort peort pett peort petort port port peort prt pert peimportpooortort port port petiimpoiimmimimportort prrt pet petimpmmmmmmpormmmmpmmpmpmppmpopommmmmmmpopopmpmpompompmpimpoommmmmpomimpompimpop prt pmmimpop pmimimp pommmpom pimmim om oommimpoo t ii asy.orgasy.oraasy.orasy.orgsy.orsysy.osyy.orysy.orsy.oorgororg.arg.arg.arg.aaaasy.org.aasy.org.asy.org.aorg.aasy.org.aayy.ory.oy.oy.ororg.y.org.orrg.ag aaaaaaasy.orgsy.ory.oorg.arg arg.arg arg aay.org.org.a.ay arg ay.org.arg.arg.aasy.org.asy.orrgrgr aaasy.org.arg aaaaagg aaaas ggg aaa.aaaaay pachepachepachepacheache.cache.cache.cache.coache.cchche.cche.cache.cche cpache.cpachpachache.ce.come.coe.coe.compacheachachchpache.e.coe ce ce cache.ache.coache.coche.cohhhhpachepache.heehe.coccohhe cee.cohh che.ce ch ch ccccohe.ch ccocch ccocccehe.cocohe.cooppp mon

int

f f f

Net Urea Hydrolisis Reaction: NH2-CO-NH2 + 3H2O 2NH3 + CO2

2NH3 + 2H2O 2NH4+ + 2OH-

CO2 + OH- HCO3-

Ca2+ + HCO3- + OH- Net pH increase triggers

NH2-CO-NH2 + H2O 2NH3 + CO2

H20H200

H20H20H20H20

H20H20

Ca2+Ca2+

Ca2+

Injection Bacillus Pasteurii + Urea

NH2-CO-NH2 + 2NH3 + CO2

= Urease from bacteria= Chain Reaction

+ HCO3- + OH- C - OH increase triggerc s i

CaCO3

CaCO3

camCaCO3= CALCIFICATION

SAND

SANDSAND

SAND

SANDS

dBNV X),random(-ENV Y, E

dBdBw kVec(random(-1,1),raV_X),random( ENV_Y, ESANDworld1.addworld1.add

X),random(-ENV YX),random(-ENV Y world1.add world1.add world1.add world1.add

kV ( d ( 11)kV_X),random( ENV_Y_X),random( ENV_Y_X),random( ENV_Y_X),random( ENV_S

SANDD

(random(-ESANDS D

beg begegegeginiggingingingingingineginginginginnneggininginnginginginegginginginegginngggiinnggg nggiginggig nnggggggg RRaRawRaRawawRawRawRawRaw(Raw(w(DXF,"aw(DXF,"w(DXF,"w(DXF,"w(DXF,"((DXF,"DXF,"w(DXF,"(DXF,"DXw(DXF,"w(DXF,"DXw(DXF,"DXXaw(DX(DXaw(DXFw(DXFaw(DXFw(DXF,"w(DXF,"w(DXF,"RaRRRaRRaRaw(DXF,"w(DXF,"RaRaw(((D((((DXF,"(DXDXXw(DXawww(wawwaw(aw(aw(((Dawawwaw(w(aw(w(D(DXFawawaw(aw(w(aw(w(www(www(www((DXF,"wwwwawaw(DXF,"wwawww(www((DXw(D F,Ra (w D F,((( , VerVeVeVerVerVerVerVerVerVerererrrsioVersVererrsiorsVeVeVerVeVeerV rVersrsererrrrrere srr

void expo output = createWriter("PointEx

void expovoid expo

for (int i = 0; i < world1.trailList.siCalc a = (Calc) world1.trailL

(int i 0; i < world1.trailList.sint i 0; i < world1.trailList.srintlnrintlnntlni (a.pos.x + "," + a.pos.y + ","

Calc a (Calc) world1.trailL Calc a (Calc) world1.trail

outpoutp

outpponton ("Akkurat-Itali

outp outp

vod(2d(2

oooo22SSSSoooo44

SS00044

wwwowww worldw wowwww

wowo

/*void keyif(k

expif(k

voiif(mous

voi

dFodFoFoF

CCCeCeCCCCCCCCCCeCCCCCCCeCe oouooocZoZcZoZoZoZoZoom/3oZooZoZocZZcZoZoZZcZocZoooZooZoZoooZoZZ , 0,

eCeCmeeeeeeeeee ounoun

wwww

meeeeCmeCeeeeemeCeCeCmeemeeeeCmeCCm CmeemeCmeemmemeemeffffffff

cc*ccZ*cZ*cZcZ*cZ*cZ*cZcZZo*c*cZZ*cZcZcZZo*ccZ*cc*cZcZZc*ccZc*cZccccmammmmmmememmmmmemeemmmmmememmmmmmmm

bb b b bb bb b b b b b b bb b bbb b bbbb bbb b /* /* /* /* /* /*/*/ // // /* / /*f//* /*//// / f// f

babaa

isiiiisisisiiiisiiisisiisiiisisisisisiisiiiiisiisiin((fran((framn((framn((framn((fram((fran((framn((fram((framn((fram((((fra((fram((framf((framfram((framn((framn((fra((fram((framn((fram((framn((fram(fra((framam((fram((frammn((fram((frammn((framframn((framn((framn((fram((fn((framn((framen((fram(framn((fram(fra(f(f m((fra(framn((fram((framn((fram(frfra(fr(framf m((frame((frammemnn((fram((framr mmmmmmnnn((framf mmm(framn((framn((fra(( frfrraramm(((frframmmraframn raam

d), d), d), d),dd),)d)d)d), )d), d)d),dd), d)d), d), d)d)d)d)ddd)dd), ), ddddddddd)d)), dddddd)ddddd),)dd)), )d),d),, ),)))) 2*2*22*c2*22**2*2*2*c2**2**cccccc2*222****2*c2*cc22*****cc2222********c2*cc222***cc2*cc***2*2*2*c2***2*cc22222222ssisisisisisisiiissis n((fran((fran((fran((fran((frannnn((fran((fran((framn((fran((fra(((ffram(fran((frafran((frafn((fran((fran((fraara(framn((framn((fran((fran((fnn(((framffrrammnn((n((framffran((frammn((fn f aaamm(((((((((iisiisiiiiin((frafran((n((fr((((f((fran((fra((((n((fr((((( a( mamaamm(((

o o o

cacacameeraecamercamercamercameracameracameracameracameracameracameracameraameracamermerameramercameracameracameracameracameraccamaameecamermecameracameraameramerameracamccamccaaaaacamecamecamecamecamecameccamcaaameameraaamammmmmercacacacameamammmmmmmcammmmermmmmcacacameccammmmmcamcammemcamcacamcameccccccaccamcacamcammmmammccaamameraca eeraeraaccccccaccacacacameccaamm rcac rrcc rrmmeerra(cZoom*(cZoom*s(cZoom*((cZoom*((((cZoom*(cZoom*(( Z *Zoom*Zoom*smmooomoomm(cZoom*(cZoom( Z( Z *cZoomZ *s*sm*s*s(cZoom*s*s*s*s*s( Z(( Z *((cZoom*oo(cZoomcZoom*s*ssss*s(((cZoomZZocZooo(cZoomoom(cZoom*cZoom***s*s(cZoom((cZoomcZoomcZoomocZ mZoomcZoom*sscZoomcZoom**(cZoomcZoomZZ(cZoom(cZoo(cZoom(cZoom(cZoomcZoom( om*****s(((( moo *smZ s*smm**sZ om**sZoom****oomoommmom**mmmmmmmmmmom sssmmomoomcZoommmmooooommmmomZZoooooomm ss(cZcccZZZooo ssscZoom cZoom cZoom* cZoom* cZoom* cZoomcZoom cZoom* cZoom* cZoom* cZoom* cZoom*cZoom*cZoom*cZoom*cZoom*cZoom* cZoom*cZoom cZoom cZoo cZoomcZoo cZoom cZoom cZoom cZoomcZoom*cZoom* cZoom* cZoom* c cZoom cZoom*Zoomoom cZoom*oocZoocZoo cZoomcZoom*m* cZoom*cZoom*cZoom*cZZ cZoom*oomo cZoocZoom*cZoomcZoooocZocZocZoocZoom* cZoomcZoocZooZoomZo cZoommcccc ooooocZoomoommmmmm**cc cZoocZoooommmcZoom cZooooooommmoommcZoommmcZooocZooocZoomo mmoccc oo cos((framcos((framcos((fracos((fracos((framcoscoscos((framcos((framcos((fraos((fracos((fracoscos((fracos((framcos((fram((fras((fram(fra((fram(fra((fram(framframs((framcos((fram((fram((framcos((fram((framcos((frams((fram((fram((framos((fram((framcos((framcos((fram(fraram((fcooss((fram((fram(fraaos((frams((framam((fram((framos((framras((fras((fraos(cos((frara((fras((frramss((fram((framrra((fram((framraframs((frafra(framraaaaframaacos((fracc raac ss((fram((framaaaaffr(framframcoss amrammmco rr mras((framm((frammmc aramrammc fffrrra(frara(framcccc rrraramcc eCeCeCouneeeeCount+45unt+45eCount+4eeCount+45eCount+4eCount+45Count+45Count+45eCounteCount+45eCount+45eCount+45eCount+45Count+4Count+45Count+45Count+45eCount+45Count+454CoeCounteCeCeeCeCeeCeCeCouneeCounCount+45eCount+unt+45eCount+unt+4+Count+45nt+4unt+4+uount+tCount+45eCount+45ount+45eCeCoeCeeeCeC unt+455eeCounteCountount+45unt+45+4eCeCounne nt+ttt+4t+45n 4unt+45eeCCount+45ouee uuCount+45eCount+45tt++4t+454e t+45unt+44n ++45t+eeCeeeee t+t+tt+++4e +4eCount+45eeeCount+45eCeee teee 555eee 5eee o n 5eee tt+45eee oo ttt+eeeeeCC unttt+45teeee o cc)*cc*ccSpcSpdcS*cSp*cSpdcSpdcSp)*cSpdcSp)*cSpdppdcSpcSp)*c)*)*cS*cSpd*cSpcSp)*ccSpScS*cSpd)*cSpc*cSpd)*cS)*cSpdcSpdSp)**) cSpdcSp)*c)) p)*cSpd)*ccSppd)*cSp)* pccSp)*cSpd)*cSpd*cSpd)* SSSSppd)*)*c*cSpdSS)*ccSSpdpd)*cSpSpdpd))**cS dd)*cS d)**)*cSS)))) cSScSp) ccScSpp) ccSccSpp

c camerac c cam cam camera camera camecamercamecam cccccccameccameraamcameraaaameraamermerameramermeramemeeerameraeraerrrrraaa c camera camera camcaaaamea cammemeameeeeeermeraraaaaaa cccammeemeraacaa e aaa(cZ(cZccccccZZZZZ(cZooooooo(cZoomcZoo(cZoooom(cZoomomZoomcZoom(cZoomZoommmom sm som som sssom ssom ssssssom s((c((((c(c(cccZo(cZoomZoomZoom sZoom sZoomooZo(cZoomZoomZooZoom(cZoom somcZoomZoomm sm som ssssom s(((ccccZoomoomoomo m ssss(((cccc ooooo sc oo ssss((((((aaaaaaaa oo( ooc o mm smc(cZoomoooomooooZoZoooooo(c oooo soc oooc o((

f f f ffonfonfonoonfofofofffoofooo f fonfofofoofooffonfoo ffofof f f fonfonffonfof fffon f fof fo fffo f foffofofo ffonf

meraaeraeraeramemmmmmeraeraeerammmmeeeraeeraraeraeraermmeramerareraeraeeraaa ZoocZoomoom(cZooZcZoomoomcZoom(cZoomZooZooooooooZoocZoomcccZcZoomcZoomooZoom(cZZoomoZoomom(cZcZoomcZoocZoomZoooomZoomocZZoocZoo(cZoooccZZZoommc(cccZZZ(cZoomcZcZoooommmc(cccZcZ(cZ om(cZooZoommZooom(cZo(cZ(cZ(cZ(cZZooooooo(cZZ((c(c(ZoZoZoZoZoZooZoooZooZoooooZooZooooZooooZZZooZoZZZZZ

oaoaaataoatoatattatoaatoatoaatoaattataaoaoaoaaaao cSSSZooZZZcZ oZZc oo

ount++ooat ooloololoooooooo cSS

, 0,0000unt++nt+

ooooooooooooooooo

und(2und(2und(2und(2nd(2nd(2dd(2und(2undnd(2nd(2d(nd(2nd(2nd(2ddd(dd(nd(ddd((d 2ccZcZcZcZcZZZocZocZcZcZZccZZoccZZccZcccccccccZcc

d(2d(2d(2(2d(2d(2d(2ddd(2d(2(dd(floflofloaflofloaoaofloofloaoooofloaoloololfloooaloloff of of

t ccccccccfflfllll

.print.printprinprinpriprint.print.prinprprintprinprinprprintrintpprinprinprintprinrintprintintpripprinrintrinnnnnnnnnnin

adFoadFoadFoadFadFodFodFdFoadFadFoadFdFdFodddFodadFadFadFdadFdFadFoadFodFdFodFFdFdFFFFoo

backgrobackgrobackgrobackgrobackgrobackgrobackgrobackgrobackgbackgrobackgrobackgrobbackgrobbackgrobackgrobackgrobackgrbackgrobackgrobackgroackgrockgroackgackgackgrobackgrobackgrbackgrobackgrorobackgrobackgrockgrobackgrobackgrobackgrobbbackgrobackgroackgrobackgrockgackgrobackgroackgrogrorobackgrobbackgroackgroackgroackgbackgroackgrobackgackgrobackgrbackgrobackgc ggbackgrockgrogb ckgrocackgackgackgkgrob cc rackgrob ckgc grorac gkgrork rrob kgbackgrobbackgrobackck oocc oc oc undununundundundununundnundundundunundunnunundununuundunundndunununuundnnuuunuunuuuunununnnnduunuunnnnuuununnunundundunnnnnnnnnnnnnndunnndd/*float/*float/*float/*float*float*float*floa*float/*float*floatf*floatloatloatfloatfloaflolooo*floatlo*floatloaataatloatt/*floa*float*float*floatlooatt*float*float/*float*floa*floato*ffloo*floatt* loatfloatfloatlooataaattttttttloaooattlooaataaatttflo tt ccccccccccccccccccccccccccccccccccccccccc

ackgrackgroackgroackgroackgroackgroackgroackgrocckgroccackgkckgrokgkgggckgrockgroackgckgrckgroackgrogrogroooackgroockgrooackgackgroackackgckgrocckgckggrogkgkgggggggggggggggggg uunuununnunnnnnnundddddundununduunnnnndddggggckgrogggkgrokkggggggggggc gckggggggggggggg undddddfflfffflffffflflfflfflfllflofflflffffllfffllfflfffffffffff

floatllololoaloalooaoaaaaaaaaatatttffloatoaaaaatl aattaaaaaaaaaaoaaaaa

outpu outpu outpu outpu outpuoutpuoutpu outpu outpu outpu outpu outpu outpu outpu outpuoutpuoutpu outpuutpuutpuutpu outpuoutpu outpu outpu outputpuutpuutpu outpupuoutpuputp outpuoutpu ou outpuoutpu outpuu outp outpoutpuppptpoutpupuuut.prit.prit.prit.pt pt.prit.prit.prit.prinp.pr.prit.prit.prit.prit prprit.prt.prt.pt.prit prt.prit.prt.prit.pttt.pt.ptt.pt.t.tt p.ppriprt.pt.prprprprit.ppt.prpprpriptt.pprpprpptt.pt.prtt.pt.prpriprt.prt.prt.pr..t.prrrrp

font2 =font2 =font2 =font2 =font2 =font2 =ont2 =ont2 =oont2 =font2ont2ont2 =font2 =nt2 =nt2 =nt2 =font2 =t2 =t2ont2 =t2ont2 ont2t2t2font2 =nt2 =ont2 =font2 =font2 ont2nt2 =nt2 =nt2 =ont2 =t2nt2ont2 =t2t2 ofont2 =ont2 =tont2 =nt2nt2 ntt2 ==ont2 ==ntt =o t2oont ====nt2 = loaloaloadload loa loadoaoaoaoadoadFadFadFFdFloalloallo loadlo loadloadloaloadoadoaloaloadlloload loa loaadFloadF loadllooaadF load load loadoalolooaadadadlol adloaadFlololoaaaadFloooadloaaddaadlloadoo ddddloadlolololoadloloadddddddloadooaadddooaddddFlloaadFdddddddFloaadl adFa

camcammmerameraemeraameramerameraeraaerar (cZoom*( Z(cZZ(ccZoom*(c(cZoom(cZoom(cZoZoom(cZoomZoom*(cZZ(cZ( Za(

adFadFdaddadddad

ID_CMKF83

Plan

City Growth = Project Growth

Habitat Conduit Piping and TransformerCompressed Air Chambers Photovoltaics

Scripted Bacteria Behaviors

Java Script 2D

Excavated Bldg. Sand

Bacteria

Urea

Java Script 3D SCALE 1 : 0.001 Resulting 3D Model SCALE 1 : 100Calcified Forms Between Sand Particles

Scripted Geometry of Microscopic Bacteria

Sandstone Form Mold and Framing Construction Sequence

+

+

Chemical Reaction of Calcifying Sand Bacteria

SAND CALCIFICATION PROCESSES

CREATIVE GEOMETRIC AUGMENTATION

1

2

3

Page 4: Photovoltaics Harvest sun energy Electrical Energy SEDIMENT … · Photovoltaics_ Harvest sun energy Electrical Energy Compressed Air Chamber_ Storage Electrical energy stored as

ID_CMKF83