Associative hydrological Urban Metabolism

Page 1





Special Thanks to: Amy Reis and Julie KĂŚrsgaard Nicolas Villegas Giorgi for production The VanMater and Pedersen families support and Michael Weinstock for direction and inspiration



JensPedersen AndyVanMater Metab: Associative Hydrological Design with Urban Metabolism. Architectural Association School of Architecture Emergent Technologies and Design - Master of Science 2011


Table of Contents

02. Research

00. Topic Introduction 0.1. Abstract 0.2. Introduction 0.3. Population Growth 0.4. Computation 0.5. Project Diagram

01. Domain 1.1. Urban Migration

2.1. Waterfront City - OMA 2.2. Evolved Arid Cities in the Region 2.3.1. Baghdad, Iraq 2.3.2. Bandar-e-Abbas, Iran 2.3.3. Jeddah, Saudi Arabia 2.3. City Design 2.3.1. Precedents 2.3.1.1. The City of the Captive Globe 2.3.1.2. Hochhausstadt 2.3.2. Urban Metabolism 2.3.1.1. Kenzo Tange 2.3.1.2. City Dynamics

2.1.1. Water 2.1.2. New Cities 1.2. Qatar 2.2.1. New City Location 03. Elements 2.2.1. Arid Climates 3.1. Public Spaces 2.2.2. Densification 3.1.1. Cultural 1.3. Algorithmic Design 3.1.2. Greening & Linking 2.3.1. L-Systems 3.2. Buildings 2.3.2. Emergence 3.2.1. Parent Building 2.3.3. Agent Behavior 3.2.2. Courtyard 2.3.4. Metabolic Scaling 3.2.3. Distribution Strategies 2.3.5. Genetic Algorithms 3.2.4. Grouping 2.3.6. Ammann A3 Tiles 1.4. Computational Tools 04. Networks 2.4.1. Toggles 4.1. Electrical 2.4.2. A-Star 4.2. Transportation 2.4.3. Space Syntax 4.2.1. Streets 2.4.4. Minimum Spanning Tree 4.2.1.1. Coastal 2.4.5. Diffusion Limited Aggregation 4.2.1.2. Dessication 2.4.6. Woolly Paths 4.2.1.3. Network Optimization 1.5. The Rhino/Grasshopper Environment 4.2.2. Public 2.5.1. Computing Power 4.3. Hydrological 2.5.2. Simulations 4.3.1. Hybrid Theory 2.5.3. Computational discoveries 4.3.1.1 Desalination 4.3.2. The Canal 4.3.2.1 Generative Algorithm 4.4.3. Fog Catchers 4.4.4. Namib Desert Beetle (Stenocara) 4.4.5. Solar Stills 4.4.6. Hydro-phobic/phillic Surfaces 4.3.7. Solar Towers 4.4.8. Canal Railings 4.4.9. Coastal Manipulations

ii


05. Design Proposals

5.1. Tent-Pole City 5.1.1. Tissues Evaluations 5.1.2. Network Evaluations 5.2. Variable Height City 5.2.1. Tissues Evaluations 5.2.2. Network Evaluations 5.3. Low-Rise City 5.3.1. Tissues Evaluations 5.3.2. Network Evaluations

References in this document will represented by a number in square brackets example:

[33]

Image tags in this document will represented by a number in curly brackets example: {7}

06. Future Development

6.1. Reflections 6.1. Jens 6.2. Andy

07. Appendices

7.1. Bibliography 7.2. Space Syntax Images 7.3. Script

Any images without references are original artwork and all of the work presented in this document is licensed under the Creative Commons Attribution-NonCommercialShareAlike 3.0 Unported License. To view a copy of this license, visit http:// creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.

iii


00. Abstract Qatar has the most rapidly growing population but lacks the necessary space and infrastructure to accommodate the population growth. We will propose a new methodology of city planning, in order to layout the buildings, public spaces, transport, water, and electrical networks of a new costal city. Genetic and generative algorithms will assist in designing the initial layout of network and distribution strategies. A newly engineered system of real-time data gathering will assist us in determining when and how the city should respond to internal changes. The real-time data management system will give a quantitative evaluation of pre-determined performative criteria, which we will use to inform the growth and layout of the new city. Qatar is the most rapidly growing country boasting a 12.6% increase in population per year (2008 estimate). The oil and natural gas reserves in Qatar are among the richest on the planet providing an abundance of fossil fuel energy. The small country has no rivers or lakes, and with an annual rainfall below 75mm per year, major inhabitation is limited to the seashores of this peninsular country. Due to a long-standing British occupation, current urban morphologies in Qatar use western ideals that lacked an understanding of how to build in such a harsh climate. This inconsistency has lead to cities with high-energy consumption and even higher CO2 emissions. By creating a new strategy for development of a coastal city that incorporates the major infrastructural

00. Topic Introduction

1

frameworks of water, alternative electrical and transportation networks, alongside a distribution of building envelopes and public spaces, a more appropriate and expandable method of design can be implemented to handle Qatar’s growing population. We propose a strategy of adaptation and resource management based on negative feedback loops. This type of strategy is mostly found in natural processes, the most apparent of which is metabolism. The metabolic process controls the generation and distribution of energy in every living organism. The results of the metabolic process, such as eat, drink, grow, repair, dispose of waste, or cease to function, will be translated into a methodology of design, to control the dynamics of computational processes. This proposition will be proven through a study of generative and genetic algorithms, which we will use to create a city, along with its corresponding networks and building envelope’s. Real-time data gathered from the initial city, will alter the growth patterns and resource management strategies of the city, to maintain a specific population. The primary influence on the growth of the city will be water. Desert regions are susceptible to prolonged periods without access to fresh water, so our city will try to mitigate the issue of water access and incorporate water acquisition directly into the urban fabric. Through a study of the collective metabolism of other cities in the Persian Gulf region, we can derive appropriate urban precedents to design an adaptable urban


morphology for desert climates. Metabolic studies conducted by Michael Weinstock in his book The Architecture of Emergence, will aid in creating an appropriate framework for data management and network creation. We will evaluate the connectivity of the water and road networks, using the Space Syntax method developed Bill Hillier, a UCL professor. In addition to the efficiency of the internally generated resources of the city, we will evaluate our algorithms sustained population and building distribution, and determine which of the cities we created could be responsibly implemented in future societies.

Introduction We began by asking ourselves: what is a city? The word “city” simply means a governed place where people live. More often people consider a city a place where tall buildings are, or simply, a lot of buildings packed closely together. In this document we will not be using the word “city” according to its everyday interpretation, but rather as numbers, connections, networks, relations, and fitness’. Michael Weinstock, author of Architecture of Emergence, compares a city to a living breathing organism, that gathers energy and redistributes it to the organisms parts, just like a human would breath, eat, and drink, while our circulatory and digestive systems break down the energy and distribute it throughout our bodies. Weinstock puts a strong emphasis on the distribution of energy, especially the rate at which the energy is used. The biological equivalent is metabolism, or the “fire of Life” as he calls it[1].

Pier Vittorio Aureli supports the analogy in his book The Possibility of an Absolute Architecture, where he analyses the effects of the demolition of the city walls in Paris under the reign of Louis the XIV. The lack of city walls resulted in an uncontrolled and decentralized growth, which left architects with the responsibility of planning the cities distribution systems such as waste management networks (sewers) and roads. On this matter Vittorio says “… the architect addressed the new paradigm of the city as a space of circulation.”[2] Both references emphasize the networks and distribution systems of a city rather than the physical form or buildings within. Furthermore, Weinstock presents a method to generate these networks, and how their internal logic, relations, and distribution might work; this method will be further elaborated throughout this document and specifically the section labelled “Metabolic scaling” on page 29. To describe the idea briefly, there will be a series of flexible mathematical models that determine what resources are available for the city to sustain itself with a given population and time. The growth of the city is directly related to the available resources and time it takes to produce more. The goal for this project is to control a sequence of mathematical models that will generate a group of interrelated networks, which we will evaluate over time to derive harmonious results. So what is a city? A city is numbers, relations, and networks, but as we are 21st century architects, we are interested to see if the cities we create, will be relative to the image of a city.

2

00. Topic Introduction


{1} Human population growth rate in percent This diagram shows how population growth is concentrated in the least developed areas of the world most specifically Africa and the Middle East.

Population Growth By the time you read this document, the 7 billionth living person will have been born on this planet[3]. The human population has grown more in the last 100 years than the previous 100,000 years combined[4]. This rapid growth has set people and governments into a panic over how to house, clothe, feed, and manage the overwhelming number of people. Not only is the population growing at unprecedented rates, it is also growing unevenly across the world. There are heavy concentrations of growth in Africa and the Middle East (over 50%), as well as Latin America and India. In contrast, the more developed regions of Northern and Western Europe and North America are seeing either slow or no growth[4]. Despite the fact that most of the population growth is taking place in “under developed� regions of the world, the rate of urbanization rose past 50% around 2010[5].

00. Topic Introduction

3

Even in the least developed areas of the world, nearly 60% of the population will be residing in cities[5] which begs the question: how will we develop new cities as the current ones become overpopulated? While population numbers may be high and getting higher, humans have dealt with a doubling population for nearly two centuries, the real issue is the concentration of growth in specific locations that aren’t financially or infrastructurally prepared. According to Wolfram Alpha, Qatar is atop the world leader-board in population growth at an uncanny 12.6%. The country is among the smallest in the world and nearly all of their population resides in a single oversized city. Which, again brings up the question: how do we develop new cities as current ones, like Doha in Qatar, become overpopulated?

Computation is Key We believe that the answer to this and many more of the worlds difficult and pressing issues can be addressed through a computational medium. The


interactions of a city are infinitely complex, and a city is reliant on an infinite number of seen and unseen social and physical phenomena. The complexity of cities renders the task of generating a city from scratch, with the appropriate relations and inter-connectedness, incomprehensible to the human mind. Although we are not tying to tackle each and every issue of a city, the five factors we are attempting to interrelate can create an infinite variety of potential urban results. In order to handle even a fraction of this data, we will need a powerful computational model that can toggle between data sets and re-prioritize parameters in a dynamic and calculable fashion.

situation. A manual method would simply take too much time and effort. A computational method allows us, as designers, to set up and control initial conditions and rules; the computer simply executes the rules to infinitum, or until a criteria we specify, like maximum population, is met. We can input as many rules and possibilities as we desire, apply a variety overrides and influences to the parameters, and let the computer sort out the details. We are in control but not prescribing the outcome of the design, which is to say, we are not oversimplifying the process or results to a point where we would be able to prescribe the city.

An agent based computational model will enable us to simplify the meshwork of relations that makes up a city. By using agents we only have to embed small rules that will propagate throughout the city we create. An example of an embedded rule would be how buildings orient to roads, canals, and solar exposure. These rules of engagement only need to be defined once, and as the buildings increase in number, a city would emerge.

In conclusion, we are using computation because it is the only way to do something like this. Today’s technology affords us the ability to tackle problems that architects and designers of previous generations were not able to manage through the power and implementation of computation.

While it may seem possible to apply simple orientation rules manually, there could be as many as 20,000 separate buildings in a city. The buildings also take part in a probationary period of time where they are allowed to move and re-orient to changing conditions around them, such as the constantly growing canal network, or a collision with a neighboring building. There are multiple factors in constant feedback loops, where the rules and growth models are constantly adapting to the current

4

00. Topic Introduction


Water

Urban Migration

New Cities

Population Growth Qatar

Climate

Diagram of explorations

research

This diagram serves as a guide to our explorations. We

began by combining our interests in computation and complexity with the global issue of population growth. This research led us to attempt a

Densification

new city in a place that needs rapid change: Qatar. By combining five major topics: Hydrological networks, road networks, electrical grids, building envelope distribution, and public space distribution, we developed an interrelated model

Elements

of associative networks and elements that form a city. The same diagram can be seen on the following page grouped by color, which will be present at the bottom of each page each section of the book. The branching logic shown here was useful in visualizing the progress of this thesis, but the interrelatedness of these topics is far more extensive than we could hope to show.

Algorithmic Design

L-Systems Emergence Agent Behavior Metabolic Scaling

Computation

Genetic Algorithm

Networks

Toggles A-Star

Tools

Space Syntax Computing Power

Rhino and Grasshopper Simulations

00. Topic Introduction

5


OMA Waterfront City

Bahdad, Iraq Bandar-e-Abbas, Iran

Cities in the Region

Jeddah, Saudi Arabia Captive Globe

Precedent Cities

Hochhausstadt

City Design

Kenzo Tange

Urban Metabolism

City Dynamics

Clusters/Blocks Buildings Orientation Cultural

"Sticky"

Public Spaces

Solar

Green Spaces

Shortest

Urban

Longest

Minimum Spanning Tree

Pocketed

Diffusion Limited Aggregation Woolly Paths

Transportation

Area

Ammann A3

Public Spaces

Electrical

Proximity

Grouping

Streets Public

Dessication Coastal Connectivity Branching

Sea Water Canals

Resource Growth

Hydrological

Boston

Coastal Manipulation

Undulations Stenocara Beetle

Potable Water

Solar Stills

Capture Tower

Fog Catchers Desalination & Storage 6

00. Topic Introduction


Thesis Focuses

Water

Urban Migration

New Cities

Population Growth Qatar

research

Climate Densification

Elements

L-Systems Algorithmic Design

Emergence Agent Behavior Metabolic Scaling

Computation

Genetic Algorithm

Networks

Toggles A-Star

Tools

Space Syntax Computing Power

Rhino and Grasshopper Simulations Thesis inspiration

00. Topic Introduction

7

Scripts/methods implimented


OMA Waterfront City

Bahdad, Iraq Bandar-e-Abbas, Iran

Cities in the Region

Jeddah, Saudi Arabia Captive Globe

Precedent Cities

Hochhausstadt

City Design

Kenzo Tange

Urban Metabolism

City Dynamics

Clusters/Blocks Buildings Orientation Cultural

"Sticky"

Public Spaces

Solar

Green Spaces

Shortest

Urban

Longest

Minimum Spanning Tree

Pocketed

Diffusion Limited Aggregation Woolly Paths

Transportation

Area

Ammann A3

Public Spaces

Electrical

Proximity

Grouping

Streets Public

Dessication Coastal Connectivity Branching

Sea Water Canals

Resource Growth

Hydrological

Boston

Coastal Manipulation

Undulations Stenocara Beetle

Potable Water

Solar Stills

Capture Tower

Fog Catchers Desalination & Storage 8

00. Topic Introduction


References [1] Liaropoulos-Legendre, George. Mathematics of Space. London: John Wiley & Sons, 2011. Print. PP. 102 -107 [2] Aureli, Pier Vittorio. The Possibility of an Absolute Architecture. Cambridge, MA: MIT, 2011. Print. PP. 158-60 [3] Datz, Todd. “World Population to Surpass 7 Billion in 2011 - July 28, 2011 -2011 Releases - Press Releases - Harvard School of Public Health.” Harvard School of Public Health - HSPH. 28 July 2011. Web. 07 Sept. 2011. <http://www.hsph.harvard.edu/news/pressreleases/2011-releases/world-population-7-billion.html>. [4] McEvedy, Colin, and Richard Jones. Atlas of World Population History. London: A. Lane, 1978. Print. [5] “Urbanization.” Fairfield University | Faculty Web Server. Web. 07 Sept. 2011. <http://www. faculty.fairfield.edu/faculty/hodgson/Courses/so11/population/urbanization.htm>.

Images {1} http://upload.wikimedia.org/wikipedia/commons/2/27/Population_growth_rate_world.PNG

00. Topic Introduction

9


10

00. Topic Introduction



domain


The following section will discuss:

Water

Urban Migration

New Cities

Population Growth Qatar

research

Climate Densification

Elements

L-Systems Algorithmic Design

Emergence Agent Behavior Metabolic Scaling

Computation

Genetic Algorithm

Networks

Toggles A-Star

Tools

Space Syntax Computing Power

Rhino and Grasshopper Simulations

01. Domain

13


OMA Waterfront City

Bahdad, Iraq Bandar-e-Abbas, Iran

Cities in the Region

Jeddah, Saudi Arabia Captive Globe

Precedent Cities

Hochhausstadt

City Design

Kenzo Tange

Urban Metabolism

City Dynamics

Clusters/Blocks Buildings Orientation Cultural

"Sticky"

Public Spaces

Solar

Green Spaces

Shortest

Urban

Longest

Minimum Spanning Tree

Pocketed

Diffusion Limited Aggregation Woolly Paths

Transportation

Area

Ammann A3

Public Spaces

Electrical

Proximity

Grouping

Streets Public Sea Water Canals

Hydrological

Dessication Coastal Connectivity Branching Resource Growth Boston

Coastal Manipulation

Undulations Stenocara Beetle

Potable Water

Solar Stills

Capture Tower

Fog Catchers Desalination & Storage 14

01. Domain


Urban Migration Sometimes called Urbanization, urban migration is the process in which the global population shifts from rural areas to urban areas. The population growth in the developing world has been drastically higher in urban areas as opposed to rural ones, and while “mega-cities have captured much public attention, most of the new growth will occur in smaller towns and cities, which have fewer resources to respond to the magnitude of the change[1].” The phenomena of urban migration is actually a resource issue. Urban places are actually very beneficial to the overall progress of an area, and the benefits increase at a higher rate than growth of the population. But if not handled properly, the growth can cause poverty, shantytowns, pollution and sanitary issues, among other things. Migration is the number one contributor to the growing urban population. If the rate at which people arrive can be handled by the infrastructures of a city then the benefits are far reaching. In principle, cities offer a more favorable setting for the resolution of social and environmental problems than rural areas. Cities generate jobs and income. With good governance, they can deliver education, health care and other services more efficiently than less densely settled areas simply because of their advantages of scale and proximity. Cities also present opportunities for social mobilization and women’s empowerment. And the density of urban life can relieve

01. Domain

15

pressure on natural habitats and areas of biodiversity. The challenge for the next few decades is learning how to exploit the possibilities urbanization offers. The future of humanity depends on it[1]. Urban places should be the focus of design in the coming decades. The manor in which cities are designed to handle and manage resources is the number one factor in determining weather a city will brew success or poverty. Securing the proper resources to sustain the growing population is not only a humanitarian issue but an economic one as well.

Water Water is the most important resource to civilization, in fact water is the precursor to all life on this planet. Most life forms consist of a majority of water and all life requires water as means of survival. Human civilizations since the era of the Neanderthal cave dwellers begun at, or near bodies of water, and until recent technological advances in water reclamation, potable water has been a requirement for urbanization. Somewhere between 70 and 75 percent of the earth’s surface is covered with water, and of the incomprehensibly large volume of water on the earth (about 1,386,000,000 km3[2]) humans can only use about three tenths of one percent of this water. This usable water is found in groundwater aquifers, rivers, and freshwater lakes, unless you are in a country like Qatar, which has none of these[3].


As the per capita use increases due to changes in lifestyle and as population increases as well, the proportion of water for human use is increasing. This, coupled with spatial and temporal variations in water availability, means that the water to produce food for human consumption, industrial processes and all the other uses is becoming scarce.[4] According to the experts at water. org, the current “Water Crisis” we are experiencing is not due to climate change or ground water contamination or some cosmic fluctuation, but it is simply a matter of the population being too high. Over seventy

percent of the water that humans use goes into agricultural endeavors but domestic use can cause serious water shortages as well. In places like Phoenix, AZ, water use can exceed 1000 liters per person per day[3]. Fortunately, 100% of Qataris have access to treated water supplies that the country either purchases from Saudi Arabia or desalinates for themselves for domestic, industrial, and agricultural use. Qatar lacks the proper infrastructure and water access to expand beyond Doha’s current distribution network and as a result, another method needs to be developed to handle the growing Qatari population.

{1} Utrecht, Netherlands 1652. Water was the organizing principle of the cities of the past. It was used as a life support system (human and agriculture), a defensive mechanism, transportation, trade and commerce axis, as well as a way to organize and segment a city into blocks and districts. In Utrecht’s case, the city would not grow horizontally unless the canal network did too. The organization shown here is still present today. Even the triangle shaped defense canal remains.

16

01. Domain


New Resource-Based Cities The current method of creating new cities, which can be seen most commonly in China and North America, is that cities are created by first making a road network, then filling spaces around the roads with buildings and infrastructure. What we propose instead uses an anticipatory growth model that is based on the viable growth of a cities resources, which means that the city can only increase its population as the cities resources can sustain it. In this way we are separating the idea of city making from a formal or organizational priority. We will base our growth model on water, the one substance that is needed for all life on earth. We will also be replacing the primary infrastructure of roads, with canals, because we are using canals as water gathering machines. The growth and distribution of the canal network will guide the morphology of the city and the resulting placement of buildings and public spaces within the confines of the network. By defining our growth on the resources gathered and consumed, our proposal mimics a metabolic process[5], which shifts the paradigm away from the architects definition of urbanization, which is to expand infrastructure and develop the earth’s surface for human habitation. Although we will try to mimic the biological process of metabolism as closely as we can, one major difference with the built environment, as opposed to the grown one, is that our city will not shrink. In a metabolic context, the organism would lose weight, or decrease activity when their energy requirements are not meet, but in today’s

01. Domain

17

urban society it would be irresponsible to propose that cities be built and demolished in cyclical intervals. It also serves that the productivity of a city should not decline, but rather increase productivity as resources become scarce, so the city could make up for the loss in energy. In conclusion what we will propose is a new paradigm for urban development, which unlike previous projects, is not based on urbanization but on resources which are created within. We will refer to this city as Metab throughout the document.

{2} The natural landscape of Qatar is very typical for its climatic zone[9], which is to say it has very little topography changes. The landscape varies from 0-100 meters above sea level[10], and has little to no natural occurring surface water[11]. The climate is hot with average yearly temperatures ranging from 20-35 degrees Celsius, and the average yearly rainfall is about 75mm[10] and the relative humidity ranges from 75% in the morning to 43% in the afternoon[12]


cities[8].

Qatar

Although Qatar is a country with a healthy economy and growth, the data has a dark side. In 2007 Qatar had the highest CO2 emission per capita in the world[13] due, in part, to the fact that Qatar is a world leading oil and natural gas producer. Another reason Qatari greenhouse gas emissions are so high is because they are forced to either purchase water from Saudi Arabia or generate their fresh water resources through an energy expensive desalination process.

Qatar has been a self-governing entity since 1971, prior to 1971 Qatar was a British colony[6]. According to the 2010 census, Qatar has a population of 1.7 million people, and a population growth of 12.6 % per year which is ranked as number 1 in the world[7], furthermore Qatar has the highest GDP growth per year in the world which sets the stage for a continued growth. More than half of Qatar’s population is situated in the capital Doha, the rest of the population is scattered throughout the country in smaller

This diagram clearly shows how unevenly the population in Qatar is distributed.

Doha

18

01. Domain


Location Once we knew we were going to make a city in Qatar we set up a simple script to determine the ideal location along the coast to build. From the beginning Metab was envisioned as a place for the oil and gas workers to live, and so we propose that the city be closer to their workplace than Doha currently is. It was not surprising to us that the oil and gas industries had found the exact same point and had already located their processing center at the location we found. From our understanding, the amount of people working at this location and living in Doha is a majority of the population. Rather than finding an alternative location strategy, we simply moved our city south, in between Doha and the processing center.

The Ras Laffen, Nakilat, and others, international terminal and processing facility.

To the north

Metab To the south

There is also a natural reserve containing a mangrove landscape south of our proposed site. The natural reserve can be used as a weekend attraction or research landscape in order to further the agenda of greening the desert which will be described later in the document.

The Al Dhakira Natural Reserve in Qatar. Home to nearly all of the biodiversity within the country

01. Domain

19


Legal Boundary North Field Oil Rig Oil Field Company Owenership A diagram of all of the oil fields in Qatar. Using a simple genetic search algorithm we placed a point on the coast of Qatar and measured the distance from every rig to the point we placed. Using the Galapagos solver within the grasshopper plug-in, we were able to find the point on the coast that had the shortest combined distance from all of the rigs.

20

01. Domain


Arid Climates

Densification

As we mentioned in “Population Growth” on page 3, the regions of the world that will see the most dramatic increase in population are Africa, the Middle East, Latin America, and India. According to the Köppen - Geiger classification chart, the climates of BWh and Aw, dominate all four regions.[14]

One way to help mitigate the growing population as well as the hot climate, is to create denser urban places.

“B Arid climates Pann < 10 Pth BS Steppe climate Pann > 5 Pth BW Desert climate Pann ≤ 5 Pth”[14] “A Equatorial climates Tmin≥ +18 oC Af Equatorial rainforest, fully humid Pmin ≥ 60 mm Am Equatorial monsoon Pann ≥ 25 (100 - Pmin) As Equatorial savannah with dry summer Pmin < 60 mm in summer Aw Equatorial savannah with dry winter Pmin < 60 mm in winter”[14] “h Hot steppe / desert Tann ≥ +18 oC”[14] All of Qatar is in the BWh category and much of the world’s population is at the mercy of desertification. Desertification is the persistent degradation of dry land ecosystems by variations in climate and human activities. Home to a third of the human population in [the year] 2000, dry lands occupy nearly half of Earth’s land area. Across the world, desertification affects the livelihoods of millions of people who rely on the benefits that dry land ecosystems can provide[15].

01. Domain

21

One environmental strategy for desert-like urban places is to build up instead of out. Tall skinny buildings packed closely together provide shade for each other and in some cases the pressure differences due to uneven solar exposure can cause a gentle breeze throughout the day[16]. Doha was developed very rapidly and most of the progress used western ideals of city planning which ignores the ability to let dense places work to their environmental and cultural advantages. The emphasis on the road network in Doha makes it a difficult candidate to densify, and according to research that we have done, the potential housing gain from densification is no higher than 20% of the population. If the population of a place were in the multiple millions, the gain would be worth the effort provided the infrastructure could support something like that. Doha, on the other hand has already reached its infrastructural limits and therefore we see densification as an irresponsible strategy to handle Qatar’s incoming population.


Qatar

{3} [the] key to calculate the climate formula of Kรถppen and Geiger for the main climates and subsequent precipitation conditions, [are] the first two letters of the classification... The polar climates (E) have to be determined first, followed by the arid climates (B) and subsequent differentiations into the equatorial climates (A) and the warm temperate and snow climates (C) and (D), respectively[14].

22

01. Domain


Water

Urban Migration

New Cities

Population Growth Qatar

research

Climate Densification

Elements

The following section will discuss:

L-Systems Algorithmic Design

Emergence Agent Behavior Metabolic Scaling

Computation

Genetic Algorithm

Networks

Toggles A-Star

Tools

Space Syntax Computing Power

Rhino and Grasshopper Simulations

01. Domain

23


OMA Waterfront City

Bahdad, Iraq Bandar-e-Abbas, Iran

Cities in the Region

Jeddah, Saudi Arabia Captive Globe

Precedent Cities

Hochhausstadt

City Design

Kenzo Tange

Urban Metabolism

City Dynamics

Clusters/Blocks Buildings Orientation Cultural

"Sticky"

Public Spaces

Solar

Green Spaces

Shortest

Urban

Longest

Minimum Spanning Tree

Pocketed

Diffusion Limited Aggregation Woolly Paths

Transportation

Area

Ammann A3

Public Spaces

Electrical

Proximity

Grouping

Streets Public Sea Water Canals

Hydrological

Dessication Coastal Connectivity Branching Resource Growth Boston

Coastal Manipulation

Undulations Stenocara Beetle

Potable Water

Solar Stills

Capture Tower

Fog Catchers Desalination & Storage 24

01. Domain


1.3.

Algorithmic Design Math has always been a big part of architecture and engineering. Palladio used such a rigorous mathematical framework for his designs that George Hersey and Richard Freedman designed a piece of software that can re-create Palladio’s villas and even design original plans that would fool Palladio himself. There are so many tools and techniques that designers can extract and manipulate from mathematical principles, and design by definition is an algorithm. In the following section we will discuss the tools that we have been created, adapted, or been inspired by in order to help us with Metab.

01. Domain

25


{4}

“good call using a computer here on step two.�

26

01. Domain


L - Systems L - systems contain a large variety of fractal studies including branching, which is fundamental in all forms of nature. Everything from the largest branch of the largest sequoia tree, to the smallest capillary in the smallest mouse, is a part of a branching network. These systems distribute energy and fluid throughout an organism which makes them vital for life. In a city, networks are less apparent in topology, but perform the same functions as in nature. Since we are going to create all of these infrastructural networks, a biological parallel seems not only appropriate, but necessary. If we were to design a [...] system from scratch, one requirement would be that our system should be capable of transmitting things from potentially any source to any destination. However, we would also want our [...] system to have as small a volume as possible, since it is obviously not feasible to make [a city] that consists entirely of plumbing. Nature solves the problem by building [...] systems with fractal geometry that achieves both of the goals[17]. Gary William Flake nearly outlined our intentions for creating the canal network for Metab. We are not looking to minimize the volume of the water, but there is certainly a balance between the amount of space that the canals cover in relation to how much usable urban surface remains. Branching in biology can also refer to the evolutionary history of something. There are two main types of speciation branching Polytypic and Monotypic,

01. Domain

27

Monotypic branching splits at every instance of branching and in each of those splits, only a single branch survives. Polytypic branching can split multiple times and have multiple successors. Both of these method can also be used in genetic algorithms to solve for fit individuals, which we will discuss later in this section.

Emergence Emergence is a term often used in context with evolution to describe how things came to be[18]. The context that makes emergence specifically relevant to this project is decentralized intelligence. Anthills contain a large number of unintelligent agents, but the localized interactions between ants create an intelligent global whole[19]. Emergent systems are extremely robust. They are comprised of simple rules which can be carried out by simple agents, and if any one agent or rule is broken, the system will not suffer and may not even notice the change. Brian Goodwin documents this phenomena with an experiment, where single ants were placed in a maze to find food. Almost certainly the ant could not find the food, even with multiple tries, and even though the food never switched place. The same maze and food source was tested using a group of ants. Although it took them some time, the group found the food source every time[20]. We can conclude that global intelligence can be achieved through localized interactions, and we can increase global intelligence by increasing the number of agents. This type of self-organizing behavior will be abstracted and implemented


throughout Metab. The sheer numbers of interactive parts in a city will ensure a completely emergent system. We are using emergence as a tool for creation. We cannot anticipate the outcome of Metab’s growth process, but we can infinitely alter the outcome by altering the rules of which each agent is conforming.

that the individual is reliant upon its relations, because you can deduce a certain level of knowledge about a person by understanding their friends, family, hobbies etc[22]. This understanding can lead to a system of organization, which is autonomous and decentralized, this kind of system is also known as an agent based system.

Agent Behavior

Agent systems, within the Rhino/ Grasshopper workspace, can consist of anything from points to breps. The agents interact with each other based on a localized, individual rule set. The flexibility of the rule set or behavior, is the underlying

According to Marc Auge, we are living a world with an abundance of “ego”, this means that the individual is king and he interprets the world according to himself, and for himself[21]. Furthermore Auge argues {5} This diagram of the Human Lung shows the clear Branching pattern that the body uses to diffuse blood in order for the oxygenation process to occur. In this case, the white branch with the circle would be S0, the following white branches would be S1, and so on.

Sgen= S0(αgen) 28

01. Domain


when a road meets a canal, an entirely different behavior can be embedded. When we repeat this operation over 5 systems, meaning 120 potential combined behaviors, over thousands of iterations with a random deviation at every step, the potential outcome is far beyond anything we could attempt with any other system.

Metabolic scaling

{6} Snowflakes. Every snowflake is unique in its shape size and pattern, yet every snowflake has the same formative logic. This type of variety is simply the result of the crystallizing process of water. While pollutants and falling conditions can warp the outcome, the hydrogen-oxygen bond in water always crystallizes in a hexagonal pattern. This process repeats itself until the ambient temperature and humidity prevent further grouping.

beauty of agent systems. Simple tasks, when executed numerous times, or a over a large sampling of agents, leads to complex results. Furthermore, since the final outcome is a direct result of the localized intelligence of the agents, there is no topdown control, which is desirable due to the incomprehensible complexity of a city. By implementing relational agent based logic in more than one system, roads and canals for example, we can create another level of complexity by defining type-specific behaviors. When a road meets another road, they will act one way, but

01. Domain

29

The city is an incredibly complex system that is made up of hundreds of different variables, both visible and invisible. From the watershed to the economy, each factor has an ambiguous impact on the system as a whole. When looking at the city as a single living system though, it seems to posses a metabolism like the one inherent in all living systems. Biological metabolism functions through surfaces and branching networks, and there has been a century or more of research into the mathematical parameters common to all living forms. In cities too, the operation of metabolism occurs through urban surfaces and urban networks, and is a remarkable similarity between the mathematics of biological metabolism and urban metabolism.[24] Keeping this principle in mind, there is essentially one formula that can determine the makeup and subsequent scaling of any network or mass sensitive system: Y = Y0(Mb) Where Y is some observable characteristic, Y0 is a constant, related to


Sized to scale with Beijing

{7,8,9} The scaling relationship of organisms and potentially cities. The population to size ratio of Beijing (top) can be compared to Vatican City (right) according to the metabolic scaling relationships shown in Kleiber’s Law diagram of metabolic rate according to mass, which is consistent across hundreds of scales of magnitude. Could cities work the same way?

30

01. Domain


that characteristic. M is the mass of the object in question, and b is almost certainly a multiple of 1/4.[25] A variation of the same equation results in Sz= S0(αz) which does not take mass into consideration but the depth of a given network. Using a tree as a model: Sz is the size of a branch at the “z” depth level (length or width). S0 is the size of the trunk, and αz is a constant where α < 1. In the case of most natural systems that constant is about .75, which not surprisingly follows the logic of mass based scaling directly.[26] This means that the difference between the metabolic rate and mass, can be treated in relation to the size to population ratio of Beijing and Vatican City. The dynamics of cities have multiple sets of unrelated data that scale according to metabolic theory, but not according to biological precedents. See “City Dynamics” on page 76 for details on this topic.

Genetic Algorithms An algorithm is a set of rules for solving a problem in a finite number of steps. A genetic algorithm is a very large set of algorithms valued and sorted in order to find a solution to a problem where the steps are difficult to understand or are not defined at all. Also known as stochastic search algorithms[27], genetic algorithms search for the fittest solution within a given morphospace[28]. A morphospace is characterized as the range of viable developments in a morphological process; this means that there will be deviations in growth patterns for every individual of a

01. Domain

31

population but only some of the deviations will be beneficial. The fittest solution(s) will be derived based on a set of evaluation criteria, the fittest solution would then be the one with the best evaluation set. The reason to say “fittest” instead of “optimal” is that optimal implies that the solution is the absolute best, but fittest refers to the better out of a group, and if you expand the group (i.e the morphospace) the fittest solution might not be the same.

{10} Charles Darwin explained the morphospace phenomena best through his work with finches on the Galapagos Islands. Each finch has adapted a different beak to optimize their ability to gather food but all of the solutions are good ones. The large ground finch (1) has a crushing bill for eating seeds. The large insectivorous tree finch (2) has a utility bill good for grasping tools. The sharp beaked ground finch (3) is a seed eater like the large ground finch but pierces his nuts rather than crushing them. The warbler finch (4) is insectivorous and uses its bill to reach into small places for a meal.

In order to solve “multi-parametric” optimization, we have worked with the embedded genetic solver in grasshopper named “Galapagos”. Galapagos takes any number of variable values (parameters), and combines them in a random order. The solver evaluates the results of the random combination, stores them according to a fitness criteria and repeats the process thousands of times until the fittest solution of the given morphospace has been found.


Genetic algorithms, while powerful design tools, have the potential to lead to under-whelming results. Take the diagram within this paragraph for example. Using Galapagos to randomly paced points on this surface (using U, V values) in search for the highest point, it is likely that we could get a point on the tip of the blue peak. Galapagos alters the input data as it runs, so if a point were placed on the smaller, blue peak early in the experiment, Galapagos would begin placing points around the blue peak because it had previous success in that area. Once the algorithm narrowed the morphospace to a very small domain of the surface, it would return a point on the blue peak as the highest value it found. This phenomena requires that we constantly test areas that returned poor results in order to prevent “peaking early” within the morphospace.

Biological design Biology has been widely used through design and architecture as an inspiration for patterning. Tom Wiscombe, the founder of Emergent Architecture, has incorporated Voronoi grids into many of his designs[1] as a way to enhance “the formal, spatial, and atmospheric effects produced”[2]. We see Wiscombe’s use of voronoi grids as a strategy to increase the phenomenological value of his designs, but he ignores the reasons that biology chose the forms or patterns that it did. We agree that many biological systems and their patterns have a

high aesthetic value, but we do not believe that this is the way biology should be used in an urban or architectural context. We believe biology should be used as a system not as an analogy, because biology has evolved over time creating optimal solutions for very specific challenges. Some examples would be the optimal spiral patterns found in sunflowers to maximise solar exposure[3], the thermal control of termites mounds[4], and the dynamics of an embryological process[5]. Unless these systems are adapted to respond the challenges they have evolved to handle, their use or interpretation remains as a simple aesthetic. Metab will present a series of abstracted systems, which stays true to the intended function of the biological equivalent. We will achieve this through a process of computation that will ensure optimal solutions above an aesthetic choices. We believe that this process presents a contemporary and intelligent way of embedding biology and evolution into design, architecture, and urbanism.

Amman a3 In order to fill Metab with buildings, we first need to develop a system to organize the territory. In the early stages of the research development we looked into tiling patterns as a way of initially dividing surface of intervention. Aperiodic tiling is a graphical representation of a fractal, and it allows for the infinite division of a given surface without

32

01. Domain


monotonous repetition. In some cases, such as the icosahedron based “Danzer tile� the tiling can be done in three dimensions, but most do not translate well into architectural applications. Any planar aperiodic tilling method has the ability to completely cover a surface without any gaps or overlaps in the pattern[36]. Unlike most aperiodic tiles, including other sets from Ammann, the A3 set can easily be re-imagined into architectural elements. Mathematically, T = {T1, T2, ........ Tn} where T1, T2,...Tn .are known as tiles of T. If T is a tiling, then the number of tiles in the tiling is always countable, however, there can be infinite number of tiles, and every tile of T, is enclosed within its boundary[35]. Robert Ammann was a mathematician born in 1946 who made several contributions to the field of aperiodic tiling. In 1977 he discovered a series of sets of aperiodic tiles. Among his discoveries is what is known as the Ammann A3 Set. This particular set uses the golden ratio as inflation factor and it can fill an infinite amount of space with an infinitely deep fractal bridging over all ranges of scale. Through the development of the project, we manipulated the tile to explore the types of urban tissue that can be achieved by using it as building generator.

01. Domain

33


r tile

q tile

p tile

There are 3 distinct tiles each made up of a combination of itself plus the two others. The tiling set we made here suppressed the “r� tile at each subdivision which created the pattern seen here

34

01. Domain


Water

Urban Migration

New Cities

Population Growth Qatar

research

Climate Densification

Elements

L-Systems Algorithmic Design

Emergence Agent Behavior Metabolic Scaling

Computation

Genetic Algorithm The following section will discuss:

Networks

Toggles A-Star

Tools

Space Syntax Computing Power

Rhino and Grasshopper Simulations

01. Domain

35


OMA Waterfront City

Bahdad, Iraq Bandar-e-Abbas, Iran

Cities in the Region

Jeddah, Saudi Arabia Captive Globe

Precedent Cities

Hochhausstadt

City Design

Kenzo Tange

Urban Metabolism

City Dynamics

Clusters/Blocks Buildings Orientation Cultural

"Sticky"

Public Spaces

Solar

Green Spaces

Shortest

Urban

Longest

Minimum Spanning Tree

Pocketed

Diffusion Limited Aggregation Woolly Paths

Transportation

Area

Ammann A3

Public Spaces

Electrical

Proximity

Grouping

Streets Public Sea Water Canals

Hydrological

Dessication Coastal Connectivity Branching Resource Growth Boston

Coastal Manipulation

Undulations Stenocara Beetle

Potable Water

Solar Stills

Capture Tower

Fog Catchers Desalination & Storage 36

01. Domain


1.4.

Computational tools, discussions, and optimizations Computation is a field of study that is separate from architecture. Speed, size, and data management are taken for granted in today’s consumer computing world but projects like this one may not have been possible ten years ago. We have performed this entire project on two laptop computers (specs to come) using McNeel Corporation’s, Rhinoceros 4.0 (Rhino) and David Rutton’s Grasshopper Plug-in.

01. Domain

37


{11} A map of the internet aka our support staff

38

01. Domain


Toggles Toggles are simple. Acting as the gatekeepers of information, toggles allow one set of data to pass and alter the circumstances of the experiment, while simultaneously holding an entirely different outcome behind a simple switch. In the case of an electrical circuit there are two stable states: on and off. Those same commands, on and off, when set up in series or parallel arrangements can produce infinite possibilities. Take a computer for example. At the deepest level of computer language is a code called binary. Binary code is only zeros and ones yet those simple zeros and ones (on and off) can reproduce the most complex systems ever studied. Using toggles to switch between different styles and characteristics of our networks, layout, distribution, and any other facet of the design, gives us the possibility to create a nearly infinite number of different cities on top the extreme variation we outlined in “Agent Behavior” on page 28. The ability to produce endless variation also means that specific targets and evaluations need to be executed regularly. There is no guarantee that variety ensures quality, and so an evaluation process is essential in order to make use of the fluctuating data.

A★ Search Algorithm In computer science, A* (pronounced “A star”) is a computer

01. Domain

39

algorithm that is widely used in pathfinding and graph traversal. This process of plotting an efficiently traversable path between points, called nodes, is noted for its performance and accuracy. Peter Hart, Nils Nilsson and Bertram Raphael first described the algorithm in 1968[1], which is an extension of Edsger Dijkstra’s 1959 algorithm. A* achieves better performance with respect to time by using heuristics [36]. Heuristics pertain to a trial-and-error method of problem solving used when an algorithmic approach is impractical[37]. In the A* context this means that each node guesses how useful it will be in finding the shortest path by determining its distance to the target regardless of the possible paths. These figures can be augmented by adding or subtracting a “cost” to the nodes to increase or decrease their heuristic guesses. We use this method to give lower heuristics to wider pieces of infrastructure. The algorithm we made begins by testing the lowest heuristic values (the closest ones) from the starting location which dramatically increases the speed at which the shortest path is found. We are using A* in order to help us determine the efficiency of the networks we create. Unlike most A* algorithms which are based on grids, matrices, or perfectly connected graphs, our A* search algorithm extracts a collection nodes and connections from any set of curves. This kind of adaptation makes it possible to break down long curves at each of their intersecting nodes in order to create a connectivity diagram which can then be analyzed. The script then outputs the indices of the used paths rather than the


The A* search algorithm running on a test patch of network we generated using a dessication inspired algorithm that we will explain in the “networks” portion of the book. The path in red is the absolute shortest route but the path in dotted purple shows the path of least resistance. The path of least resistance can be achieved by increasing the “cost” of smaller roads

connections themselves which allows us to color, manipulate, or delete the original curves from rhino, rather than a work with a mathematical diagram of those curves.

40

01. Domain


Space syntax Space Syntax was originally developed by Professor Bill Hillier and his colleagues at University College London (UCL).[1] “Space Syntax provides a trusted, evidencebased approach to the analysis and design of spatial layout patterns. We help people to see, in clear and straightforward terms, how buildings and urban places can be designed to optimize their functional performance.”[1] The Space Syntax codes themselves could not be acquired so we have written our own network analysis based on the same logic as the official Space Syntax code. Using the A* search algorithm, every node in the network, searches for the shortest path to every other node in the network (excluding themselves). As a path is “crossed” it gets counted and at the end of the process, every node and path has an associated count. We can use this crossing count data to determine if a road is wide enough to handle the amount of expected activity, and if we determined that it is not, we can re-shuffle the metabolically scaled widths to more appropriately deal with the expected foot and vehicle traffic.

our case, the value of cost is represented by length. This value can be augmented with additional data if a particular node is more difficult to get to, or off limits. One example would be a cable TV company laying cable to a new neighborhood. If it is constrained to bury the cable only along certain paths, then there would be a graph representing which points are connected by those paths. Some of those paths might be more expensive, because they are longer, or require the cable to be buried deeper; these paths would be represented by edges with larger weights. A spanning tree for that graph would be a subset of those paths that has no cycles but still connects to every house. There might be several spanning trees possible. A minimum spanning tree would be one with the lowest total cost.[39] We will use minimum spanning trees to help us create optimal networks for the unseen infrastructure of a city such as plumbing and electrical networks. Each canal or street can be used to distribute these networks to the buildings (nodes) nearby.

Minimum spanning tree Spanning trees are graph theorems that connect an undirected set of nodes. As a part of the spanning tree family, the minimum spanning tree or MST, creates a network that links every node to every other node with ‘cheapest’ network possible. In

01. Domain

41

This MST was made on a set of packed circles. Notice how the smallest circles have the most connections. This illustrates one way that the MST can create the shortest network.


Diffusion Limited Aggregation Diffusion limited aggregation (DLA) is a process by which particles in stochastic movement stick together to create formations. This fractal is found in many natural systems and ensures that every particle becomes connected to the network as a whole. This system was ultimately abandoned as an infrastructural network because it lacks the ability to recover from local failures, meaning if a “branch” were cut off, every node after the disconnection would also become disconnected.

Woolly Paths “Woolly paths” is a common expression for one, in a number of studies on minimized detour systems. Minimal paths and direct paths rarely appear in cities or in nature, as minimal paths result in poor connectedness (high detour) and direct paths result in high redundancy and length. The woolly paths system is a mixture of direct paths and minimal paths resulting in a well connected graph, but also keeping length manageable. We developed an agent based woolly path algorithm which, in retrospect, should have been mathematically derived instead. We eventually abandoned woolly paths for other topological algorithms.

42

01. Domain


1.5.

/Grasshopper Environment

We were able to construct every aspect of this project using Rhinoceros 4.0 with the Grasshopper plug-in developed by David Rutton. These low cost, nearly open source software allowed us to use Visual Basic (VB.NET) scripting with the native Rhino Software Development Kit (SDK). The Rhino SDK has every geometrical component we could ever hope to use, and with the help of VB scripting in the Grasshopper plug-in and the coding community on the internet, we were able fabricate our own simulations and associative data management systems using some of the tools outlined in the previous section.

01. Domain

43


Computing Power Another positive aspect of using Rhino, is that we could complete the project with standard retail laptop computers. There were no simulations that our machines were not able to handle and while it was easy to reach a computational limit, we invented ways around them through intelligent scripting and optimization techniques.

{12} Macbook Pro 2.2GHz quad-core Intel Core i7 processor 6MB shared L3 cache, 1066MHz FSB 4GB (two 2GB SO-DIMMs) of 1333MHz DDR3 memory 256GB Samsung Solid State Hard Drive 1GB AMD Radeon HD 6750M 15.4 inch LED 1440x900 pixels Mac OSX Show Leopard & Windows 7 64-bit

{13} Alienware M17X - R1 Intel Core2 Extreme Quad QX9300 2.53GHz 12MB Cache, 1066MHz FSB 8 GB DDR3 SDRAM 1066MHz 500 GB Free Fall Sensor Hard Drive (7200 RPM) 1GB SLi dual NVIDIA GeForce GTX 280M 17 inch UXGA + 1900x1200 pixels Windows 7 64-bit

Simulations Optimization techniques

Through the process of developing

our computational model, a lot was learned about computational optimization. Without knowing these small tricks it would not have been possible to develop tools with the same abilities and speed as the ones that we have now. The smallest of differences in syntax or line placement can turn a 6-hour code into a 3 or 4 day-code because it takes much longer per iteration. In computing there is a wide range of algorithmic theories, each with their own speed as a derivative of how much data they have to check. The most commonly used strategy is called a “greedy algorithm�. Greedy Algorithms checks everything to everything else. For example, when trying to find the closest point for every point in a point cloud, a greedy algorithm will measure the distance from each point to all of the other points in the list, then choose the smallest distance and its associated point. If the lists are relatively short this is no problem but if the lists contain thousands of values this will be a time consuming process. A valuable optimization trick we used often was to decrease the number of points that we needed check. We first check the X, Y, and Z values of the points in the searching list. If the values are outside of a specified range, then we know that those points will not be the closest ones and we will not check them. This process will prevent the algorithm from computing the exact distance to every point which is a significantly heavier operation than comparing coordinate values. Another solution to a greedy problem is called a heuristic search, which in common terms means to make educated guess before beginning calculations. Using heuristics will result in a decreased number

44

01. Domain


of computations, because the algorithm searches fewer unfit options. Two algorithms that show the difference in greedy and heuristic algorithms are the A* and Dijikstras search algorithms. They are both designed to find the minimal path from point A to B through a connected point diagram, but A* is significantly faster than Dijikstras, because it uses heuristics. The pictures to the right show the A* and Dijikstras search algorithm with the colored nodes representing the nodes that were searched in order to find the shortest path. It is clear that A* is checking fewer points then Dijikstras yet both methods return an equal length path. Something we realized on our own, is that “Dim-ing” variables will slow down the computing process. In VB.NET,“Dim” means to Designate In Memory, which means when something is “Dim-ed”, the computer sets aside a part of its physical memory (RAM) to manage that variable for the remainder of the script. If every variable used in a code is “Dim-ed”, it will run slower than if previously used variables are reassigned to currently relevant data. There is no limit as to how many times a variable can be assigned a new value, so the potential memory savings are substantial.

01. Domain

45

{14} Dijikstras - 1958

{15} A* (A star) - 1968 The colored nodes are the ones that have been searched before the algorithm finds the shortest path. Although these two paths look different they are in fact the same distance because of the regular grid they are searching.


References [1] "Urbanization: A Majority in Cities: Population & Development : UNFPA." UNFPA - United Nations Population Fund. Web. 25 Sept. 2011. <http://www.unfpa.org/pds/urbanization.htm>. [2] http://www.wolframalpha.com [3]”Human Development Report 2006.” Human Development Reports. United Nations, 2006. Web. 7 Sept. 2011. <http://hdr.undp.org/en/media/HDR06-complete.pdf>. [4] “Water Crisis.” World Water Council. Web. 07 Sept. 2011. <http://www.worldwatercouncil.org/index. php?id=25>. [5] page 29 [6] http://www.middleeasthub.com/qatar/history-of-qatar.html - 07-09-2011 [7] http://www.wolframalpha.com/input/?i=qatar [8] http://tinyurl.com/4yqprqu [9] will be further explained in the section named ”arid climates” [10] EarthTrends. Water Resources and Freshwater Ecosystems-- Qatar. EarthTrends, 2003. PDF. [11] http://www.gaisma.com/en/location/doha-qa.html - 07-09-2011 [12] http://www.qatarcool.com/q-environment.php - 07-09-2011 [13] http://www.ameinfo.com/181812.html - 07-09-2011 [14] World Maps of Köppen-Geiger Climate Classification. Web. 07 Sept. 2011. <http://koeppen-geiger. vu-wien.ac.at/>. http://koeppen-geiger.vu-wien.ac.at/pdf/Paper_2006.pdf [15] “Scientific Facts on Desertification.” GreenFacts - Facts on Health and the Environment. Web. 07 Sept. 2011. <http://www.greenfacts.org/en/desertification/index.htm>. [16] see “Courtyards” on page 88 for details and references [17] Flake, Gary William. “L-Systems and Fractal Growth.” The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation. Cambridge, Mass. [u.a.: MIT, 2008. 77-92. Print. [18] http://dictionary.reference.com/browse/emergence - 08-09-2011 [19] Johnson, Steven. Emergence: the Connected Lives of Ants, Brains, Cities and Software. London: Penguin, 2002. Print. PP 29-33 [20] Goodwin, Brian C. How the Leopard Changed Its Spots: the Evolution of Complexity. New York: C.

46

01. Domain


Scribner’s Sons, 1994. Print. PP 68-70 [21] Augé, Marc. Non-places. London: Verso, 2008. Print. PP 29-31 [22] Augé, Marc. Non-places. London: Verso, 2008. Print. PP 43-45 [23] De, Landa Manuel.A Thousand Years of Nonlinear History. New York: Swerve Editions, 2009. Print. [24] Weinstock, Michael. “The Metabolism of the City.” Mathematics in Space Architectural Design. Vol. 212. John Wiley & Sons, 2011. pp102-07. [25] J. H. Brown, G. B. West, eds., Scaling in Biology, Oxford U. Press, New York (2000) [26] Nelson, T. R., B. J. West, and A. L. Goldberger. “The Fractal Lung: Universal and Species-related Scaling Patterns.” Cellular and Molecular Life Sciences 46.3 (1990): p251. [27] Terzidis, Kostas. Algorithmic Architecture. Oxford: Architectural, 2006. Print. [28] Goodwin, Brian Carey. How the Leopard Changed Its Spots the Evolution of Complexity. New York: C. Scribner’s Sons, 1994. Print. PP - 112-114 [29] http://www.emergentarchitecture.com/projects.php?id=16 – 14-09-2011 [30] http://www.emergentarchitecture.com/about.php?id=1 [31] Goodwin, Brian C. How the Leopard Changed Its Spots: the Evolution of Complexity. New York: C. Scribner’s Sons, 1994. Print. PP 121-126 [32] Hensel, Michael, and Achim Menges. Versatility and Vicissitude: Performance in Morpho-ecological Design. London: Wiley, 2008. Print. PP 43 – 47. [33] Landa, Manuel De. “Deleuze, Diagrams and the Genesis of Form.” ANY 23 - Diagram Work: Data Mechanics for a Topological Age 23 (1998): 31-34. Print. [34] B.Grunbaum and G.C.Shephard: Tilings and Patterns, W.H.Freeman and Company, New York, 1987. [35] George E.Martin: Transformation geometry: an introduction to symmetry, Springer-Verlag, New York, 1982. [unreferenced] Balmond, Cecil, Jannuzzi Smith, and Christian Brensing. Informal. Munich: Prestel, 2002. Print. [36] http://en.wikipedia.org/wiki/A*_search_algorithm [37] Hart, P. E.; Nilsson, N. J.; Raphael, B. (1968). “A Formal Basis for the Heuristic Determination of Minimum Cost Paths”. IEEE Transactions on Systems Science and Cybernetics SSC4 4 (2): 100–107. doi:10.1109/TSSC.1968.300136. [38] Web. 14 Sept. 2011. <http://www.spacesyntax.com/>. [39] “Minimum Spanning Tree.” Wikipedia, the Free Encyclopedia. Web. 11 Sept. 2011. <http://

01. Domain

47


en.wikipedia.org/wiki/Minimum_spanning_tree>.

Images {1} http://vangorkom.net/images/utrecht1652.jpg {2} http://upload.wikimedia.org/wikipedia/commons/9/9f/Qatar_Topography.png

{3} http://splashman.phoenix.wikispaces.net/file/view/Climate_map_swj.png/144994263/Climate_map_ swj.png {4} http://www.jacksofscience.com/wp-content/uploads/2008/05/computing_occurs.jpg {5} http://www.deep-six.com/textbook%20photos/lungs%20model.jpg {7} Beijing: http://www.chinamaps.info/images/Province/Beijing-Municipality.jpg {8} Vatican City: http://tinyurl.com/3uyvvay {9} Graph: http://universe-review.ca/I10-83-metabolic.jpg {10} http://www.truthinscience.org.uk/tis2/images/stories/darwinsfinches.jpg

{11} http://entropychaos.files.wordpress.com/2010/11/1069646562-lgl-2d-4000x4000.png Toggle Switch {unreferenced) http://www.wirecabledirect.com/contents/media/brass_toggle_switch.jpg {12} http://it.livingston.co.uk/uploads/tx_commerce/154737.jpg {13} http://dgadget-technology.info/wp-content/uploads/2011/09/Alienware-M17x-Laptop-20112.jpg

{14} http://en.wikipedia.org/wiki/A*_search_algorithm {15} http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

48

01. Domain



Research


Thesis Focuses

Water

Urban Migration

New Cities

Population Growth Qatar

research

Climate Densification

Elements

L-Systems Algorithmic Design

Emergence Agent Behavior Metabolic Scaling

Computation

Genetic Algorithm

Networks

Toggles A-Star

Tools

Space Syntax Computing Power

Rhino and Grasshopper Simulations Thesis inspiration

02. Research

51

Scripts/methods implimented


OMA Waterfront City

Bahdad, Iraq Bandar-e-Abbas, Iran

Cities in the Region

Jeddah, Saudi Arabia Captive Globe

Precedent Cities

Hochhausstadt

City Design

Kenzo Tange

Urban Metabolism

City Dynamics

Clusters/Blocks Buildings Orientation Cultural

"Sticky"

Public Spaces

Solar

Green Spaces

Shortest

Urban

Longest

Minimum Spanning Tree

Pocketed

Diffusion Limited Aggregation Woolly Paths

Transportation

Area

Ammann A3

Public Spaces

Electrical

Proximity

Grouping

Streets Public Sea Water Canals

Hydrological

Dessication Coastal Connectivity Branching Resource Growth Boston

Coastal Manipulation

Undulations Stenocara Beetle

Potable Water

Solar Stills

Capture Tower

Fog Catchers Desalination & Storage 52

02. Research


Waterfront city - oma

stable for the region.

Waterfront City in Dubai is a masterplan of possibly unprecedented scale and ambition, aiming to generate a critical mass of density and diversity in a city that has seen explosive growth in recent years but little cultivation of the street-level urban activity that most metropolises thrive on. The development consists of an artificial Island linked to four distinct neighborhoods – Madinat Al Soor, the Boulevard, the Marina, and the Resorts – which together are twice the size of Hong Kong Island and yield a total floor space of 11.8 million m2 across various building types and programs. The masterplan takes an optimistic view of the future of urbanism and exploits two usually opposing elements of 21st century architecture: the generic and the iconic.{1] The Waterfront City is certainly a project the likes of which we don’t believe will ever be repeated. Currently under construction, the scope of the city is easily the largest design task that was ever seriously intended to be built. The most impressive part of this project is that the project has passed through planning commissions, feasibility experts, social and political scientists, structural - infrastructural - traffic - environmental - transportation hydrological engineers, and more, and all of them approved the project for construction. The drawings and descriptions of city show that this was a very carefully designed and calculated top down approach which means that OMA deserves a lot of credit. The problem is that the city has been designed to be a finished city. There are phases, yes, but there is no guarantee that the climate, economy, and energy availability will remain

02. Research

53

While we aim to match the finish and scope of the Waterfront City in Metab, we propose that the method of design and the implementation of the population over time, is managed by the many factors that shape a city such as climate and energy.

{1} Waterfront City - OMA perspective showing the central island and two of the iconic buildings.

{2} Waterfront City - OMA plan showing the central island as the focal point of the project with radiating urbanism around it.

{2} Waterfront City - OMA perspective over the entire settlement.


2.2.

Arid & Coastal Cities In the region In order to understand the kind of urbanism that is appropriate for hot, dry, desert-like climates, we have studied three cities in the Persian Gulf Region. Each city responds to the climate a little differently but all of these cities were immediately adjacent to bodies of water. In some cases near the Persian Gulf, cities will stretch for kilometers on end along the sea but the entirety of the built area will not exceed a distance of four kilometers from the water’s edge. It was immediately clear, even before seeing this fact for ourselves, that locating the city on a body of water was a requirement. What we did not know was how these cities should be formed. Some of the questions we asked ourselves were: How many buildings should there be? How close together should they be? How tall? What kind of road networks and neighborhood sizes need to be present? The list of questions goes on, but the essence of these cities needed to be extracted in order to be useful for synthesis with our own research. Unfortunately the infrastructural data of most of the world’s cities are hidden for security reasons, or simply because nobody has it. While it is easy to look at a satellite image or a road map to see buildings and streets, it is considerably more difficult to view a cities electrical grid, or their water distribution system.

for thousands of years. Things that seem commonplace in western cities may be inappropriate for the climate and social conditions of Qatar. Rather than try to decode the social, political, and formal relations within cities of the region, we will extract raw data from specific samples throughout the cities. Firstly we extracted the variety and complexity of the city as a whole; the number of tissues and their relative sizes and configurations. We also took 250 x 250 meter samples of the city in the middle of some of the most distinct tissues to try and gather as much data as possible about the morphological conditions that should be present in Metab. The following pages will show the acquired data for Baghdad, Iraq, Bandar-eabbas, Iran, and Jeddah, Saudi Arabia.

Data extraction The cities of the middle east have very different histories and cultures which has shaped their growth and morphology

54

02. Research


Baghdad, Iraq - Banding This 4km by 1km stretch of Baghdad, Iraq (Tissue A) shows a clear “banding� of built forms from the roads that slice the image into vertical urban tissues. Near the river pictured on the left, there is a wealth of different shaped and sized buildings as well as a variety of road sizes and lengths. The first band (at about 600m) runs parallel to the water and both spatially and topologically splits the form of the city. The second formal band (ending around 1400m) of the city takes on a less diverse topography but remains very dense. Small densely packed buildings are sparsely dotted with pockets of public space. Near the far end of the formal section, the road network becomes more apparent until a clear block structure is established. The third band (ending around 2500m) has very large roads splitting relatively small blocks. These blocks are comprised of large buildings, or in some cases, a single entity. The density in the third band is significantly lower than the densities of previous bands and as a result, the blocks have large empty spaces. Due to the scale of the buildings inside these blocks we are assuming an industrial program that makes proximal inhabitation undesirable. This theory is reinforced by picture of the final band. The furthest band shows a regular, perpendicular grid that has been filled homogeneously by similar scale blocks and buildings. The road network still has a variety of scales, but the difference is hard to notice.

0m 125 250

55

1000

Tissue A Tissue B

0m 25 50

02. Research

500

125

250

N

N


Tissue C

0m 25 50

Tissue D

125

250

N

0m 25 50

56

125

250

N

02. Research


Tissue B Number of buildings = 430 Minimum Area = 8.206 m2 Maximum Area = 855.314 m2 Average Area = 109.737 m2 Mean Area = 87.821 m2 Average courtyard Area = 11.458 m2 Courtyard percentage = 0.233% Built area = 48860.63 m2 Unbuilt area = 13639.37 m2 Built % = 78.177% Minimum number of sides = 5 Maximum number of sides = 43 Average number of sides = 10.722 Mean number of sides = 10 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 8 Average # of adjoining blds = 2.493 Mean # of adjoining blds = 2 Minimum adjoining area range = 1.467 Maximum adjoining area range = 832.333 Average adjoining area range = 141.57 Mean adjoining area range = 106.213

0m 25 50

125

250

This section of Baghdad is extremely dense. Neighborhoods like this one have developed naturally over hundreds of years. The difficult to understand meanders and breaks in continuity of paths have all developed for cultural and spatial reasons lost to history, yet these tissues remain very desirable places to live. We tried to emulate this kind of tissue through emergent properties embedded in the city generating code.

02. Research

57

N


Tissue c Number of buildings = 155 Minimum Area = 9.736 m2 Maximum Area = 3885.144 m2 Average Area = 150.214 m2 Mean Area = 88.955 m2 Average courtyard Area = 6.57 m2 Courtyard percentage = 0.013% Built area = 29636.256 m2 Unbuilt area = 32863.744 m2 Built % = 47.418% Minimum number of sides = 4 Maximum number of sides = 32 Average number of sides = 8.238 Mean number of sides = 7 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 7 Average # of adjoining blds = 2.477 Mean # of adjoining blds = 2 Minimum adjoining area range = 4.548 Maximum adjoining area range = 3700.52 Average adjoining area range = 229.184 Mean adjoining area range = 84.615

0m 25 50

125

250

N

In Baghdad, as in most cities, large scale projects slice through older settlements causing dramatic changes in the type and scale of buildings. We tried to avoid such drastic shifts in scale by ensuring a distribution gradient.

58

02. Research


Tissue d Number of buildings = 126 Minimum Area = 7.574 m2 Maximum Area = 617.629 m2 Average Area = 194.716 m2 Mean Area = 170.48 m2 Average courtyard Area = 9.441 m2 Courtyard percentage = 0.008% Built area = 23816.161 m2 Unbuilt area = 38683.839 m2 Built % = 38.106% Minimum number of sides = 4 Maximum number of sides = 25 Average number of sides = 8.317 Mean number of sides = 7 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 2 Average # of adjoining blds = 0.238 Mean # of adjoining blds = 0 Minimum adjoining area range = 13.105 Maximum adjoining area range = 278.955 Average adjoining area range = 105.198 Mean adjoining area range = 93.489

0m 25 50

125

250

On the outskirts of Baghdad, tissues such as this one appear in expansive numbers. The planned grid seems to ignore any kind of environmental response and the primary reading of the tissue shifts from the buildings to the roads. We avoided this situation by not using any predetermined geometrical formation strategies.

02. Research

59

N


60

02. Research


0m 125 250

500

1000

N

Tissue A Tissue B

0m 25 50

02. Research

Tissue C

125

61

250

N

0m 25 50

125

250

N


Bandar-e-abbas, Iran - cluster This 4km2 stretch, from the center of the city (Tissue A) shows the variety of urban tissues that are present in Bandare-abbas. The city operates in a patchy asymmetrical pattern, becoming more dense and less regular, the further away from the center. Unlike Baghdad, Bandar-e-abbas does not have a radial pattern. There is certainly a relationship between the distance from the city center and density/tissue type. However, there are so many exceptions to the rule that the city takes on a patchy almost quilted appearance. One distinct patch appears between the 1000m and 1200m distance. Represented below in Tissue C, this patch dramatically changes the density and building height irrespective of its neighboring patches. The standard distribution gradient found in most cities around the world is ignored and in some cases revered in a city like Bandar-e-abbas. This phenomenon can be explained by the coastal nature of the city. While most cities grow radially from a center, coastal cities in harsh climates like the BWh (“Arid Climates� on page 21) tend to stay close to the ocean. Bandar-eabbas completely disintegrates before the city reaches a depth of 4 kilometers.

Tissue D

0m 25 50

125

250

N

62

02. Research


Tissue B Number of buildings = 123 Minimum Area = 11.389 m2 Maximum Area = 1640.804 m2 Average Area = 187.693 m2 Mean Area = 109.121 m2 Average courtyard Area = 20.653 m2 Courtyard percentage = 0.154 Built area = 24714.047 m2 Unbuilt area = 37785.953 m2 Built % = 39.542% Minimum number of sides = 5 Maximum number of sides = 42 Average number of sides = 9.442 Mean number of sides = 7 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 4 Average # of adjoining blds = 1.187 Mean # of adjoining blds = 1 Minimum adjoining area range = 0.626 Maximum adjoining area range = 1463.446 Average adjoining area range = 173.499 Mean adjoining area range = 88.164

0m 25 50

125

250

This tissue exemplifies the scattering of different building sizes in a small area. We found this kind of tissue very desirable as it implied a mix of uses. There is a clear boundary condition where the urban elements change size somewhat dramatically. We used canals to mitigate tissue differences like this one.

02. Research

63

N


Tissue c Number of buildings = 67 Minimum Area = 40.562 m2 Maximum Area = 808.295 m2 Average Area = 207.839 m2 Mean Area = 202.387 m2 Average courtyard Area = 0 m2 Courtyard percentage = 0 Built area = 13720.406 m2 Unbuilt area = 48779.594 m2 Built % = 21.953% Minimum number of sides = 5 Maximum number of sides = 16 Average number of sides = 8.698 Mean number of sides = 9 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 4 Average # of adjoining blds = 0.925 Mean # of adjoining blds = 1 Minimum adjoining area range = 3.028 Maximum adjoining area range = 132.824 Average adjoining area range = 40.431 Mean adjoining area range = 24.385

0m 25 50

125

250

N

This scattered linear tissue is a result of a dramatic topography. Qatar does not have this kind of topographic shift at any point but we see the value in having small buildings spread over a small area. We have built in this kind of tissue to prevent a homogeneous mass of a city.

64

02. Research


Tissue d Number of buildings = 216 Minimum Area = 8.508 m2 Maximum Area = 445.349 m2 Average Area = 112.598 m2 Mean Area = 121.922 m2 Average courtyard Area = 33.866 m2 Courtyard percentage = 0.315 Built area = 25656.779 m2 Unbuilt area = 36843.221 m2 Built % = 41.051% Minimum number of sides = 5 Maximum number of sides = 17 Average number of sides = 8.406 Mean number of sides = 8 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 5 Average # of adjoining blds = 1.028 Mean # of adjoining blds = 1 Minimum adjoining area range = 0.237 Maximum adjoining area range = 295.534 Average adjoining area range = 84.564 Mean adjoining area range = 67.589

0m 25 50

125

250

This was the first tissue we found that had a canal running through it. It is very clear in the black and white diagram that the canal is a dividing element. We tried to make the canal a more natural part of the urban fabric by removing the parallel roads on either side of the canal like the one pictured above.

02. Research

65

N


66

02. Research


Jeddah, Saudi Arabia - wedging This 4km2 stretch from the center of the city (Tissue A) shows the variety of urban tissues that are present in Jeddah. The urban tissues present in Jeddah are similar to those in Bandar-e-abbas but they are significantly more continuous. The discrepancies in Jeddah’s tissues carry on until a large road or other physical boundaries prevent their continuation. Notice the thin tissue with empty lots located between 1000 and 2000 meters. This particular tissue is in between two highly populated and densely packed urban formations but it remains sparse. In this way the urban morphology represents a wedge. It is as if the dense tissue had formed and due to the insertion of the two major roads that border the tissue it has cause the urbanism in between to die. Whatever the cause, this type of continuous-until-its-not tissue appears throughout Jeddah.

0m 125 250

67

1000

N

Tissue A Tissue B

0m 25 50

02. Research

500

Tissue C

125

250

N

0m 25 50

1


125

Tissue D

250

N

0m 25 50

Tissue E

125

250

N

0m 25 50

68

125

250

02. Research

N


Tissue B Number of buildings = 36 Minimum Area = 49.48 m2 Maximum Area = 1091.754 m2 Average Area = 379.835 m2 Mean Area = 298.421 m2 Average courtyard Area = 0 m2 Courtyard percentage = 0% Built area = 15212.847 m2 Unbuilt area = 47287.153 m2 Built % = 24.341% Minimum number of sides = 5 Maximum number of sides = 22 Average number of sides = 9.296 Mean number of sides = 7 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 3 Average # of adjoining blds = 0.611 Mean # of adjoining blds = 0 Minimum adjoining area range = 8.056 Maximum adjoining area range = 353.709 Average adjoining area range = 205.057 Mean adjoining area range = 244.295

0m 25 50

125

250

As a “downtown� tissue we found this one to be relatively common for the region. Larger buildings are spaced further apart and the smaller buildings are grouped closer together. It also seems to be the case that the road widths increase as the building sizes do.

02. Research

69

N


Tissue c Number of buildings = 179 Minimum Area = 9.2 m2 Maximum Area = 906.065 m2 Average Area = 262.879 m2 Mean Area = 201.04 m2 Average courtyard Area = NaN m2 Courtyard percentage = 0% Built area = 45744.88 m2 Unbuilt area = 16755.12 m2 Built % = 73.192% Minimum number of sides = 4 Maximum number of sides = 13 Average number of sides = 6.329 Mean number of sides = 6 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 7 Average # of adjoining blds = 2.235 Mean # of adjoining blds = 2 Minimum adjoining area range = 1.399 Maximum adjoining area range = 712.579 Average adjoining area range = 221.777 Mean adjoining area range = 184.337

0m 25 50

125

250

N

This tissue shows similarities to Tissue A from Baghdad in the density and crookedness of paths and buildings. This tissue shows a distribution of small scale empty pockets at a relatively normal distance from each other. We tried to emulate this behavior in the cities we generated.

70

02. Research


Tissue d Number of buildings = 134 Minimum Area = 12.445 m2 Maximum Area = 1139.938 m2 Average Area = 283.033 m2 Mean Area = 216.287 m2 Average courtyard Area = 0 m2 Courtyard percentage = 0% Built area = 37041.308 m2 Unbuilt area = 25458.692 m2 Built % = 59.266% Minimum number of sides = 4 Maximum number of sides = 17 Average number of sides = 6.381 Mean number of sides = 5 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 5 Average # of adjoining blds = 1.015 Mean # of adjoining blds = 1 Minimum adjoining area range = 0.967 Maximum adjoining area range = 381.881 Average adjoining area range = 132.512 Mean adjoining area range = 124.751

0m 25 50

125

250

Mixed tissues like this one are very desirable. The changes in scale and morphology make for interesting transition zones and shifts in the hierarchy of networks and paths.

02. Research

71

N


Tissue E Number of buildings = 89 Minimum Area = 34.289 m2 Maximum Area = 585.118 m2 Average Area = 301.394 m2 Mean Area = 289.024 m2 Average courtyard Area = 0 m2 Courtyard percentage = 0% Built area = 25689.728 m2 Unbuilt area = 36810.272 m2 Built % = 41.104% Minimum number of sides = 5 Maximum number of sides = 18 Average number of sides = 7.487 Mean number of sides = 7 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 2 Average # of adjoining blds = 0.27 Mean # of adjoining blds = 0 Minimum adjoining area range = 5.825 Maximum adjoining area range = 202.581 Average adjoining area range = 77.863 Mean adjoining area range = 65.894

0m 25 50

125

250

N

Gridded tissues are beneficial in some settings but in this region and culture they seem out of place, we are avoiding grids or any regular patterns at all cost.

72

02. Research


City making from history Creating design methodologies for entire urban developments is not a new idea, and throughout history there are two specific projects that we would like to discuss with respect to their drivers for urban growth and methods of computation and data management. In 1924 Ludwig Hilbersheimer did a theoretical project called “Hochhausstadt” (“Skyscraper City”) where the city is expressed as an infrastructural grid fitted with architectural program. The architecture of the city has been reduced to “a hybrid of blocks and slabs in which all civic activities, such as production, living, and commerce, are superimposed rather than zoned in different locations.”[2]. Following through with this design system will yield a homogeneous and isotropic grid fabric, to which Hilbersheimer say : “... inhabitants of Hochhausstadt live, work and move everywhere.”[2,3]. Another equipotential project is “The City of the Captive Globe” by Rem Koolhass. Completed in 1972, this project displays the same organizational logic as “Hochhausstadt”, but instead of a uniform and repeating architecture that is only a result of the process of expansion, Koolhass presents architecture as a container for different ideologies. The city fabric is considered to be homogeneous, but not isotropic like Hilbersheimer’s due to the variation in the building forms and types[4]. The similarities of the projects are seen as their strength as well as

02. Research

73

their weakness. Their strengths manifest in the strong modular logic that has been developed in their systematic design of a city. It can be seen as a first attempt to enable people to model and comprehend the complex relations of an infinite city, without the use of heavy computing. Today, however, we have computers with sufficient computing power to comprehend the data of a city, so instead of building a modular city we propose a computational model of relations, without any predetermined morphology[5,6]. The weakness in the projects are the homogeneous urban fabric that they create. They also use infrastructure and urbanization as the urban growth-model instead of using something that relates to the amount of people they are serving, or the area they are covering. Even though the modular logic of Koolhass and Hilbersheimer, from our perspective, is a conceptual strength in their projects, it is also where our logic departs the most. Each module depends on an rectangular grid that, in the end, will prescribe the morphology of the city. A question we have asked ourselves is: How can we design a city without prescribing the outcome?


{4} “Hochhausstadt” (“Skyscraper City”) - Ludwig Hilbersheimer Ludwig Hilbersheimer did “hochhausstadt” in 1924 which was unmatched as an urban design method and ideology until 48 years later when a project of similar magnitude was proposed by Rem Koolhass with his project “The City of the Captive Globe”. Both of these projects display many of the same formal characteristics, because they are both organized by an infrastructural grid, into which very similar architectural entities have been filled. They only differ from each other on a theoretical level. Having two projects of this magnitude being spaced so far apart in time, and yet being almost formally the same, indicates that very little emphasis has been put into the formalization of a city development methodology. {5} The City of the Captive Globe - Rem Koolhass

74

02. Research


Urban metabolism The first time the architectural community heard ideas from the “metabolist movement” was at the world design congress of 1960. Here the “metabolist’s” presented their avant-garde paradigm for urban planning. The metabolists proposed the analogy that a city is no longer a fixed entity but a living, breathing and adapting organism, where architecture and space have different metabolic cycles. A metabolic cycle simply refers to the rate of change in the city. The architecture would manifest in almost stable configurations within the city, which means that they would have a very low metabolic cycle. The higher metabolic cycles belonged to the pedestrian areas or the interior spaces of architecture, which means that these instances are to be regarded as ever changing systems within the city. The 1960’s metabolist uses biology as an analytical model. Kenzo Tange’s plan for Tokyo is an example where the city is organized linearly with a central axis (a road) from which secondary roads would branch off. Tange argues that this is organization is the equivalent to the nervous system of the human body, and should therefore be able to create an expandable urban model that would accommodate the an infrastructural requirement such as car traffic; in fact Tange argues that it can handle any number of cars. Peter Smithson questions the efficiency of this system, by saying “Having a central axis of transport, from which all network originates, will require all vehicles to cross the central axis at some point on its way

02. Research

75

from point A to B, even though they have no business there”[7]. Looking at Smithson’s reasoning, it is clear that the organisation around a central axis of transportation is used as a biological analogy rather than a biological system, because the nervous system transports signals and data through the body instead of matter as it would be in Tange’s plan for Tokyo. This is why we see it as a misuse of the biological system. We will question the analogous perspective on metabolism and biology and create an urban growth model where the parallels are drawn from the function and use of metabolism in biological organisms. While we see the implementation of analogies as useful means of representing or communicating an idea, but we prefer a working, data driven, results based model of biological mimicry as it is a more appropriate abstraction of biological principles in the architectural and urban design community.

{6} The plan of Tokyo by Kenzo Tange, 1960. This project displayed some initial thoughts and methods of implementing biology into design by creating a transportation link responsible for sending and receiving all of the cars of a city akin to the way the human spine transmits electrical messages.


City Dynamics When applying biological principals to cities and urban tissue, there is a strange phenomena that propagates itself across nearly all observable data within a city. All of the data gathered from cities by researchers like Geoffrey B. West and Dirk Helbing, seem to relate to each other across tens of scales of magnitude. From population size, one can derive all matter of data from a city based simple principles of scaling. Cities have both physical and non-physical characteristics and they all have unique and different scaling behaviors. The physical characteristics of the city such as road count and size, gas (petrol) stations per capita, area per capita etc. seem to scale at .77 times the population[8], which is shockingly close to the biological rate of ~.75 (see “Metabolic scaling” on page 29). This kind of scaling is known as sub-linear, meaning that doubling the size of the city requires less than double the infrastructure, space, etc.[9]

capita, creative people per capita, wages, walking speed, etc. scale at 1.15 times the population of a city[9].This kind of behavior is known as super-linear scaling. Super-linear scaling would mean when the population is doubled, the non-physical characteristics more than double[9]. Cities depart from biology entirely when comparing growth and death rates as cities almost never die. Natural disasters, wars, disease or all of the above can wreak havoc on a city for decades and yet still the city prevails. Cities tend to grow faster as they grow bigger making their growth pattern exponential, instead of the biological model of sigmoidal growth[9], meaning the organism grows slower as it grows older.

N(t)

N(t)

N(0) t

This diagram show the progress of sigmoidal and exponential growth over time. Both graphs approach infinity but the exponential growth approaches infinity in a finite time scale, which is very dangerous for cities with respect to resources and space per person.

N(0) t

This diagram shows sub and super-linear growth in reference to a normal linear growth of 1 unit of ‘t’ (N(t)) for every unit t.

The non-physical characteristics such as crime rate, disease rate, patents per

If the model of growth were strictly exponential, a city would quickly outgrow its ability to sustain itself and the city would essentially suffocate. Cities grow at an exponential rate until they reach a critical threshold that spurs a technological

76

02. Research


revolution which re-calibrates the model. Farming, for example, is a way in which the world dealt with the population increase a very long time ago. If farming were not invented, then the population increase of the time would overwhelm the available food sources and everyone would have starved to death. Transportation has offered more than one of these re-calibrations, but notice how each revolution must happen faster than the previous one in order for the model to remain sub-linear.

N(t)

N(0) t The reason that cities do not die out in a finite time scale, despite their exponential growth, is the invention of new technology. The exponential patterns, if averaged, represent that of a sub-linear curve which mimics the biological model. It is hard to say whether or not this routine can sustain the sublinear growth as time and population progress.

02. Research

77


References [1]”WATERFRONT CITY, UAE, DUBAI, 2008.” OMA Projects Waterfront City. 2008. Web. 14 Sept. 2011. <http://www.oma.eu>. [2] Aureli, Pier Vittorio. The Possibility of an Absolute Architecture. Cambridge, MA: MIT, 2011. Print. PP. 14 [3] Aureli, Pier Vittorio. The Possibility of an Absolute Architecture. Cambridge, MA: MIT, 2011. Print. PP. 13-16 [4] Aureli, Pier Vittorio. The Possibility of an Absolute Architecture. Cambridge, MA: MIT, 2011. Print. PP. 22-24 [5] “Pseudo code” on page 212 [6] “Computation is Key” on page 3 [7] Lin, Zhongjie. “URBAN STRUCTURE FOR THE EXPANDING METROPOLIS: KENZO TANGE’S 1960 PLAN FOR TOKYO.” Journal of Architectural and Planning Research 24.2 (2007): 109-24. Print. [8] Strogatz, Steven. “Guest Column: Math and the City - NYTimes.com.” Opinion - Opinionator NYTimes.com. 19 May 2009. Web. 17 Aug. 2011. <http://opinionator.blogs.nytimes.com/2009/05/19/ math-and-the-city/>. [9] Geoffrey West: The Surprising Math of Cities and Corporations | Video on TED.com. Perf. Geoffrey West. TED: Ideas worth Spreading. 11 July 2011. Web. 17 Aug. 2011. <http://www.ted.com/talks/ geoffrey_west_the_surprising_math_of_cities_and_corporations.html>.

Images {1} http://www.eikongraphia.com/images/koolhaas/OMA_Waterfront_Dubai_2_S.jpg {2} http://www.eikongraphia.com/images/koolhaas/OMA_Waterfront_Dubai_7_S.jpg {3} http://www.eikongraphia.com/images/koolhaas/OMA_Waterfront_Dubai_6_S.jpg {4} http://rafaeldemiguel.files.wordpress.com/2010/01/captura-de-pantalla-2010-01-11-a-las-00-14-25. png {5} http://file-magazine.com/wp-content/uploads/rem_koolhaas.jpg {6} http://3.bp.blogspot.com/_I9Kvkox1J7Q/TTfxoghcHXI/AAAAAAAAACQ/Psbq8t7AtzE/s1600/ TokyoBay01.jpg

78

02. Research



Elements


Thesis Focuses

Water

Urban Migration

New Cities

Population Growth Qatar

research

Climate Densification

Elements

L-Systems Algorithmic Design

Emergence Agent Behavior Metabolic Scaling

Computation

Genetic Algorithm

Networks

Toggles A-Star

Tools

Space Syntax Computing Power

Rhino and Grasshopper Simulations Thesis inspiration

03. Elements

81

Scripts/methods implimented


OMA Waterfront City

Bahdad, Iraq Bandar-e-Abbas, Iran

Cities in the Region

Jeddah, Saudi Arabia Captive Globe

Precedent Cities

Hochhausstadt

City Design

Kenzo Tange

Urban Metabolism

City Dynamics

Clusters/Blocks Buildings Orientation Cultural

"Sticky"

Public Spaces

Solar

Green Spaces

Shortest

Urban

Longest

Minimum Spanning Tree

Pocketed

Diffusion Limited Aggregation Woolly Paths

Transportation

Area

Ammann A3

Public Spaces

Electrical

Proximity

Grouping

Streets Public Sea Water Canals

Hydrological

Dessication Coastal Connectivity Branching Resource Growth Boston

Coastal Manipulation

Undulations Stenocara Beetle

Potable Water

Solar Stills

Capture Tower

Fog Catchers Desalination & Storage 82

03. Elements


Public spaces As the backbone of any city, public spaces are centers of innovation, commerce, social activity, politics, and entertainment. In a middle eastern context public spaces are rare but the ones that exist are staples of culture and religion in the region. All of the public spaces that we are adding automatically orient to Mecca for those who practice the state faith and for those who do not, the buildings and roads around the public spaces re-orient themselves to the public space and so it should not be seen as an interruption to the continuity of the urban fabric. The public spaces are placed according to a total served area. In The script that we have creating the city, there is

a constant tally of the total occupiable area of the city. The public spaces are added according to a user specified target. For example, if there is 20 million square meters in the city, and a public space is required for every million square meters, there will be twenty public spaces distributed according to that grouping. Taller buildings (above 50 meters) contain a considerably larger area and so some public spaces will be serving a relatively small number of buildings when compared to a public space that is serving two and three story buildings. The public spaces are aware of how many buildings they are serving and they change their size according to a user specified factor of that number. We are also using public spaces as distribution centers. The water networks

{1} Over 80% of Qatar practices Islam. Ritual prayers, called Ṣalāh or Ṣalāt (Arabic: ‫)ةالص‬, must be performed five times a day. In this ritual, one is supposed to orient themselves to Mecca, which is in the middle of a city with the same name in Saudi Arabia. This prayer is often performed in large groups in public spaces like the one pictured on the opposite this page.

03. Elements

83


local distribution and storage are directly linked to the public spaces which works well because all of the public spaces are serving an equivalent area. Also, this allows the water use, storage, and distribution to be a public activity which increases awareness of the water issues in the region.

While this diagram is strictly radial, different patterns emerge through the dynamic grouping processes which are described in detail in “Grouping Strategies� on page 91.

Similar to the Pantheon in Rome, we are counting on the central water tower to act as a landmark building that seeds the public space for activity.

{Image from bing maps} Aerial view of the Pantheon in Rome, Italy. Rome has an extensive network of public spaces that correspond with important landmarks. Some of these spaces are linked directly through large planned axial connections and others are linked more informally, but the network has a specific spacing that, in Rome’s case, emerged over time to ensure that no two spaces were too close together or too far apart. We will try to emulate the success that Rome has through planned emergent methods like the ones described on this spread.

The public spaces will also function as parks. Water will be used to fertilize the land and the same strategy that ensures that every building is close to their water source also ensures that a local park will be within walking distance of every building. The coupling of these strategies can be seen in the diagram to the right.

84

03. Elements


4.3.

Building envelopes Buildings themselves are complex beings. They come in different shapes and sizes, like most things, but the ramifications for a buildings shape, size, orientation, and a plethora of other things, not only effect the building, but the block they inhabit and even the city they are a part of. The following pages will describe what we have done in order to address some of the issues of building placement, size, and distribution within urban environments.

03. Elements

85



Parent building We chose to use a “parent” building to determine the sizes of Metab’s numerous buildings. By combining the metabolic scaling formula with the distribution strategy on page 89, every building will have a correlation between their total area and footprint to height ratio. This will show the strength of the metabolic scaling, because in theory a mouse should be able to be scaled to the size of a elephant and vice versa, so this is to show that the same goes for architecture. We chose an appropriate minimal livening area from our tissue studies at 30m2 and paired it with the Chrysler building in New York City. We could have paired the minimum area with any “parent” building, but having it paired with the Chrysler building will allow for a wide variety of buildings both low and high rise.

2000 = 41.3189 (x).77

We then had to create our own scaling ratio’s to move between the smallest and largest building footprint we have. Using Galapagos, a genetic solver within grasshopper, we set up the metabolic formula to determine the most accurate formula we could (6 decimal places). In attempting to attain a difference of zero between the largest and smallest building, we reached 0.00000096429 which we considered close enough to proceed. Area = Y0(height)x x = 2.342510 Y0 = 0.6287782...

Chrysler building, New York City, NY, USA Height to: Antenna spire: 319.9 m (1050 ft) Roof: 282.0 m (925 ft) Top floor: 274.0 m (899 ft) Floor count: 77 Floor area: 111000 m2 (1,195,000 ft2) Footprint: 3500 m2 To calculate the area of the building based on a metabolically scaled version of the Chrysler building the math is as follows: 3500 = Y0(319).77

Y0 = 41.3189...

To determine the maximum height of our buildings based on the distributed footprints we will outline on page 121, we use the derived formula to attain 154.3 meters.

03. Elements

87

x = 154.3

{2} The Chrysler Building, New York New York.


Courtyards Having a courtyard in multiple buildings will increase the environmental performance of a city by increasing its porosity. It is also good for the internal environment of the building because it refreshes the air within and allows for passive cooling through pressure differences caused by passing wind[2]. There is also a thermal benefit. The entirety of the courtyard is exposed to atmospheric temperature but only half of the courtyard is exposed to solar radiation. The difference in temperature caused by this phenomena creates a pressure difference within, causing air movement even when the wind is not blowing.[2] Through the precedent studies of section 2.4. we found that the number of buildings with courtyard in the strictest sense: one that is completely embedded within the building envelope, was only present in 2-4% of the buildings in a city[3]. Looking more closely at the forms of the buildings we were tracing, we found that most of the buildings had symbiotic relationships with their neighboring structures such that they used a neighboring building to complete their courtyard in what we coined the “C-shaped court”. We suggest that the percentage of buildings with courtyard spaces should be 20% of the city or higher. Shorter buildings are much better candidates for courtyards because of the dynamics of airflow. If the courtyard is too deep, than the air does not circulate properly. This, among other factors, is why so many of the Middle Eastern cities are primarily low rise[2]. We have

Standard courtyard type

“C” shaped courtyard type The strategy we use to create courtyards. First the bounding box of the building is found. A random percentage between 10 and 40 is selected to scale down the bounding box from a random point within itself. The new scaled box is then cut from the existing building footprint leaving either an enclosed, or in this case, “C-shaped” courtyard.

implemented courtyards into our city by first choosing the Amman tile shapes discussed on page 32, which lend themselves to fit together with voids when packed. We have also filtered the areas so that only buildings of a certain footprint area, and by association - a certain height, are eligible to be fitted with a courtyard.

88

03. Elements


Building distribution Once we had the appropriate data for the amount of area we needed for the city, and an approximate idea of the size of city we were aiming to create, we needed a method in order to place a given number of buildings over the surface of the site. In accordance with the calculated data we began breaking the entire boundary into hectares. As is the case in most cities, the distribution of buildings will become less frequent with distance to a edge or path[4] producing a clear gradient from dense to less dense. “Edge” and “path” are terms used by Kevin Lynch in his book The Image of a City. “Paths are the channels along which the observer customarily, occasionally, or potentially moves.”[4] “Edges are the linear elements not used or considered as paths by the observer. They are the boundaries between two phases, linear breaks in continuity: shores, railroad cuts, edges of development, walls.“[4] In most western cities the gradient is dense in the center and progressively less dense as the distance from the center increases. Among the cities we have studied in the Persian Gulf region, the reverse is true (up to a point). The downtowns have large buildings relatively spread out and as the distance from the center increases, so too does the density. Once the distance reaches a critical threshold or a major path or edge this rule is broken. At this point in the city making process we can choose whether the gradient of distribution goes from dense to less dense or vice versa. In order to determine which

03. Elements

89

hectares were to receive the highest (or lowest) number of buildings we measured the distance from each hectare to the ocean and to the primary canal then ranked the hectares from their weighted averages. We weighted the average toward the coastline to mimic how coastline cities tend to grow in more of a thickening line along the coast, as opposed to the traditional radial pattern of inland cities. In conjunction with the tissue analysis we outlined on page 54, we determined the appropriate number of buildings, built area, and desired density that we would range between. We had to alter the data somewhat significantly as we were replacing such a large percentage of the buildable area with canals. The alternation is done through a feedback loop that will re-calibrate the distribution number of a hectare if a canal grows into its boundary. In this way, the distribution of the city is directly linked to the layout of the canal network because the hectares will re-prioritize themselves to favor canal-rich areas. In order to use most of the data we have researched, which was usually represented in “x-objects” per capita, we needed to know the desired population of a fully matured Metab. Most density studies use dwellings per hectare (DPH) as their unit of measure for a given area. In order to calculate the DPH for Metab, we sampled each of the 4,845 hectares inside the boundaries of the proposed city, and used a gradient of dwelling distribution from high to low. By using an average of 4 people


per dwelling[5] we were able to get a target population of 792,490 people which we rounded to 800,000 as the target maximum for Metab’s population. These maths are based on the status-quo of the region, but we find such numbers to be suspect. Using DPH as a unit of calculation has led us into some problems. All DPH calculations are averaged for an entire city and in some cases an entire metropolitan area. Using averages for density calculations has not proved useful because a city, by default, does not have an average distribution of people. For example, a

A data that would be much more useful in our efforts, would be the built percentage of the city that is residential, and that should be the focus of research for generating cities in the way we are proposing in this document. If a designer can understand the total area that is required for a city, and also what percentage of that area needs to be residential, we believe that appropriate DPH numbers would emerge as a property of area distribution in the third dimension.

In our efforts to generate urban

Seoul, South Korea suburban neighborhood (8 dph)

Seoul, South Korea neighborhood (280 dph)

high rise complex such as the Hyperion Towers in Seoul, South Korea can push the dph number well above 200, but a disproportionate area of the city may have numbers below 15 dph pushing the average way down. It is also not clear how much of the city is highly densified but without any dwellings such as business districts or industrial areas, nor is it clear if sampled hectares include roadways, water bodies, parks, or any other unbuilt areas. If even a small portion of the hectares sampled returned DPH values of zero, the average would not lend itself to any method of urban tissue generating.

tissue based on DPH numbers found in our research of existing cities, we are finding that our generated cities are much too large for the given population according to the standards of the region. While it is unclear what the relationship between the residential area of a city and the total built area of the city, it is clear that dwellings per hectare is not the preferred method of creating new city tissue. We will use the target population achieved from the averaged dwellings per hectare number, but change the desired density of these new metabolic cities to minimise the

90

03. Elements


tax on our networked infrastructure. Much like organisms do in nature, we will pack more area in a smaller space by increasing the undulations of Metab’s surface. As a city becomes more dense it also becomes taller. Qatar in this case is the surface and the buildings placed upon it are the undulations. The greater the height of the undulations the greater the area sequestered.

The number and location of buildings can be determined for any given population based on a simple m2 per person calculation. The total area of the city is broken into progressively smaller buildings until there is no more area to distribute. In this way we are mimicking the metabolic scaling of biological networks such as lungs and blood vessels.

This diagram show the physical bounds of Metab. It has an area of 48.45 km2. We divided the bounds into hectares to extract the population and used each of the hectares to dole out buildings instead of dwellings. There could be as many as 100 dwellings in a single building.

At present, the height of buildings in cities has a direct relationship with the distance they are from the “center”. As one approaches the fringe of the city proper, the buildings are essentially distributing area in two dimensions. Instead of allowing this pattern to emerge we developed a threedimensional distribution of space that uses multiple centers in order keep the average height somewhat significant. Each building is based on a metabolically scaled Chrysler Building which prevents buildings with as small as 30 square meter footprints from being one level.

03. Elements

91

Using a residential density of 60% of our total built space, and an average 60m2 per dwelling (resulting in 15m2 per person) gave us a total residential area of 12,000,000 m2. This area divided by 60% leads us to the total built area required for our city which is 20,000,000 m2.

Grouping Strategies Our grouping strategies posses the same characteristics as the strategy of the “toggles”, but varying these strategies will not affect the global morphology of the city. Instead these grouping strategies will


The Public space method would group buildings according to which public space they are served by. When the networks are based around the public spaces they are closest to, the distribution center of the network would always be close to the end user and in this way the network length would be minimized. Local

200

Number of Buildings

40 meters

50

The alignment strategy groups buildings according which piece of physical infrastructure they are aligned with. In this method the networks would run parallel to the road or canal their corresponding buildings were aligned to, allowing the network to grow as the road or canal did. Because the roads and canals are always ahead of the growth of the cities buildings, connectivity should never be an issue.

65 meters

25

We pursued three strategies: alignment, public spaces, and maximum area.

154.3 meters

7 meters

0

alter the connectivity of the electrical and plumbing networks of Metab.

0

25

50

200

Height (m)

This is the normal distribution graph of buildings for three different cities. We used the Galapagos solver in Grasshopper to derive the appropriate building count and heights. The results of the experiment mimic the real distribution of buildings in a generalized city: a lot of smaller buildings and a relatively low number of tall and very tall buildings.

This diagram shows two of the methods that we used to determine the size of the buildings. The left one uses loosely packed circles which represent neighborhood centers. The right diagram uses lines or curves, but both methods distribute area according to how far from the source each building’s center is. As one of our toggles we can switch between high concentrations at the attractors or lower concentrations toward the attractors.

92

03. Elements


failures could be managed with local reconnectedness. The nature of the MST (page 41) is to minimize the length but if any node were to become disconnected the network could be reattached to the public space distribution center. The maximum area method would group buildings into network severable areas. For example, if a local power station could only produce enough power to light and cool 20,000 square meters then we can set up a grouping strategy that create networks for 20,000 square meters of built area. This method breaks the buildings from being associated with their urban context but the potential overlay of networks could provide yet another way to organize this infrastructure in Metab.

Alignment - buildings are grouped according to which canal or road they are facing.

"Sticky" As a part of our ongoing investigations into self organizing systems (grouping, packing, agent based growth, etc.) we developed a way for the buildings to create their own block morphologies based on the mutual attraction of each building. Something that was very attractive about the Amman A3 tiles discussed on page 32, was that they fit together like puzzle pieces. If we could scatter them across a surface and have them put themselves back together without intersecting, we could potentially create a large variety of tissues from simple rules of attraction.

Public Spaces - buildings are grouped according to their closest public space.

Maximum Area - buildings are grouped by proximity up to a maximum area.

03. Elements

93


The process was computationally expensive and while the tiles were able to create some interesting tissues (right), their ability to orient themselves with the nearby infrastructure was weak in comparison to other scripts we had written. They also took hundreds of times longer to reach a relatively stable state than the other scripts. “Sticky” was based on the agent_hex video by David Reeves (Davideo) http://vimeo. com/22797900.

Even long range force

Original separation

Strong short-range force

References [1] “The World Factbook.” Www.cia.gov/library/publications/the-world-factbook. Central Intelligence Agency, Aug. 2011. Web. 21 Aug. 2011. <www.cia.gov>. [2] Abdurahiman, Shahim M. “Climatic Design In the Arab Courtyard Houses (Shahim Abdurahiman) - Academia.edu.” National Institute of Technology, Calicut - Academia.edu. Department of Architecture. Web. 14 Sept. 2011. <http://nitc.academia.edu/ShahimAbdurahiman/Papers/288413/Climatic_Design_ In_the_Arab_Courtyard_Houses> . [3] see page 54 [4] Lynch, Kevin. The Image of the City. Cambridge (Mass.): Mit, 1992. Print. PP 46-66 [5] “The World Factbook.” Www.cia.gov/library/publications/the-world-factbook. Central Intelligence Agency, Aug. 2011. Web. 21 Aug. 2011. <www.cia.gov>.

Images {1} http://thoker.files.wordpress.com/2010/11/muslim-comunity-celebrating-eid-al-adha-02.jpging-eid-aladha-02.jpg {2} http://www.howardmodels.com/Architectural-Renderings/Chrysler/Chrysler-Large.jpg

94

03. Elements



Networks


Thesis Focuses

Water

Urban Migration

New Cities

Population Growth Qatar

research

Climate Densification

Elements

L-Systems Algorithmic Design

Emergence Agent Behavior Metabolic Scaling

Computation

Genetic Algorithm

Networks

Toggles A-Star

Tools

Space Syntax Computing Power

Rhino and Grasshopper Simulations Thesis inspiration

04. Networks

97

Scripts/methods implimented


OMA Waterfront City

Bahdad, Iraq Bandar-e-Abbas, Iran

Cities in the Region

Jeddah, Saudi Arabia Captive Globe

Precedent Cities

Hochhausstadt

City Design

Kenzo Tange

Urban Metabolism

City Dynamics

Clusters/Blocks Buildings Orientation Cultural

"Sticky"

Public Spaces

Solar

Green Spaces

Shortest

Urban

Longest

Minimum Spanning Tree

Pocketed

Diffusion Limited Aggregation Woolly Paths

Transportation

Area

Ammann A3

Public Spaces

Electrical

Proximity

Grouping

Streets Public Sea Water Canals

Hydrological

Dessication Coastal Connectivity Branching Resource Growth Boston

Coastal Manipulation

Undulations Stenocara Beetle

Potable Water

Solar Stills

Capture Tower

Fog Catchers Desalination & Storage 98

04. Networks


Hydro Nuclear

Fossil Fuels

600-1700 MW

~200 MW

Power Plant

~600 MW

Extra High Voltage 265 to 275 kV

Regional

Factory Plant

~150 MW

~30 MW

Low Voltage 50 kV

High Voltage 110 kV and up

Step-down Transformer

Wind

Urban Solar Industrial Local Plant ~150 MW

Suburban Farm 400kW

04. Networks

Rural

3MW

Geothermal

99

Local


Electrical Networks The current paradigm about electric supply revolves around centralized networks. Energy is produced by traditional methods such as hydroelectric, nuclear, and the burning of fossil fuels. The energy is then transported hundreds, even thousands of kilometers to where it will be consumed. Vast electrical cables expand over cities, towns and fields independently of their actual demand. Today’s technology and the way it is being utilized, allows the construction of interconnected super networks where for example, electricity produced in hydroelectric power plants in Bogota, Columbia, is consumed 6.000 Kilometers away in Chile. These robust networks, despite all their advantages, suffer from losses of energy due to their extension, and are vulnerable due to their direct mutual reliance. Centralized networks moreover, are not conditioned to local development of expanding urban tissues because in order to grow, it requires an extension from the main supply line. Our approach is to utilize local networks because they connect directly to the urban, industrial and suburban tissues by the use of alternative sources of energy production such as wind, solar or geothermal. Our goal is to deliver in a more effective way, the amount of energy needed by classifying the demand and adjusting the production accordingly. A local approach to energy production facilitates the development of the city because power lines spread more rapidly from multiple sources than if they were coming from a single one.

Our system utilizes local minimum spanning trees as seen on page 41 as a way of optimizing the extension of the network by ensuring adequate coverage, but keeping total length of the network low.

Road Networks In order to create a more appropriate road network we had to tie the growth of the network to the population directly. As in all metabolically scaled networks, the distribution and length relates directly with the organism’s mass, or in Metab’s case, population. Road length per capita:[1] Qatar: 0.19m Iran: 0.45m Iraq: 0.67m Saudi Arabia: 0.12m United Arab Emirates: 1.26m Oman: 0.05m Yemen: 0.34m Jordan: 0.82m Arabian Peninsula average: 0.4875m Qatar (x10) weighted average: 0.3167m By cross referencing these data with our target population, we can discern that the road network we develop would need about 250,000 meters of roadway (800,000*.316), however, we are not using roadways as the primary connective tissue of the city. By replacing the primary method of transport of goods and people with water we are going to suggest that this number be cut in half. If we consider the scaling data we

100

04. Networks


The modified coastline:

The tissue coastline:

No beach The main road is between 20 and 50 meters from the ocean This type fortifies the water’s edge by removing the sand beach and placing man made barriers higher than the waterline. This allows for buildings and infrastructure to be placed right at the water’s edge, which is particularly useful in very dense areas where space is at a premium.

The natural coastline:

This variant is the most common type. A large band of infrastructure is placed far enough from the water’s edge to allow dense inhabitation on both sides of the road. This kind of development still has a beach, but it is inherently less public than with the previous two types.

The double coast.

Natural sand beach The main road is between 50 and 100 meters from the ocean. This type leaves the beach in its original condition and places the infrastructure far enough away to allow natural oceanic fluctuations and public beach use.

04. Networks

Natural sand beach The main road is between 100 and 200 meters from the ocean.

101

Natural sand beach Man made canal Man man beach The main road is up to 1000 meters from the water’s edge The double coastline creates an artificial beachfront by bringing the ocean past a thin layer of urban tissue in order to effectively triple the amount of land that has a buildable waterfront. This situation is usually done in pockets instead of entire segments of coastline.


have used throughout the project we will be able to calculate precisely how much road network will be needed for any given population as the city grows to the 800,000 person target. If 125,000 = Y0(800,000).77 then Y0 = 3.560661781... This equation will allow the growth of the road network to pace itself to the growth of the population according to a specific feedback loop inside the code. After every iteration the code will report how long the network is. It then cross-checks that number with the current population and adjusts the material tension and cracking speed accordingly. It will also provide a more highly connected network at times of great growth by doubling the amount of roads built per iteration.

Road Network generating The road network of a city works similarly to the circulatory system of a living organism and should be scaled similarly (sub-linear). The road system we have developed uses metabolic scaling in combination with agent based behavior to build time sensitive networks loosely based on desiccation, which is commonly known as mud cracks.

Coastal roads

{1} Dessication cracks in sludge. The older cracks are the ones that are longer, wider, and more continuous.

The desire to maintain a working relationship with the ocean has caused cities to spread along coastlines of all bodies of water. In arid climates especially, the proximity to water is paramount for nearly all aspects of the city from primary industry to recreation. In order to establish some guidelines for the establishment of a functional and appropriate road network, we conducted a series of studies on coastal cities bordering the Persian Gulf. The four situations pictured opposite this page were taken from Google Earth and they represent the gamut of coastline roads along Persian Gulf coast. We used these as guidelines to make rules for our own coastal road.

Desiccation produces a clear hierarchy of cracks based on their relative age. Another aspect of desiccation that proves useful for road network generation is the way that the cracks are distributed over a surface. The pattern is very evenly spaced but the size, width, and continuity of the cracks are significantly varied. Desiccation cracks almost always intersect at right angles, which again translates to the way road networks are generally built. Although the desiccation cracks do not scale according to the metabolic scaling rates used throughout the project, by combining the two logics, a significant network can be built.

102

04. Networks


The algorithm used to generate the patterns opposite this page, begins with a boundary curve that will act as the primary road. In coastal cities such as this one, it seems to follow that the primary road is just off the coast and it runs relatively parallel to the coast along its entire length. We have used the same condition as an input for the primary road. There are many random functions that appear throughout the code to create sufficient variation but there are essentially three parameters. The first is the speed at which the cracks develop. In all cases pictured the speed was 5 meters per iteration. The second parameter is the material tension. The material tension determines how long the surface can crack before another crack will appear. This number largely determines the spread of the network. The final parameter is whether or not new cracks develop in a single direction or opposing directions from their point of origin. All of these parameters are determined in a semi-real time fashion which is described in detail on page 100. The networks pictured opposite do not include the avoidance and integration tactics of existing roads and new canals, in which a developing road will decide whether or not it will intersect or run parallel to other roads and canals in close proximity.

Network Optimization and alteration Both the road network and the canal network simulate growth to gain their topological form. Due to the amount of random deviation in the “ideal� growth pattern some strange intersections can cause a bottle-necking effect in the

04. Networks

103

transference of resources. Using the space syntax tool we built, we can analyze the networks we create to see if there needs to be a re-sizing due to heavy use. On the following pages, the relative size of the roads can be seen and compared to the relative connectedness. Each of these images has been normalized so that regardless of their connectivity there will always be a deep red line and a dark violet one. The more monotone a diagram becomes the better connected it is. If we look at diagram number 3 we can see that the reddest lines fall on the central line, which is the oldest one (thickest crack). The coincidence of deep red and large size means that the network is sized appropriately. Diagram number four on the other hand has deep reds on younger curves (smaller widths), meaning that those curves will have to be re-sized or connections will have to be added to the network in order to relieve some of the stress on the less accessible areas. Interestingly enough, diagrams 3 and 4 were made with the exact same criteria outlined in the section prior. Diagram number 2 shows a very even distribution of blues with one dark red. This dark red section of road could easily be re-imagined as a public space.


Drying Speed: 5 Material tension: 50

Drying Speed: 5 Material tension: 100

Drying Speed: 5 Material tension: 100 Cracks develop in both directions

104

04. Networks


1

2

3

4

5

6

Crack patterns we developed using a script inspired by dessication. The colored sets were made with the same criteria and they are meant to show the variety that can be made by the introduction of random values for the cracking position and the straitness of the line.

04. Networks

105


1

2

3

4

5

6

These images were extracted from the Space Syntax code we wrote

106

04. Networks


4.3.

Hydrological Networks Water is our main focus for this thesis. It is widely touted that the international conflicts of the future will be over water. The hydrological networks that we are proposing, are an attempt to solve not only an organizational or climactic problem, but a humanitarian one as well. Unfortunately, our society will depend on the most water starved areas of the world for fossil fuels for a long time to come. It is important that we protect the livelihood of the people and places who provide energy to the world. The following section will take you though the purposes and methods we have researched and used in order to create a network that can serve the entire population of Metab, as it grows, indefinitely. The morphological conditions of Metab are directly linked to the hydrological network and, by design, the hydrological framework carries the most weight in this thesis.

04. Networks

107


108

04. Networks


Water towers As we will described in the hybrid car model on page 111, we will have a decentralized network of water towers throughout Metab which function as a controller in the hydrological network. Water towers as a type are regularly shaped like a funnel or a sphere on top of a cylinder, because they have to increase the internal water pressure for the distribution of water. Pressurization occurs through the hydrostatic pressure of the elevated water; for every 10.20 centimeters of vertical rise, the pressure increases by 1 kilo pascal (0.145 psi). A tower with a height of 40 meters produces roughly 392 kPa, which is enough pressure to operate our distribution requirements. Since water towers are funnel shaped it leaves potential space underneath the overhang of the funnel, we will utilize this space to create a new water tower type which will serve multiple purposes alongside water storage, such as residential, cultural or commercial use. The interior funnel of the new architecture will be sized according to the needed water for the number of buildings which is within its distributional range. After an appropriate size has been determined the funnel will then be optimized by utilizing the pressure formula, so that there will be an optimal water distribution throughout its covered area. Each tower will be located at a public space thereby linking water use to social activity. The awareness produced by the constant presence of water in everyday life, may help shape social habits to better conserve water.

04. Networks

109

The development of Metab’s water towers revolved around the described genetic algorithm solver named Galapagos (see page 31), which is an embedded function in the software grasshopper a plugin for Rhinoceros. Based on a precedence study of generic water towers it was realized that they are variations of a cylinder. We used Galapagos to generate different iterations of the cylindrical base-model, that we could evaluate. Galapagos needs a target value, where we used the size needed to sustain the population of 1 million m2 of build area. This was calculated by: Volume of tower= (1,000,000 m2 / 45 m2 per person) * 1,156 litters of water per person per day Volume of tower = 25688,88 m3 of water Pressure = H / 0.102 m/kPa[2] We evaluated the generated containers by calculating the percentage of occupied space of the containers bounding box (a


bounding box is the minimal boundary for a 3-dimensional object.), the containers height, the water pressure. We used the following formula: pressure = h / 0.102 m/kPa The output flow speed is calculated as the length of the resultant vector( v ) of the formula[2]. v = v * (1 - ( r2/R2) )1) We saw that Figure 1 was the fittest of the generated objects.

{2} “Water Tower for Peace� in Darfur, Africa. This project provides the archetypical water tower with a programmatic wrapper. The top is fit with energy gathering solar panels, and the overhang is dramatic to provide shade for the cultural center it surrounds. This project was an inspiration in the cultural affects of the project as well as a formal and technological inspiration.

Fittest

R

R

v

v

R

v

r r

Figure 1 H = 56 m % of Bounding Box = 28.87% Pressure( h / 0.102 m/kPa ) = 549.019 kPa Output flow velocity: ( v = v * ( 1 - ( r2 / R2 ) ) = 373.308

r

Figure 2 H = 34 m % of Bounding Box = 62.75% Pressure ( h / 0.102 m/kPa ) = 333.33 kPa Output flow velocity: ( v = v * ( 1 - ( r2 / R2 ) ) = 1.234

110

Figure 3 H = 54 m % of Bounding Box = 36.32% Pressure( h / 0.102 m/kPa ) = 529.411 kPa Output flow velocity: ( v = v * ( 1 - ( r2 / R2 ) ) = 3.587

04. Networks


Hybrid Theory for urban water management The water network is the foundation for the entire metabolic process. We are attempting to create a city that functions solely on its generated resources but under the circumstance that the network fails, is under construction, or is interrupted for any reason, we are proposing that our system work like a hybrid car. Hybrid cars use two engines: a electrical engine, and an internal combustion engine. The electrical engine propels the car first and acts for as long as it can supply enough energy, but when more energy is needed, or the battery power is running low, the car will switch to the traditional engine and use some of the generated power to re-charge the electrical powerhouse. The electric engine is monitoring the energy input and output of the vehicle at all times. During braking and coasting the rotation of the wheels act as a rotary generator, charging the battery at every available moment. During peak uses, such as driving at high speeds, or accelerating at full throttle, the car will switch to the combustion engine until the requirement has ended[3]. In this analogy the water gathering surfaces and stills function as the equivalent to the electric engine. These passive water gathering strategies will work at all times and they are meant to be the primary water source[4]. There are some restrictions to the canal networks and by association the water gathering strategies. Since the canals cannot exceed the built city by more than a kilometer, and the rate of growth is restricted to the rate at which the canals sections

04. Networks

111

can be built, temporary shortages in water supply are expected. An immediate action is to deploy solar tower stills[4] which can be plugged into the network at multiple points. If the demand is still not met, the reverse osmosis desalination plant will tapped in order to meet the new requirement. The Reverse Osmosis Desalination plant, which we descibe on the next page, will act as the combustion engine. When the canal network has expanded, become more dense, or enough solar stills have been added for the passive system to sustain Metab’s requirements, the desalination facility will no longer be required. In hybrid cars there is an onboard computer that controls the feedback system that enables the car to switch between electric and gas power. In Metab there will be a decentralized network of water storage towers, which will act as that same control mechanism. The water towers will monitor the water availability and redistribute water accordingly through the embedded distribution network of the canals. If there is not enough water to be redistributed, one of the towers will signal the system to use desalinated water. Something that breaks our network from the analogy is the ability for the network increase capacity as time progresses. The canal growth is constant. Even when the water demand is met, the canal network will continue to grow or become more dense. This method allows the system to cope with future growth spurts as well as differentiate the urban fabric. The design and location of the towers will be further elaborated on page 109.


This diagram shows how the water towers manage all of the contributing factors of the hybrid model. As the gatekeepers, the water towers are fed by the water gathering strategies we have developed and distributes the water to the city, monitoring its resources the whole time, so it can signal for more water if it becomes necessary.

Desalination Seawater contains between 25.000 and 45.000 parts per million of total dissolved solids, an elevated percentage of which is sodium chloride. Due to the presence of these mineral salts, seawater in not potable and its consumption in large quantities can be deadly[5].

Desalinization is the process by which salt is removed from seawater in order to obtain fresh water. Desalinization industrial complexes have been used for many years however the process is expensive and until recently, these facilities had only been used in extreme cases. Today, more than 24 million cubic meters of water

112

04. Networks


are produced in desalinization plants every day, this means that more than 100 million people depend on desalinized water for their daily supply, and these figures only seam to increase every year. (CEDEX, 2004) Some of the methods to desalinize water include distillation, freezing, flash evaporation, formation of hydrates, and inverse osmosis. Reverse Osmosis or RO utilizes pressure to pass the seawater through a series of micro filters in order to obtain fresh water. The amount of pressure depends on the amount of solids dissolved in the water and the degree of desalination needed. The investment of energy results in an increase in entropy. (NRC 2008)

4.3.2.

Canal Network Experiments In order to create the canal network we used genetic algorithms to test and breed growth strategies to maximize the networks yield and spread while simultaneously creating a variety of usable patches for buildings, gathering spaces, and agricultural use. An ideal network will yield a long length while simultaneously covering a large area. The ratio we will use to determine fitness will be the network length divided by the corresponding area. The initial population’s fitness results are on the page following their appearance.

We propose the use of Reverse Osmosis desalination in an industrial scale facility at the end of our primary canal. In this case, the supply tanks can be filled by gravity and passed to the RO micro filters before being distributed to the city.

{3} This diagram shows the process of desalination. Ocean water is taken through a lead or a canal in our case, then sent thought the RO membranes, the clean water (1/3 of the intake) is stored and the remaining 2/3 of the water is returned to the ocean through a diffuser outlet usually located in a turbulent area.

04. Networks

113


Branch angle - to determine which combination or range of angles promotes the optimal network

Branch Angle

?째

Branch scale - using metabolic scaling, we tried going from short to long (STL) canals in addition to long to short (LTS) canals.

Branch Scale: STL

Branch Scale: LTS

Meander angle - determines how far is each segment of a generation allowed to deviate from the direction of the previous segment.

Meander Angle

?째

Generation 1 modifications - noted as G1, this change allows each generation to change or alternate between bred strategies.

Generation 2 modifications - noted as G2, each tree on the network is allowed to change or alternate between bred strategies.

114

Generation 1

Generation 2

04. Networks


1

2

5

6

9

10

13

14

04. Networks

115


3

4

7

8

11

12

15

16

116

04. Networks


Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

1 45-45 LTS 80265.265 561 15040408.740 * 18

2 45-45 STL 75315.254 213 17987523.274 * 21

3 0-90 LTS 125650.000 803 18950280.002 * 17

4 0-90 STL 112275.000 350 20490597.323 * 13

Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

5 0-30 STL 137125.433 847 28068154.581 * 31

6 0-30 LTS 198411.349 553 17015055.947 * 19

7 0-60 LTS 120161.294 749 19636985.810 * 16

8 0-60 STL 140334.103 401 25100750.991 * 19

Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

9 30-30 STL 110708.053 301 22280295.545 * 26

10 30-30 LTS 81327.960 569 12860976.515 * 17

11 30-60 LTS 138932.119 1003 23123110.479 * 17

12 30-60 STL 172863.655 457 33823971.903 * 25

Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

13 30-90 LTS 143030.053 1037 23180295.512 * 31

14 30-90 STL 131271.608 357 21558838.265 * 19

15 90-90 LTS 86725.000 645 11386277.134 * 19

16 90-90 STL 38125.000 129 7981469.148 * 29

Initial population Each variant was allowed to run eight branching generations and for the initial population, all of the data remained consistent throughout the entire eight branches. The variants which had symmetrical branching strategies seemed to die into each other much sooner than asymmetrical patterns, but because they spread in both directions, they made up for their weak length data with decent area coverage.

04. Networks

117


Breeding Strategies Diagramed below are the different crossbreeding strategies that will be utilized throughout our genetic experimentation. They work as follows: “Every other” means that the data sets of two results have been interlaced. “Random” means that two data sets have been randomly shuffled together. “One to one mix” is where the growth pattern of two data sets will be mixed

Every Other

Seven Styles

Random

so that they will blend breeding strategies into a new previously untested strategy. “Random mix” shuffles growth strategies randomly at every generation.

1 to 1 mix

Random mix

Seven Styles - Random

118

04. Networks


Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

17 30-30 & 0-30 STL & STL 189992.831 525 30083071.290 G1 every other 35

18 30-30 & 0-30 SLT & STL 161534.689 450 26983389.634 G1 random 27

19 0-30 & 45-45 STL & STL 164569.176 433 29757167.915 G1 every other 29

20 0-30 & 45-45 STL & STL 158947.378 447 28784517.207 G1 random 27

Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

21 30-60 & 0-30 LTS & STL 113469.442 445 20816224.962 G1 every other 21

22 30-60 & 0-30 LTS & STL 134127.382 491 18716441.667 G1 random 18

23 30-30 & 30-90 LTS & LTS 108096.770 669 17413002.204 G1 every other 16

24 30-30 & 30-90 LTS & LTS 138353.356 964 22115988.928 G1 random 27

Generation One Each variant was allowed to run eight branching generations but at each branching moment the strategy was changed according to the G1 breeding modification. The generation one results proved to be significantly more productive than the initial population. From this generation it became obvious that the STL method of scaling yielded significantly better results for both length and coverage.

04. Networks

119


17

18

19

20

21

22

23

24

120

04. Networks


Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

25 30-30 & 0-30 STL & STL 189992.831 525 27501845.826 G2 every other 22

26 0-30 & 30-30 STL & STL 191323.612 523 22398759.506 G2 random 21

27 30-30 & 0-30 STL & STL 142583.244 411 32622796.241 G2 every other 25

30 7 Styles STL 106322.407 307 19907721.131 * 34

44255 66 696 63.48994253 31 7 Styles LTS 119561.097 813 20635944.679 * 21

SS Max SS Min SS Count Space Syntax Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

29 45-45 & 45-45 STL & LTS 190783.950 465 20910143.492 G2 random 20

Generation two Each variant was allowed to run eight branching generations with constant data, but each tree used a different strategy based on the G2 breeding strategy. The generation two results proved to be significantly more productive than the initial population and also some from generation 1. This generation learned us that varying growth strategies would give interesting patterns, but not necessarily better efficiency.

04. Networks

121

28 45-45 & 45-45 SLT & LTS 108236.975 465 22032162.401 G2 every other 22


25

26

27

28

29

30

31

122

04. Networks


Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

32 7 Styles random 123293.180 361 22895469.624 random sel 27

33 0-30 STL 192468.463 541 27214349.619 meander 2 22

34 0-30 STL 167370.522 481 23137053.996 meander 5 21

35 0-30 STL 114070.103 343 16397522.396 meander 10 19

Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

37 45-45 STL 115484.340 315 28257424.155 meander 2 21

38 45-45 STL 144942.573 399 32547053.046 meander 5 27

39 45-45 STL 139137.327 373 32072100.103 meander 10 24

40 45-45 STL 109313.005 309 19414604.399 meander 20 17

SS Max SS Min SS Count Space Syntax

12974 56 372 34.72580645

20

Meandering path

15

In a response to the number of branches that killed each other from symmetrical branching angles, we introduced a randomly derived list of angles to the canals as they progressed. Each test received the same randomly generated list.

10

The number of curves that survived did increase with slight meandering but this graph shows the diminishing returns from meandering too much. The differences in length from 0 degrees to 2 or 5 degrees was acceptable when considering the gains, but the 10 and 20 degree meander proved too severe to be productive.

0

5

+/- Degrees of Meander

21031 23 469 44.79317697

0 50,000

100,000

Network Length (m)

04. Networks

150,000

123

200,000

36 0-30 STL 64418.132 286 7077173.151 meander 20 15


32

33

34 35

36

37

38

39 40

124

04. Networks


Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

41 0-30 & 45-45 STL & STL 107163.953 323 19147955.020 meander 2 22

42 0-30 & 45-45 STL & STL 111689.537 323 19424092.177 meander 5 23

43 0-30 & 45-45 STL & STL 101788.031 319 15113029.245 meander 10 25

Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

45 67.5-67.5 STL 72990.965 205 18391538.807 meander 2 31

46 37.5 OR 22.5 STL 145069.391 417 28688017.525 G2 rnd & me 5 21

47 48 37.5 OR 22.5 Obtwn 45 & 67.5 STL STL 135258.230 101071.729 379 289 26774449.800 23043261.700 G2 rnd & me 5 meander 2 23 25

SS Max SS Min SS Count Space Syntax

9323 56 225 41.18666667

Mix Breed In this generation of breeding we mixed the values according to the 1 to 1 method discussed on page 118. By mixing the branching angles and styles the networks topology improved both in length and coverage. The recognition of the networks patterns was fading, which yielded more varied urban patches, but the diminishing returns from the seeming randomness decreased the fitness of most of the variants.

04. Networks

125

44 0-30 & 45-45 STL & STL 53538.419 191 7710887.983 meander 20 25


41

42

43

44

45

46

47

48

126

04. Networks


Branch Angle Length Change Network Length Segment Count Coverage Area Notes Variety

37 45-45 STL 115484.340 315 28257424.155 meander 2 21

45 67.5-67.5 STL 72990.965 205 18391538.807 meander 2 31

39 45-45 STL 139137.327 373 32072100.103 meander 10 24

27 30-30 & 0-30 STL & STL 142583.244 411 32622796.241 G2 random 25

SS Max SS Min SS Count Space Syntax

12974 56 372 34.72580645

9323 56 225 41.18666667

21031 23 469 44.79317697

44255 66 696 63.48994253

Fittest individuals These four variants had the best ratio of length divided by coverage area. Variant number 27 had the longest network but as a result of its branching angles, there are few usable urban patches and the angles of each polygon are very acute, which significantly reduces their usable area. Variant number 45 was the second most fit individual from the 48 networks we tested. While the ratio may prove fit the length of the network was miniscule when compared to the other fit individuals. We are using the canal walls as the primary water gathering method, therefore, the length of the network must be as long as possible, but still maximize usable urban areas. Variant 45 is simply too short to be used. Variant number 37 and 39 used the same branching and scaling method but differed in their meandering angles. As described on page 123, the more severe the angle of deviation, the lower the yield of the network, and so the choice was clear at this point; that we should proceeded with testing our city algorithm with a branch angle of 45 degrees, metabolically scaling branching canals from short to long, with a 2 degree meander. Even though this strategy is the solution with the optimal spread to length ratio, it is not the one with the longest network. A method we used to counter act this fact was to add a new level of intelligence to the hybrid car model described page 111, where new sub branches are added to already existing branches to meet the increased water demand of possible growth spurts.

04. Networks

127


37

45

39

27

128

04. Networks


Canal Systems Design

it cannot handle.

The canals, in addition to distributing water around the city, are responsible for distributing the potable water, waste water, and salt water return networks. When using the kind of water gathering strategies that we are proposing, there is a percentage of the water that becomes “super salinated”. The water in the canals is likely to have a higher salt content than the ocean at large. In order to prevent environmental impact from the supersalinated water, both from “stale” canal water and by-products of the RO desalination plant, we use an underground piping system to flush the super salinated water back to turbulent spots in the ocean so that the remixing is almost instantaneous. The diagram on page 113 shows this process in more detail. There is also a parallel network of potable water distribution. The canals are intermingled with the urban surface completely. Every building is within a quarter of a kilometer to its nearest canal, and because of this fact, the canal network is a perfect candidate for providing fresh water. The fresh water network does not have a direct link to the solar and surface water gathering strategies though. The canal walls provide infrastructure for the two systems to pipe water to treatment and filtering facilities, then storage towers located in the public spaces. The storage towers are the mechanisms providing the appropriate pressure and distribution to the buildings and since the water networks are based on proximity to public spaces, the distribution system should never experience a strain that

04. Networks

129

At various locations throughout the city, derived from a superimposed grid network, there will be docking stations for the stills. The stills have a 20 meter diameter, which can take up a sizeable portion of the canal, preventing boat traffic. By incorporating an evenly distributed series of docking stations, the stills can be added and subtracted at will to provide fresh water for their closest cleaning facility, and by association, their closest distribution tower. Waste water will also be running in a parallel network toward the industrial RO facility, which doubles as a water treatment facility.

In order to make the network more expandable, we use pavers and a designated underground path for the municipal, waste, seawater return, and distribution water lines. A major problem with cities today is the accessibility to systems like this. By incorporating the channel directly into the canal wall, the infrastructure automatically expands as the canals do.


The rendering above represents a typical docking station for the Solar Towers. The edges around the docking station are orthogonal but jagged causing niches and pockets of adaptable land. The rendering shows three of many possibilities: green spaces as miniature parks, A canal maintenance building or shop, and a paved recess for a variety of activities. The urban areas around these docking stations are meant to be very public and active which is why the urban tissue is built right to the edge of the outcropping.

The diagram above shows the basic logic for getting water from our gathering sources to a unified network that can be taken to a treatment facility. The diagram below shows how the solar Tower can be “plugged� into the canal wall and provide a boost to the water supply of a given area.

130

04. Networks


Fog catchers Fog catchers are densely woven polyester nets that are extended between two poles[1].

need: (1 million people * (451 litters per day/ 24 hours)) / efficiency = 22,550,902.02 m2 = 22,550.902 km2 This area is the same as (22,550,902 m2/10800 m2) 2088 football fields.

Stenocara Beetle

{4} Fog catcher on a Peruvian hillside. The potential implementation of the fog catcher seemed like a good coupling to the coastal manipulation we were doing. It seemed the more we manipulated the coast the better these fog catchers would work, but the inefficiencies are too strong to overcome in this climate.

Fog catchers have been used for almost 20 years, but the use is almost exclusively in mountain regions within Peru and Chile[8] where the anabatic and katabatic[9] wind conditions will generate fog as the air will flow down the mountain sides and will be cooled by the cold ground[10]. Since 2006, Dr. Kai Tiedemann has conducted research on the implementation of fog catchers into the local society of Lima, Peru. In Lima they have very dense fog from June - November every year which makes Lima an ideal place for implementation of this strategy. Tiedemann has installed a series of fog catchers totaling 30 square meters that yield about 600 litters of freshwater per day. This resulting efficiency is: 600 / 30 / 24 = .833 litters per hour per square meter. In order to use fog catchers to sustain a population of 1 million people you would

04. Networks

131

One of the major problems with living in arid climates is the lack of natural occurring freshwater. A beetle from the Namib desert named Stenocara has developed a solution to the scarcity of water in desert climates, they have the ability to extract water from the humidity in the fog that blows over the desert in the morning hours because the air is still cool.

{5} Stenocara Beetle close up

The way the beetle extracts water is through small bumps that cover its exoskeleton. The bumps have a hydrophilic[12,13,14] property which attracts water, due to its polar charge[12], that causes hydraulic coagulation (droplet forming). When the water passes to the valleys of the exoskeleton, it encounters a hydrophobic surface[13] which is a non – polar substance, meaning the water molecules will bond to each other instead of the surface. This will channel the water down to the beetles mouth where it can take its life saving drink.


This strategy has been further developed into a surface coating by researchers at the University of Sydney, which will be described in the following page.

Solar stills Solar stills are mechanisms that extract water by increasing the humidity within a confined space, this is often done by creating a green house for water instead of vegetation. Solar stills efficiency is heavily reliant on the level of solar insulation in a given context, because of this, stills will be more efficient in arid climates where the insulation levels are very high.

A solar still showing an exaggerated condensation of fresh water. The sun penetrates the dome and evaporates water. The closed container prevents the vapor from exiting and the water drips down the sloped surfaces to a gutter where it is taken to a treatment facility.

Solar stills can either desalinate water through evaporation or condensate the humidity in the air. This technology has been used in small desalination contexts for the past 100 years, but has never had the desired efficiency for industrial use[15].A solar stills efficiency can be estimated through the formula[16]:

Q = (E*G*A)/2.3 Q is the daily output of water, E the efficiency, G the daily global solar radiation and A is the plan area(m2) of the still. In order to illustrate the downfalls of solar stills, we will calculate a still with a 30% efficiency, which is the suggested average efficiency[16], for 1 million people. Keep in mind that solar stills become more efficient as they get larger.

The formula will we rewritten to: A = Q*2.3/E*G. Area = (1 million people * 451 litters of water per day) * 2.3 / (.3 efficiency * 6 kWh/m2) Area = 160,077,160.5 m2 Which is (160,077,160.5/10,800) 14,822 football fields. This efficiency is calculated based on current technologies, but there has been a theoretical proposal of 1 km diameter still that will drastically increase the efficiency of solar stills by lowering the atmospheric pressure inside the still, which will lower the waters boiling point to 50o[15]. Furthermore, there will be solar absorbing material that will further increase the heat gain inside the still. This type of still would produce 100,000 m3 per day[15] which would sustain 221,730 people. If we were to use 5 of these stills we could support our target population using an area of 5002 * pi * 5 / 10,800... or 364 football fields.

Hydrophilic & hydrophobic surfaces In the section on the Stenocara beetle we described nature’s way of extracting water from the relative humidity

132

04. Networks


in the air. With the increased need for viable water gathering strategies mimicking this technique is becoming increasingly appealing. Researchers at the University of Sydney have now come to a point where they have developed a polymer coating that mimics the shell of the stenocara beetle. The coating is made of two different layers of polymer, where the lower layer is hydrophobic (water shedding) and the top one is hydrophilic (water attracting). After the topcoat is applied, it is heated to approximately 150째C in order congeal into droplets as shown on the diagram shown below. The coating can be applied to any solid substrate[17,18]. The efficiency of these surfaces is measured at 3 litters of water per hour all day - everyday, which makes this type of surface able to sustain 1 million people with

Although this might seem like a big area to fit into an urban context, the possibility of combining this coating with any urban surface makes it more than feasible.

Hybrid solar Still The two most efficient water gathering strategies are the hydrophobic/ hydrophilic coating and the solar stills. Setting there efficiency aside, they are also very easy to retrofit into the urban fabric, because stills can be situated in the canals and the coating can be applied to almost any surface. In order to use the fog catchers, which have to be stationary and used in great numbers, we would have to create arrays of fog catchers in the ocean to utilize the anabatic and katabatic wind conditions of the area. Any obstruction to the flow of the wind, like buildings, would render the fog

Heat >150째

Hydrophillic Layer Hydrophobic Layer

Isolated Droplets

Solid Substrate a total surface area of : Area = (1 million people *(451 litters per day / 24 hours)) / 3 litters per hour = 3,131,944.444 m2

catchers nearly useless. There is also a fine line between what qualifies as fog versus simple water vapor in the air[19], and the nets can only catch particles of certain size.

This is the equivalent of (3,131,944.444/ 10,800 m2) 290 football fields, making it the most efficient of the alternative water gathering methods.

Instead of using the fog catchers, we will combine the flexibility and, the efficiency of the solar stills, with the beetle inspired coating to create an enhanced

04. Networks

133


water gathering device. We have chosen to make our stills with a smaller footprint but a taller dome, so they fit into the canals, and in order to compensate for the decreased footprint area, and thereby a decrease in efficiency, the surface has been undulated to maximise surface area. The new stills will be floating in the canals, with the possibility to be moved around according to water needs in different areas in the city. In order to get an idea of how efficient these new stills will be, we have modeled this low estimate: Efficiency per hour : Still surface area * 3 + (((0.3 x 6 kWH x 314.2) / 2.3) / 24) Efficiency per hour = 9,723.88 litters of water per hour. This is considered a low estimate because we are using a coefficient of 30% (0.3 in the formula) to compensate for the time that the still is not in the sun, or the coating is clogged with dust or sand.

Our solar tower combines the heat conversion of a solar still with the surface capture of the beetle inspired coating. Undulations provide and increase in surface are with not only increases our capture surface, but also increases our potential solar gain.

134

04. Networks


Water farming With a surface area of 52.6 meters per 1 linear meter of canal, our railing system can provide the water for an entire cities population. If the surface can gather 3 liters per hour per square meter the math is as follows: Qatari population (in 2005): 813,000[1] Total Water use (in 2005): 444,000,000 m3[1] 59% for agricultural purposes[20] 39% for municipal purposes[20] 2% for industrial use[20] According to the metabolic scaling laws we’ve referenced for cities, the demand for resources will scale up by 77% as the population doubles. With our proposed population of 800,000 people added to the estimated population growth for Qatar, the population in 2030 would be something around 2.5 million people. Therefore:

924,451,583/ ((52.6 m2 * (3 liters * 24 hours))) = 228,462 meters we can provide for all the water needs of the entire city, including the industrial and agricultural uses on the fringe.

Coastal Manipulation Nearly all urban places manipulate the coast of the body of water they inhabit. Sometimes for safety but for the most part they do it to increase the amount of water they have access to. Undulation is a common theme in nature and building that achieves this very principle. The Boston harbor (pictured below) is a good example of how to successfully manipulate a coastline. There are a series of large scale peninsula-like protrusions that have a series of smaller peninsulas attached to them. In this way, coastal manipulation can be done fractally.

444,000,000 m3 = Y0(813,000).77 then Y0 = 12491.5 which leads to: m3 = 12491.5(2,500,000).77 then m3 = 1,054,452,587 m3 Taking this number and dividing by 365 days a year and the population gives us 1156 liters per person per day. If our population is 800,000 and each person needs 1156 liters per day, we have to produce 924,451,583 liters per day. If we use the railing of our canals exclusively then we would need a canal network with a length of...

04. Networks

135

Extracting the fractal principle from Boston, MA we created a code that fractally undulates a given curve or coast. The Original curve was about 5,500 meters and after a fractal depth of 6 the coastal length was close to 36,000 meters.


A rendering of our water gathering railing in context. The canals are simply gravity driven, along the front of the railing you can see a gutter. The gutter is fitted with the same hydrophobic coating as the middle layer of the beetle inspired coating causing all of the droplets that hit the gutter to go strait into the system outlined before. We are also counting on a small amount of water dripping off the railing before it reaches the gutter. This will cause the land around the canals to become fertile and grow small forms of vegetation. The vegetation will actually increase the micro-climactic humidity entering the gathering surface into a positive feedback loop that could make a drastic change to the viability of the land in desert areas.

1.0 m

1.0 m

1.4 m

{6} A close-up of Brain Coral. We were inspired by the undulations of brain coral because they have a fractal depth. The entire organism is ridged with an obvious pattern, then each ridge is ribbed, and those ribs get ribs of their own. When we abstract this fractal, the potential surface area gains are (mathematically - not physically) infante.

136

04. Networks


References [1] “The World Factbook.” Www.cia.gov/library/publications/the-world-factbook. Central Intelligence Agency, Aug. 2011. Web. 21 Aug. 2011. <www.cia.gov>. [2] http://hyperphysics.phy-astr.gsu.edu/hbase/bercon.html [3] http://news.carjunky.com/alternative_fuel_vehicles/how-hybrid-cars-work-ab410.shtml - 14-09-2011 [4] page 135 [5] page 76 [6] Torres Corral, Miguel (octubre 2004): Avances Técnicos en la Desalación de Aguas <%22http://www. mma.es/secciones/biblioteca_pub>, en ambienta. Centro de Estudios Hidrográficos (CEDEX) [7] Committee on Advancing Desalination Technology, National Research Council. (2008). Desalination: A National Perspective <http://www.nap.edu/catalog.php?record_id=12184>. National Academies Press. [8] http://www.bayer.com/en/64-69-Nebelfaenger-en.pdfx 11-09-2011 [9] http://www.weatheronline.co.uk/reports/wxfacts/Katabatic-winds.htm 11-09-2011 [10] http://www.weatheronline.co.uk/reports/wxfacts/Fog-and-Mist.htm 11-09-2011 [11] page <?> [12] http://www.biology-online.org/dictionary/Polar 11-09-2011 [13] http://www.biology-online.org/dictionary/Hydrophilic 11-09-2011 [14] http://www.wordconstructions.com/articles/technical/hydrophilic.html 11-09-2011 [15] http://www.globalwarmingsolutions.co.uk/large_scale_solar_desalination_using_multi_effect_ humidification.htm 12-09-2011 [16] http://www.appropedia.org/Solar_distillation_TB 12-09-2011 [17] http://www.australasianscience.com.au/article/issue-may-2010/can-mimicking-nature-quench-ourthirst.html 11-09-2011 [18] http://leishman.conference-services.net/resources/266/2152/pdf/32APS_0033.pdf 11-09-2011 [19] http://www.gaisma.com/en/location/doha-qa.html 12-09-2011 [20] “AQUASTAT - FAO’s Information System on Water and Agriculture.” FAO: FAO Home. Water Report No. 34, 2009, 2009. Web. 30 Aug. 2011. <http://www.fao.org/nr/water/aquastat/countries/qatar/index. stm>. [1] “AQUASTAT - FAO’s Information System on Water and Agriculture.” FAO: FAO Home. Water Report No. 34, 2009, 2009. Web. 30 Aug. 2011. <http://www.fao.org/nr/water/aquastat/countries/qatar/ index.stm>.

04. Networks

137


Images {1} http://upload.wikimedia.org/wikipedia/commons/2/2c/Desiccation-cracks_hg.jpg {unreferenced} faucet with water: http://www.airlines.org/Environment/Additional/PublishingImages/ drinkingwater[1].jpg {2} http://blog.emap.com/footprint/2010/04/11/a-baobab-shaped-water-tower-for-peace-in-darfur/ {3} http://www.daviddarling.info/images/desalination_reverse_osmosis.jpg {4} http://www.windows2universe.org/vocals/images/fog_collector_idrc_lg.jpg {5} http://www.nature.com/nature/journal/v414/n6859/images/414033aa.2.jpgv {6} http://www.ourfishytales.com/images/Curacao/Diving/CoralsSponges/Brain-Coral-2.jpg

138

04. Networks



Three cities


05. Design Proposals

141


Promoting Life This rendering show the kinds of landscapes that we are trying to replicate. The city is situated between the marshland pictured and a large concentration of heavy industry. We hope to re-green the desert with our hydrological network. Whatever amount of excess water we produce can be slowly seeped into the landscape thereby planting the origins for life. Once the city and surrounding areas become vegetated the entire area will cool, the micro-climactic humidity will rise, thereby producing more water, and the area will be generally more enjoyable. Public spaces, especially those located in canal undulations, will become a secondary network of circulation and socialization based around a green infrastructure. The greening of the city is not a utopian ideal but instead a micro-climactic strategy. The climate is hot and dry, and the biological diversity of this part of the world is low. The hydrological methods outlined in this book could help to increase the living quality of all forms of life in the region.

142

05. Design Proposals


5.1.

'Tent-pole' city The distribution of buildings in this city are designed to achieve a very high population density but maintain a relatively low built density. We accomplish this through what is called tentpole density. Tent-pole density increases the local density of some places to very high levels so that the rest of the city can enjoy a normal to low-normal density[1]. There are a series of packed circles that determine the centers of such areas so that none of the density centers will overlap. In the circles that are the triggers of density, the branching behavior of roads and canals is altered by the size of the circle. This city required more solar tower stills to sustain the population because the footprint of the city is smaller. In the Hyper-dense areas, the canals and roads become smaller but branch more often. The less dense areas are allowed the luxury of larger canals and straiter roads. Some of these buildings are very tall but rather than the typical single use buildings we often see at this scale, we propose that architecture mix all programs at all moments in the city. Districts are not frowned upon but homogenous programs within a non-uniform context allows for greater variety than the traditional interpretation of zoning. [1] “Steffen, Alex. “Alex Steffen: The Shareable Future of Cities | Video on TED.com.� TED: Ideas worth Spreading. 11 Aug. 2011. Web. 15 Sept. 2011. <http://www.ted.com/talks/alex_steffen. html>.

05. Design Proposals

143



Mean area deviation: .986 Built area deviation: .511 Unbuilt area deviation: 1.710 Built % deviation: 1.705 Mean Neighbors deviation: 1 Average Deviation: .9824

Jeddah, Tissue D

Tissue A

Mean area deviation: 2.812 Built area deviation: .765 Unbuilt area deviation: 1.211 Built % deviation: .919 Mean Neighbors deviation: .5 Average Deviation: 1.241

Tissue B

Bandar-e-Abbas, Tissue B

Mean area deviation: 2.038 Built area deviation: .928 Unbuilt area deviation: .104 Built % deviation: 1.884 Mean Neighbors deviation: 1 Average Deviation: 1.19

Tissue C

Baghdad, Tissue C

While it was not our goal to emulate the tissues we studied from Baghdad, Jeddah, and Bandar-e-Abbas, it was always our intention to develop a system that allowed these tissues to emerge. These numbers in this column represent the percentage of deviation from the original tissues.

05. Design Proposals

145

Tissue D



Tissue A Number of buildings = 69 Minimum Area = 169.379 m2 Maximum Area = 1746.008 m2 Average Area = 274.793 m2 Mean Area = 213.303 m2

This tissue exemplifies a transition zone from low-rise to high-rise buildings. The canals act as separators between the mixing densities and in cases like this one, the buildings transition size within the block boundaries.

Built area = 18960.726 m2 Unbuilt area = 43539.274 m2 Built % = 30.337% Canal Area = 7140.942 m2 Built % with Canal = 41.763% Minimum number of sides = 6 Maximum number of sides = 10 Average number of sides = 6.725 Mean number of sides = 6 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 3 Average # of adjoining blds = 0.71 Mean # of adjoining blds = 1 Minimum adjoining area range = 5.149 Maximum adjoining area range = 666.073 Average adjoining area range = 115.053 Mean adjoining area range = 21.859

05. Design Proposals

147


Tissue B Number of buildings = 56 Minimum Area = 183.732 m2 Maximum Area = 1907.53 m2 Average Area = 405.046 m2 Mean Area = 250.217 m2 Built area = 22682.552 m2 Unbuilt area = 39817.448 m2 Built % = 36.292% Canal Area = 4559.033 m2 Built % with Canal = 43.587% Minimum number of sides = 6 Maximum number of sides = 10 Average number of sides = 7 Mean number of sides = 6 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 3 Average # of adjoining blds = 0.821 Mean # of adjoining blds = 1 Minimum adjoining area range = 3.092 Maximum adjoining area range = 826.449 Average adjoining area range = 124.29 Mean adjoining area range = 21.716

In some of the larger building tissues like this, the Ammann tile shaped buildings form courtyard type public spaces. This type of tissue provides the city with much needed pockets for spontaneous public activity.


Tissue C Number of buildings = 53 Minimum Area = 186.638 m2 Maximum Area = 1897 m2 Average Area = 432.986 m2 Mean Area = 222.39 m2

When a large canal is present in the tissue, there can be dramatic changes in density and building size. This tissue shows a dramatic transition between the large and small, as well as the structured and aligned portions at the top of the tissue compared to the jaggedness of the right-hand side tissue.

Built area = 22948.261 m2 Unbuilt area = 39551.739 m2 Built % = 36.717% Canal Area = 23628.913 m2 Built % with Canal = 74.523% Minimum number of sides = 6 Maximum number of sides = 10 Average number of sides = 6.868 Mean number of sides = 6 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 4 Average # of adjoining blds = 1.396 Mean # of adjoining blds = 1 Minimum adjoining area range = 0 Maximum adjoining area range = 258.302 Average adjoining area range = 30.744 Mean adjoining area range = 9.777

05. Design Proposals

149


Tissue D Number of buildings = 71 Minimum Area = 144.318 m2 Maximum Area = 1213.605 m2 Average Area = 173.102 m2 Mean Area = 183.732 m2 Built area = 12290.222 m2 Unbuilt area = 50209.778 m2 Built % = 19.664% Canal Area = 9629.51 m2 Built % with Canal = 35.072% Minimum number of sides = 6 Maximum number of sides = 10 Average number of sides = 7.042 Mean number of sides = 6 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 3 Average # of adjoining blds = 0.465 Mean # of adjoining blds = 0 Minimum adjoining area range = 0 Maximum adjoining area range = 287.368 Average adjoining area range = 57.086 Mean adjoining area range = 5.705

This tissue shows how a collection of smaller buildings can form both dense and sprawling tissues depending upon the block that it lands inside.


< 1 meter from a canal < 20 meters from a canal > 20 meters from a canal This diagram shows the distance that the buildings are from a canal. One of the objectives for the city was to make sure that all of the buildings were within walking distance of a canal. This city has a maximum distance of 191.825 meters and the minimum for every city is 0 meters

05. Design Proposals

151


This diagram shows the grouping of buildings based on their three dimensional area. Each shade of green is a distinct group. The public spaces were created from these groupings and as a result lie at the center of each one. Some of the groupings are circular and they show very clearly, but other patterns emerge in order to fill some of the gaps left by nearby clusters. The infrastructural implications of these groups can be seen on the following pages.


Grouped Infrastructure In order to use the MST (page 41) method to link neighborhoods to their appropriate infrastructures, we re-used the grouping of building based on their three dimensional area. In this scenario the public spaces act as distribution centers for water and electricity. The city shown here, using the grouping method of infrastructural placement, has a total length of 170,365,59 meters spread over 7,199 curves, or 23.67 meters per building.

05. Design Proposals

153


154

05. Design Proposals


Linear Infrastructure In following with the growth model of city, that is, the city grows as the canal network does, we grouped buildings according to the piece of infrastructure they were oriented toward and applied MST’s. This method produced a high number of networks some of which are shown here. This city, using the linear model, had a total length of 209,981.46 meters, spread over 6,621 curves, or 31.71 meters per building.

05. Design Proposals

155


156

05. Design Proposals


05. Design Proposals

157


158

05. Design Proposals


5.2.

Variable height city The distribution of buildings in this city are designed with a distribution that will enable for the taller buildings to shade the shorter ones, and the wind conditions of the area to circulate air throughout the city. The density gradient in this city is inspired by the use of tent-pole density but uses lines of density rather than points. We can control this phenomena by alternating the “re-size” function in our script so that buildings will become larger and taller in a sine wave pattern. This city has a very low number of buildings due mostly to the frequency of large structures. By having such low numbers the city is smaller than it should be and while it technically works, the number of stills was a less invigorating matter, because this number was very high, especially in relation to the low rise city. There is something we found while making these cities that proves true in the evaluation data we calculated: if the gradient from dense to less dense, or tall to short, or any urban opposite is manifest in a very short distance, or a very steep gradient, the results do not perform as well as they do if the gradient is smooth. An interesting morphology to see and evaluate would be a combination of this city’s per formative strategy and the increased number of buildings in the low rise city. Something that might make this city more useful is to bring agricultural services into the less dense stripes. The built area within the low-lying stripes of buildings could become productive surfaces and act as “serve spaces” to the denser bands of the city.

05. Design Proposals

159



Mean area deviation: .176 Built area deviation: .162 Unbuilt area deviation: 1.235 Built % deviation: .703 Mean Neighbors deviation: 0 Average Deviation: .455

Bandar-e-Abbas, Tissue C

Tissue A

Tissue B

Mean area deviation: 4.702 Built area deviation: .842 Unbuilt area deviation: 1.102 Built % deviation: 1.092 Mean Neighbors deviation: 0 Average Deviation: 1.531

Bandar-e-Abbas, Tissue B

Tissue C

While it was not our goal to emulate the tissues we studied from Baghdad, Jeddah, and Bandar-e-Abbas, it was always our intention to develop a system that allowed these tissues to emerge. These numbers in this column represent the percentage of deviation from the original tissues.

05. Design Proposals

161

Tissue D



Tissue A Number of buildings = 57 Minimum Area = 29.384 m2 Maximum Area = 136.682 m2 Average Area = 39.026 m2 Mean Area = 35.772 m2

This is by far the least dense tissue that emerged. The location was very far from the attracting curves which caused all of the smallest buildings to be located in the same place.

Built area = 2224.507 m2 Unbuilt area = 60275.493 m2 Built % = 3.559% Canal Area = 7430.168 m2 Built % with Canal = 15.447% Minimum number of sides = 6 Maximum number of sides = 14 Average number of sides = 7.263 Mean number of sides = 6 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 1 Average # of adjoining blds = 0.158 Mean # of adjoining blds = 0 Minimum adjoining area range = 0 Maximum adjoining area range = 34.551 Average adjoining area range = 12.22 Mean adjoining area range = 9.754

05. Design Proposals

163


Tissue B Number of buildings = 54 Minimum Area = 95.927 m2 Maximum Area = 536.461 m2 Average Area = 182.216 m2 Mean Area = 202.489 m2 Built area = 9839.655 m2 Unbuilt area = 52660.345 m2 Built % = 15.743% Canal Area = 25916.528 m2 Built % with Canal = 57.21% Minimum number of sides = 6 Maximum number of sides = 14 Average number of sides = 7.407 Mean number of sides = 6 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 3 Average # of adjoining blds = 1.389 Mean # of adjoining blds = 1 Minimum adjoining area range = 0.516 Maximum adjoining area range = 246.222 Average adjoining area range = 104.39 Mean adjoining area range = 98.606

This is one of the public spaces of Metab complete with the central water tower. The areas with public spaces tend to be in the center of building clusters which results in a collection of denser buildings and larger canals.


Tissue C Number of buildings = 55 Minimum Area = 178.695 m2 Maximum Area = 938.587 m2 Average Area = 378.612 m2 Mean Area = 513.172 m2

This relatively dense mid-rise collection of buildings show the principle of a “downtown� where the buildings are all relatively close together but not attached.

Built area = 20823.638 m2 Unbuilt area = 41676.362 m2 Built % = 33.318% Canal Area = 6176.114 m2 Built % with Canal = 43.2% Minimum number of sides = 6 Maximum number of sides = 14 Average number of sides = 7.491 Mean number of sides = 8 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 4 Average # of adjoining blds = 0.582 Mean # of adjoining blds = 0 Minimum adjoining area range = 23.75 Maximum adjoining area range = 557.23 Average adjoining area range = 316.141 Mean adjoining area range = 348.515

05. Design Proposals

165


Tissue D Number of buildings = 68 Minimum Area = 84.05 m2 Maximum Area = 440.016 m2 Average Area = 166.847 m2 Mean Area = 191.94 m2 Built area = 11345.584 m2 Unbuilt area = 51154.416 m2 Built % = 18.153% Canal Area = 6151.753 m2 Built % with Canal = 27.996% Minimum number of sides = 6 Maximum number of sides = 14 Average number of sides = 7.353 Mean number of sides = 6 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 2 Average # of adjoining blds = 0.368 Mean # of adjoining blds = 0 Minimum adjoining area range = 0 Maximum adjoining area range = 215.595 Average adjoining area range = 61.931 Mean adjoining area range = 57.215

In the areas that have larger roads and smaller canals, the tissue density is almost certainly low like this tissue exemplifies.


< 1 meter from a canal < 20 meters from a canal > 20 meters from a canal This diagram shows the distance that the buildings are from a canal. One of the objectives for the city was to make sure that all of the buildings were within walking distance of a canal. This city has a maximum distance of 126.331 meters and the minimum for every city is 0 meters

05. Design Proposals

167


This diagram shows the grouping of buildings based on their three dimensional area. Each shade of green is a distinct group. The public spaces were created from these groupings and as a result lie at the center of each one. Some of the groupings are circular and they show very clearly, but other patterns emerge in order to fill some of the gaps left by nearby clusters. The infrastructural implications of these groups can be seen on the following pages.


Grouped Infrastructure In order to use the MST (page 41) method to link neighborhoods to their appropriate infrastructures, we re-used the grouping of building based on their three dimensional area. In this scenario the public spaces act as distribution centers for water and electricity. The city shown here, using the grouping method of infrastructural placement, has a total length of 134,831.36 meters spread over 5,471 curves, or 24.64 meters per building.

05. Design Proposals

169



Linear Infrastructure In following with the growth model of city, that is, the city grows as the canal network does, we grouped buildings according to the piece of infrastructure they were oriented toward and applied MST’s. This method produced a high number of networks some of which are shown here. This city, using the linear model, had a total length of 194915.34 meters, spread over 5,756 curves, or 33.86 meters per building the worst result of all of the experiments.

05. Design Proposals

171



05. Design Proposals

173


174

05. Design Proposals


5.3. Low - rise city

This city was a test to see how the overall performance of the city would act if we decreased the height and maximum area of the distributed buildings. What we saw was that Metab would cover a much larger area, nearly double the other cities, which thereby causes the canals to cover a larger area, meaning that the canals could sustain the population without the addition of too many solar stills. While this city looks significantly more homogeneous than the previous two, it has a very high local heterogeneity, especially because of the high number of buildings and the increased number of length and canal. The tissues within the city can range from extremely dense to much less dense and because the city is shorter, the courtyard type can be much more widespread which will increase thermal control as well as the porosity of the city. The data we collected in our evaluation section indicates that this city is fittest one. The older cities in the middle east have almost exclusively adopted this morphology, so in some ways it was not a surprise. The buildings in this city range from a height of 7 to 40 meters, so although we are calling it the “low-rise city�, it still has a large number of buildings that are nearly 10 stories.

05. Design Proposals

175


176

05. Design Proposals


Mean area deviation: .989 Built area deviation: .675 Unbuilt area deviation: 1.225 Built % deviation: 1.407 Mean Neighbors deviation: 2 Average Deviation: 1.259

Bandar-e-Abbas, Tissue D

Tissue A

Mean area deviation: 1.185 Built area deviation: .624 Unbuilt area deviation: 2.024 Built % deviation: 1.110 Mean Neighbors deviation: 1 Average Deviation: 1.321

Jeddah, Tissue C

Tissue B

Mean area deviation: .749 Built area deviation: .837 Unbuilt area deviation: 1.04 Built % deviation: .985 Mean Neighbors deviation: 1 Average Deviation: .923

Bandar-e-Abbas, Tissue C

Tissue C

While it was not our goal to emulate the tissues we studied from Baghdad, Jeddah, and Bandar-e-Abbas, it was always our intention to develop a system that allowed these tissues to emerge. These numbers in this column represent the percentage of deviation from the original tissues.

05. Design Proposals

177

Tissue D



Tissue A Number of buildings = 132 Minimum Area = 50.278 m2 Maximum Area = 254.517 m2 Average Area = 131.376 m2 Mean Area = 120.593 m2

The public spaces also incorporate canals. This particular tissue has a high surface area of water which we have noticed always leads to a dense tissue.

Built area = 17341.576 m2 Unbuilt area = 45158.424 m2 Built % = 27.747% Canal Area = 18767.074 m2 Built % with Canal = 57.774% Minimum number of sides = 6 Maximum number of sides = 14 Average number of sides = 7.47 Mean number of sides = 6 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 5 Average # of adjoining blds = 1.871 Mean # of adjoining blds = 2 Minimum adjoining area range = 0 Maximum adjoining area range = 135.181 Average adjoining area range = 29.145 Mean adjoining area range = 17.247

05. Design Proposals

179


Tissue B Number of buildings = 137 Minimum Area = 134.884 m2 Maximum Area = 311.422 m2 Average Area = 208.57 m2 Mean Area = 238.352 m2 Built area = 28574.058 m2 Unbuilt area = 33925.942 m2 Built % = 45.718% Canal Area = 22211.192 m2 Built % with Canal = 81.256% Minimum number of sides = 6 Maximum number of sides = 14 Average number of sides = 7.547 Mean number of sides = 6 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 6 Average # of adjoining blds = 2.35 Mean # of adjoining blds = 2 Minimum adjoining area range = 0 Maximum adjoining area range = 154.79 Average adjoining area range = 77.239 Mean adjoining area range = 77.47

This entire series used a slightly different formative logic than the previous two cities. The density was directly coupled with the presence of canals. This tissue has large and plentiful canals, causing a high density of many buildings.


Tissue C Number of buildings = 78 Minimum Area = 65.917 m2 Maximum Area = 304.578 m2 Average Area = 147.291 m2 Mean Area = 151.775 m2

In areas like this, where canals are spread apart, the buildings orient to the roads and are generally less dense.

Built area = 11488.682 m2 Unbuilt area = 51011.318 m2 Built % = 18.382% Canal Area = 2030.798 m2 Built % with Canal = 21.631% Minimum number of sides = 6 Maximum number of sides = 14 Average number of sides = 7.538 Mean number of sides = 6 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 3 Average # of adjoining blds = 0.731 Mean # of adjoining blds = 1 Minimum adjoining area range = 5.395 Maximum adjoining area range = 159.754 Average adjoining area range = 78.151 Mean adjoining area range = 73.829

05. Design Proposals

181


Tissue D Number of buildings = 89 Minimum Area = 96.296 m2 Maximum Area = 307.995 m2 Average Area = 171.5 m2 Mean Area = 193.065 m2 Built area = 15263.473 m2 Unbuilt area = 47236.527 m2 Built % = 24.422% Canal Area = 7757.526 m2 Built % with Canal = 36.834% Minimum number of sides = 6 Maximum number of sides = 14 Average number of sides = 7.416 Mean number of sides = 6 Minimum # of adjoining blds = 0 Maximum # of adjoining blds = 3 Average # of adjoining blds = 0.798 Mean # of adjoining blds = 1 Minimum adjoining area range = 0 Maximum adjoining area range = 141.766 Average adjoining area range = 66.27 Mean adjoining area range = 75.252

This tissue clearly shows the transition from dense to sprawling buildings based on the amount of canals that are nearby.


< 1 meter from a canal < 20 meters from a canal > 20 meters from a canal This diagram shows the distance that the buildings are from a canal. One of the objectives for the city was to make sure that all of the buildings were within walking distance of a canal. This city has a maximum distance of 106.509 meters and the minimum for every city is 0 meters

05. Design Proposals

183


This diagram shows the grouping of buildings based on their three dimensional area. Each shade of green is a distinct group. The public spaces were created from these groupings and as a result lie at the center of each one. Some of the groupings are circular and they show very clearly, but other patterns emerge in order to fill some of the gaps left by nearby clusters. The infrastructural implications of these groups can be seen on the following pages.


Grouped Infrastructure In order to use the MST (page 41) method to link neighborhoods to their appropriate infrastructures, we re-used the grouping of building based on their three dimensional area. In this scenario the public spaces act as distribution centers for water and electricity. The city shown here, using the grouping method of infrastructural placement, has a total length of 268,142.19 meters spread over 14,857 curves, or 18.04 meters per building - The lowest of all of the trials.

05. Design Proposals

185



Linear Infrastructure In following with the growth model of city, that is, the city grows as the canal network does, we grouped buildings according to the piece of infrastructure they were oriented toward and applied MST’s. This method produced a high number of networks some of which are shown here. This city, using the linear model, had a total length of 320,555.33 meters, spread over 13,801 curves, or 23.22 meters per building.

05. Design Proposals

187



05. Design Proposals

189


190

05. Design Proposals


Evaluation Criteria By reading this document, it is clear that the cities we can generate using the algorithm we developed are infinite in variety. In order to determine whether or not we are making positive changes to the urban dogma, we must evaluate the cities in reference to the stated goals of this thesis.

Tent pole city Number of buildings: 7,391 Length of water network: 150,853.117 m Evaporative area of water network: 2,094,450 m2 Sustainable population from water network: 494,213 Number of stills: 370 Average connectivity value Water: 9.206 Average connectivity value Roads: 5.260 Built percentage : 18.44% Built percentage corrected (no water in plot): 19.15 % Total covered percentage : 20.85%

Variable Height City Number of buildings: 6,349 Length of water network: 17,5591.529 m Evaporative area of water network: 2,525,789 m2 Sustainable population from water network: 575,259 Number of stills: 376 Average connectivity value Water: 6.757 Average connectivity value Roads: 5.957 Built percentage : 15.6% Built percentage corrected (no water in plot): 16.45 Total covered percentage : 20.15%

Low rise City Number of buildings: 14,880 Length of water network: 233,351.812 m Evaporative area of water network: 3,678,963 m2 Sustainable population from water network: 764,489 Number of stills: 4 Average connectivity value Water: 5.745 Average connectivity value Roads: 5.694 Built percentage : 19.37% Built percentage corrected (no water in plot): 20.97 % Total covered percentage : 24.22%

05. Design Proposals

191


Fitness The fitness of each of the cities we create will be a combination of all of the listed values opposite this page. In the following section the three cities can be viewed but the data shown here may not manifest visually. Our fitness formula is length of the water network, divided by the number of buildings, then divided by the combined connectivity of the road and water networks. The length of the water network is the most important factor. It determines the population the city can sustain, as well as a major portion of the transportation network. We divide the network by the number of buildings because that represents the number of nodes that need to be connected with services and maintain a proximity to the canals. Once we have determined that value we divide it by the total connectedness of the city, which is to say the averaged space syntax values of the road and water network. This portion of the equation is preferential to low numbers meaning that the connectedness of the roads and canals is high.

Tent pole city Fitness: 1.410

Variable Height City Fitness: 2.175

Low rise City Fitness: 1.370

The renderings in the following section were the exact cities we used to calculate this data. There was no manipulation of any kind to any of the factors measured here.

192

05. Design Proposals


Conclusions Our experience with this city generating algorithm led us to the conclusion that cities, as dynamic and difficult to understand as they are, can be controlled and designed in their entirety. In the near future, when this kind of design challenge becomes more than a thesis experiment, it is imperative that some of the logics and methods we developed and implemented be perfected and used in the real world. Working on a city as a single entity was useful, because the city works as whole. The local heterogeneity is important, and we developed plenty to tools to ensure a heterogeneous mixture, but the overall morphology of the city has the most substantial impact on the environmental performance, connectedness, and resources that a city can reasonably posses. We learned that it is possible to create a mathematical growth model

05. Design Proposals

193

that is based on the resources of a city. In order to prevent over or under-producing architecture, we see it as a necessity to embed this new model into future urban plans and cities. It would ensure that there would not be vacant housing units, offices, an in the China’s case: cities, and it would also help prevent shanty towns that grow at an alarming pace. This is not to say that we don’t believe in architectures ability to promote change, we just see the need for a new developmental paradigm that meets the needs of a city, but doesn’t over interpret them. Oerestaden in Copenhagen, Denmark is an area that acts as an architectural laboratory, and even though many unique architectural interventions have been created, the urban areas suffer. There are not enough people in Copenhagen to meet the supply, and because of its relatively disconnected status, the urban spaces seem baron. Developers continue to build new housing units, malls, hotels, and offices


though. We think that if our new strategy for development had been utilized, thinking of buildings as a part of a metabolic process, this excess could be avoided, or better yet, put somewhere that it is needed. We know that this example is not related to the water scarcity, but it can seen as an example of the mis-urbanization of cities. We believe that a model of responsible resource management, such as water and food, should be the drivers for all urban growth. So did we produce a new methodology for urban development? We do not believe that we have finalized a new methodology, but we do believe that we have taken the initial steps towards formalizing, proposing and implementing a new methodology for the urban places of the future. There are plenty of things missing, which we will elaborate in the next section, but we believe this thesis proves that a resource driven urban model can and should be realized.

194

05. Design Proposals



Future development


6.1. Reflections

In the following pages, we will describe this project through our own personal lenses. Each of us will give our opinions from this project as well as development that we wish we could complete, and future development for others. Many of the scripts and tools we made presented infinite possibilities which spurred a plethora of tangent interests, but instead of expressing those interests, we will stick to the topic of “city making�. We attempted to achieve more intelligent solutions than conventional visual design methods and these discussions will serve to elaborate on our personal opinions and methods to develop exactly that.

Reflections - jens When I started at EmTech I had a few simple ambitions and I was sure of one thing, I was sure that I would do a material systems project; another ambition would be that I wanted to learn how to code. As time progressed and we got more into the theoretical aspects of emergence, genetics, metabolism, and the metabolist movement, I started to see a great potential to fulfil many of my ambitions with this course by doing an urban project. I could develop my skills in coding and could dive in to making the step from theory to praxis, the only thing I miss by doing the urban project was to do a material system project and I have yet to regret this decision. Our main emphasis in this project was to develop a new methodology for urban design, which revolved around math,

06. Future Development

197

computation and biology. I will leave it up to you to decide how successful we have been in achieving our goal, but If I should say it myself I think we have gotten pretty close because we have presented a new model for a systematic development of a city, which is supported by our mathematical model. While this is said, I must say that there is still quite a bit in this project that could benefit from more time, the reason for this is the emphasis that we put on the research and the time we spend to understand the mathematics of city development. I would personally like to see more focus put on the architectural aspects of this project, where an obvious thing would be to incorporate environmental evaluation strategies at an earlier stage, which to us has been a sub part of our work. It would be interesting to see if terms like sinuosity, rugosity and occlusitivity has generative capacity, because through our readings[1] it has been made clear that these specific strategies are related to mean or average values, so it would be interesting to see if these terms, as a generative strategy, would yield a heterogeneous result or would it simply be a homogeneous city fabric. Would it have to be done through a genetic algorithm in order for it to be heterogeneous? So if I had the opportunity to continue or complete this project, I would start out by defining the evaluation criteria for the city, and use these in the process of developing a genetic algorithm or simply to make design decisions easier. Our agent strategy for the urban growth was mainly based on the relations of water and roads, and then the architecture had to make sure that it was not on top of


any of the networks and was not intersecting with other buildings. I would like to see a more elaborate agent model where buildings would aggregate according to urban strategies, for example generating a block, not simply by them being pushed around by the canals and roads. However, the buildings showed strong aggregation logic over time, which made them aggregate in ways that looked like blocks or districts, but this was only a series of patterns that would emerge over time and how distinct they were depended on the length of every simulation. This type of behavior is what I would like to see being generated intentionally, because it would make localized evaluation simpler. A thing we didn’t quite make, was a genetic algorithm that would generate any number of cities then evaluate them, do cross breeds and so forth. We got to the initial point of a GA, which means we can generate any number of city morphologies. The evaluation and choosing the fitter individuals for further development, is yet to be embedded within our work, this is not to say that we cannot evaluate our work. It would be a great accomplishment to see the next stage where it would be possible to cross breed cities and trans-locate genes from one city to another. So what would I like to see in future work; a bigger use of evaluation strategies as a driver in the project at hand and more emphasis on the architecture and their aggregation strategies. [1] http://www.inive.org/members_area/ medias/pdf/Inive/IBPSA/UFSC481.pdf - 1509-2011

Reflections - Andy Before I began this project, I did not feel that urban design was a particularly interesting or relevant field of architecture. I don’t mean to say that it wasn’t necessary or useful, I simply did not see the use. To me it was only fitting that great urban places and spaces develop over time. Whether it was a matter of need, or the image of the city, cities - like life - would simply find a way. When Michael Weinstock suggested that like life, a city could be grown and by manage its resources and energy supply/use, a new vision of urban planning began to form in my mind. During my time at the Architectural Association I was exposed to an “Urban Physicist” who presented various data and methods that could evaluate existing city fabrics and buildings in an attempt to increase their environmental performance and efficiency. It only seemed fitting to me that a link be drawn between the idea of growing city and the mathematical model of analysis and design. This document represents the months of research and design that attempted to create such a design; a metabolic city. After all of the work that we did and all of the evaluations and re-testing and re-coding I can easily say that urban design is both interesting and relevant. There is something mysterious about a city and its drivers and I have a feeling that no matter how much data is gathered about those driver the city will never be understood in its entirety.

In order to advance the work that

198

06. Future Development


we’ve done here it would be necessary to create clear and meaningful evaluation criteria. Most of the data that we used to generate tissue from were regional or citywide averages. And while we are certain that we can match or manipulate those averages in any way that we see fit there must be a way to determine the usefulness of said manipulations. Cities and buildings have to start performing better and using less energy. The ability quantify what “better” is should be the focus of a substantial amount of research. We were concerned with creating associative systems such that everything related to everything else in some way. While we reached that point, the aforementioned “better” is beyond our control right now. We can alter the data, which will alter the city but we cannot be sure of the ramifications. In order to be able to create constantly evolving and “better” cities, it would be necessary to create a genetic algorithm on a scale that could encompass the entire city. It would have a maddening amount of parameters but that should not prevent anyone from attempting it. If we had the time to generate a tangible set of evaluation criteria and an implantable transformation system as a genome, the algorithm we have now could easily be modified to produce a genetic algorithm for cities. We originally stated with the Amman A3 tile as a fractal division technique but later moved on to packing as a surface covering solution. The Amman tile was no longer needed as a base geometry but so much of our codes depended on the point counts and orientations of the tiles that abandoning them would set us back

06. Future Development

199

dramatically. Our studies indicated that other geometries such as the “C” and “L” shape could be more beneficial in creating courtyards and increase the porosity of a city overall. An investigation into the potential of form finding methods or simply distribution of user generated shapes could help the city perform at a higher level both environmentally and aesthetically. Also, the networks we developed, even with using genetic algorithms, should be improved. There are methods outline by Frei Otto in Occupying and Connecting that could suggest alternative methods of network generation. We began creating networks with an agent based woolly path algorithm but abandoned it because of it could not be grown. It was not until the project was nearly finished when we realized that the woolly path was a version of the “minimum detour” method that could have easily been applied to a network during or after it was grown. A series of second level manipulations should occur to fix some of the strange or malformed sections of the generated city, just like biological systems heal, a city should fix its broken areas as well.


200

06. Future Development



References


01.

Domain

[1] "Urbanization: A Majority in Cities: Population & Development : UNFPA." UNFPA - United Nations Population Fund. Web. 25 Sept. 2011. <http://www.unfpa.org/pds/urbanization.htm>. [2] http://www.wolframalpha.com [3]”Human Development Report 2006.” Human Development Reports. United Nations, 2006. Web. 7 Sept. 2011. <http://hdr.undp.org/en/media/HDR06-complete.pdf>. [4] “Water Crisis.” World Water Council. Web. 07 Sept. 2011. <http://www.worldwatercouncil.org/index. php?id=25>. [5] page 29 [6] http://www.middleeasthub.com/qatar/history-of-qatar.html - 07-09-2011 [7] http://www.wolframalpha.com/input/?i=qatar [8] http://tinyurl.com/4yqprqu [9] will be further explained in the section named ”arid climates” [10] EarthTrends. Water Resources and Freshwater Ecosystems-- Qatar. EarthTrends, 2003. PDF. [11] http://www.gaisma.com/en/location/doha-qa.html - 07-09-2011 [12] http://www.qatarcool.com/q-environment.php - 07-09-2011 [13] http://www.ameinfo.com/181812.html - 07-09-2011 [14] World Maps of Köppen-Geiger Climate Classification. Web. 07 Sept. 2011. <http://koeppen-geiger. vu-wien.ac.at/>. http://koeppen-geiger.vu-wien.ac.at/pdf/Paper_2006.pdf [15] “Scientific Facts on Desertification.” GreenFacts - Facts on Health and the Environment. Web. 07 Sept. 2011. <http://www.greenfacts.org/en/desertification/index.htm>. [16] see “Courtyards” on page 88 for details and references [17] Flake, Gary William. “L-Systems and Fractal Growth.” The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation. Cambridge, Mass. [u.a.: MIT, 2008. 77-92. Print. [18] http://dictionary.reference.com/browse/emergence - 08-09-2011 [19] Johnson, Steven. Emergence: the Connected Lives of Ants, Brains, Cities and Software. London: Penguin, 2002. Print. PP 29-33

07. References

203


[20] Goodwin, Brian C. How the Leopard Changed Its Spots: the Evolution of Complexity. New York: C. Scribner’s Sons, 1994. Print. PP 68-70 [21] Augé, Marc. Non-places. London: Verso, 2008. Print. PP 29-31 [22] Augé, Marc. Non-places. London: Verso, 2008. Print. PP 43-45 [23] De, Landa Manuel.A Thousand Years of Nonlinear History. New York: Swerve Editions, 2009. Print. [24] Weinstock, Michael. “The Metabolism of the City.” Mathematics in Space Architectural Design. Vol. 212. John Wiley & Sons, 2011. pp102-07. [25] J. H. Brown, G. B. West, eds., Scaling in Biology, Oxford U. Press, New York (2000) [26] Nelson, T. R., B. J. West, and A. L. Goldberger. “The Fractal Lung: Universal and Species-related Scaling Patterns.” Cellular and Molecular Life Sciences 46.3 (1990): p251. [27] Terzidis, Kostas. Algorithmic Architecture. Oxford: Architectural, 2006. Print. [28] Goodwin, Brian Carey. How the Leopard Changed Its Spots the Evolution of Complexity. New York: C. Scribner’s Sons, 1994. Print. PP - 112-114 [29] http://www.emergentarchitecture.com/projects.php?id=16 – 14-09-2011 [30] http://www.emergentarchitecture.com/about.php?id=1 [31] Goodwin, Brian C. How the Leopard Changed Its Spots: the Evolution of Complexity. New York: C. Scribner’s Sons, 1994. Print. PP 121-126 [32] Hensel, Michael, and Achim Menges. Versatility and Vicissitude: Performance in Morpho-ecological Design. London: Wiley, 2008. Print. PP 43 – 47. [33] Landa, Manuel De. “Deleuze, Diagrams and the Genesis of Form.” ANY 23 - Diagram Work: Data Mechanics for a Topological Age 23 (1998): 31-34. Print. [34] B.Grunbaum and G.C.Shephard: Tilings and Patterns, W.H.Freeman and Company, New York, 1987. [35] George E.Martin: Transformation geometry: an introduction to symmetry, Springer-Verlag, New York, 1982. [unreferenced] Balmond, Cecil, Jannuzzi Smith, and Christian Brensing. Informal. Munich: Prestel, 2002. Print. [36] http://en.wikipedia.org/wiki/A*_search_algorithm [37] Hart, P. E.; Nilsson, N. J.; Raphael, B. (1968). “A Formal Basis for the Heuristic Determination of Minimum Cost Paths”. IEEE Transactions on Systems Science and Cybernetics SSC4 4 (2): 100–107. doi:10.1109/TSSC.1968.300136. [38] Web. 14 Sept. 2011. <http://www.spacesyntax.com/>.

204

07. References


[39] “Minimum Spanning Tree.” Wikipedia, the Free Encyclopedia. Web. 11 Sept. 2011. <http:// en.wikipedia.org/wiki/Minimum_spanning_tree>.

Images {1} http://vangorkom.net/images/utrecht1652.jpg {2} http://upload.wikimedia.org/wikipedia/commons/9/9f/Qatar_Topography.png

{3} http://splashman.phoenix.wikispaces.net/file/view/Climate_map_swj.png/144994263/Climate_map_ swj.png {4} http://www.jacksofscience.com/wp-content/uploads/2008/05/computing_occurs.jpg {5} http://www.deep-six.com/textbook%20photos/lungs%20model.jpg {7} Beijing: http://www.chinamaps.info/images/Province/Beijing-Municipality.jpg {8} Vatican City: http://tinyurl.com/3uyvvay {9} Graph: http://universe-review.ca/I10-83-metabolic.jpg {10} http://www.truthinscience.org.uk/tis2/images/stories/darwinsfinches.jpg

{11} http://entropychaos.files.wordpress.com/2010/11/1069646562-lgl-2d-4000x4000.png Toggle Switch {unreferenced) http://www.wirecabledirect.com/contents/media/brass_toggle_switch.jpg {12} http://it.livingston.co.uk/uploads/tx_commerce/154737.jpg {13} http://dgadget-technology.info/wp-content/uploads/2011/09/Alienware-M17x-Laptop-20112.jpg

{14} http://en.wikipedia.org/wiki/A*_search_algorithm

02.

{15} http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

Research

[1]”WATERFRONT CITY, UAE, DUBAI, 2008.” OMA Projects Waterfront City. 2008. Web. 14 Sept. 2011. <http://www.oma.eu>. [2] Aureli, Pier Vittorio. The Possibility of an Absolute Architecture. Cambridge, MA: MIT, 2011. Print. PP. 14 [3] Aureli, Pier Vittorio. The Possibility of an Absolute Architecture. Cambridge, MA: MIT, 2011. Print. PP. 13-16

07. References

205


[4] Aureli, Pier Vittorio. The Possibility of an Absolute Architecture. Cambridge, MA: MIT, 2011. Print. PP. 22-24 [5] “Pseudo code” on page 212 [6] “Computation is Key” on page 3 [7] Lin, Zhongjie. “URBAN STRUCTURE FOR THE EXPANDING METROPOLIS: KENZO TANGE’S 1960 PLAN FOR TOKYO.” Journal of Architectural and Planning Research 24.2 (2007): 109-24. Print. [8] Strogatz, Steven. “Guest Column: Math and the City - NYTimes.com.” Opinion - Opinionator NYTimes.com. 19 May 2009. Web. 17 Aug. 2011. <http://opinionator.blogs.nytimes.com/2009/05/19/ math-and-the-city/>. [9] Geoffrey West: The Surprising Math of Cities and Corporations | Video on TED.com. Perf. Geoffrey West. TED: Ideas worth Spreading. 11 July 2011. Web. 17 Aug. 2011. <http://www.ted.com/talks/ geoffrey_west_the_surprising_math_of_cities_and_corporations.html>.

Images {1} http://www.eikongraphia.com/images/koolhaas/OMA_Waterfront_Dubai_2_S.jpg {2} http://www.eikongraphia.com/images/koolhaas/OMA_Waterfront_Dubai_7_S.jpg {3} http://www.eikongraphia.com/images/koolhaas/OMA_Waterfront_Dubai_6_S.jpg {4} http://rafaeldemiguel.files.wordpress.com/2010/01/captura-de-pantalla-2010-01-11-a-las-00-14-25. png {5} http://file-magazine.com/wp-content/uploads/rem_koolhaas.jpg {6} http://3.bp.blogspot.com/_I9Kvkox1J7Q/TTfxoghcHXI/AAAAAAAAACQ/Psbq8t7AtzE/s1600/ TokyoBay01.jpg

03. Elements

[1] “The World Factbook.” Www.cia.gov/library/publications/the-world-factbook. Central Intelligence Agency, Aug. 2011. Web. 21 Aug. 2011. <www.cia.gov>. [2] Abdurahiman, Shahim M. “Climatic Design In the Arab Courtyard Houses (Shahim Abdurahiman) - Academia.edu.” National Institute of Technology, Calicut - Academia.edu. Department of Architecture. Web. 14 Sept. 2011. <http://nitc.academia.edu/ShahimAbdurahiman/Papers/288413/Climatic_Design_ In_the_Arab_Courtyard_Houses> . [3] see page 54 [4] Lynch, Kevin. The Image of the City. Cambridge (Mass.): Mit, 1992. Print. PP 46-66 [5] “The World Factbook.” Www.cia.gov/library/publications/the-world-factbook. Central Intelligence Agency, Aug. 2011. Web. 21 Aug. 2011. <www.cia.gov>.

206

07. References


Images {1} http://thoker.files.wordpress.com/2010/11/muslim-comunity-celebrating-eid-al-adha-02.jpging-eid-aladha-02.jpg

04.

{2} http://www.howardmodels.com/Architectural-Renderings/Chrysler/Chrysler-Large.jpg

Networks

[1] “The World Factbook.” Www.cia.gov/library/publications/the-world-factbook. Central Intelligence Agency, Aug. 2011. Web. 21 Aug. 2011. <www.cia.gov>. [2] http://hyperphysics.phy-astr.gsu.edu/hbase/bercon.html [3] http://news.carjunky.com/alternative_fuel_vehicles/how-hybrid-cars-work-ab410.shtml - 14-09-2011 [4] page 135 [5] page 76 [6] Torres Corral, Miguel (octubre 2004): Avances Técnicos en la Desalación de Aguas <%22http://www. mma.es/secciones/biblioteca_pub>, en ambienta. Centro de Estudios Hidrográficos (CEDEX) [7] Committee on Advancing Desalination Technology, National Research Council. (2008). Desalination: A National Perspective <http://www.nap.edu/catalog.php?record_id=12184>. National Academies Press. [8] http://www.bayer.com/en/64-69-Nebelfaenger-en.pdfx 11-09-2011 [9] http://www.weatheronline.co.uk/reports/wxfacts/Katabatic-winds.htm 11-09-2011 [10] http://www.weatheronline.co.uk/reports/wxfacts/Fog-and-Mist.htm 11-09-2011 [11] page <?> [12] http://www.biology-online.org/dictionary/Polar 11-09-2011 [13] http://www.biology-online.org/dictionary/Hydrophilic 11-09-2011 [14] http://www.wordconstructions.com/articles/technical/hydrophilic.html 11-09-2011 [15] http://www.globalwarmingsolutions.co.uk/large_scale_solar_desalination_using_multi_effect_ humidification.htm 12-09-2011 [16] http://www.appropedia.org/Solar_distillation_TB 12-09-2011 [17] http://www.australasianscience.com.au/article/issue-may-2010/can-mimicking-nature-quench-ourthirst.html 11-09-2011 [18] http://leishman.conference-services.net/resources/266/2152/pdf/32APS_0033.pdf 11-09-2011

07. References

207


[19] http://www.gaisma.com/en/location/doha-qa.html 12-09-2011 [20] “AQUASTAT - FAO’s Information System on Water and Agriculture.” FAO: FAO Home. Water Report No. 34, 2009, 2009. Web. 30 Aug. 2011. <http://www.fao.org/nr/water/aquastat/countries/qatar/index. stm>. [1] “AQUASTAT - FAO’s Information System on Water and Agriculture.” FAO: FAO Home. Water Report No. 34, 2009, 2009. Web. 30 Aug. 2011. <http://www.fao.org/nr/water/aquastat/countries/qatar/ index.stm>.

Images {1} http://upload.wikimedia.org/wikipedia/commons/2/2c/Desiccation-cracks_hg.jpg {unreferenced} faucet with water: http://www.airlines.org/Environment/Additional/PublishingImages/ drinkingwater[1].jpg {2} http://blog.emap.com/footprint/2010/04/11/a-baobab-shaped-water-tower-for-peace-in-darfur/ {3} http://www.daviddarling.info/images/desalination_reverse_osmosis.jpg {4} http://www.windows2universe.org/vocals/images/fog_collector_idrc_lg.jpg {5} http://www.nature.com/nature/journal/v414/n6859/images/414033aa.2.jpgv {6} http://www.ourfishytales.com/images/Curacao/Diving/CoralsSponges/Brain-Coral-2.jpg

05.

design Proposals [1] “Alex Steffen: The Shareable Future of Cities | Video on TED.com.” TED: Ideas worth Spreading. Web. 14 Sept. 2011. <http://www.ted.com/talks/alex_steffen.html>. Special Thanks to the architects who drew the sections that made their way into Metab: http://coisasdaarquitetura.files.wordpress.com/2010/06/copia-de-auditorium_building-section3.jpg http://plusmood.com/wp-content/uploads/2009/08/Monte-Elbruz-Building-Gardu%C3%B1o-Arquitectos-plusmood-Transversal-section. jpg http://chestofbooks.com/architecture/House-Construction/images/Fif-608-Plan-and-Section-of-Building-knowing-Bruce-s-Cent.jpg http://plusmood.com/wp-content/uploads/2010/01/MilanoFiori-NORD-Park-Associati-plusMOOD-SECTION-2.JPG http://farm2.static.flickr.com/1362/1233567180_b04cb66bfa.jpg http://www.arcspace.com/architects/morphosis/cooperunion/8cooper_union.jpg http://www.whowithwhat.com/images/building_images/LSE_Section_picturecropped.jpg

208

07. References


08. Appendix

209


Appendix and scripts

210

08. Appendix


8.2. Scripts

Nearly everything we have outlined in this document came from VB scripts. The final city script was make of dozens of sub functions, combined files, and logics. The process of writing these scripts resulted in no less than 40 computer crashes and we are not particularly proud of that... None of the scripts from abandoned methods will be present.

08. Appendix

211


Pseudo code Start time simulation Start growth of water - Each canal grows according to its generation length - If canal longer then generation length then - Make branches and assign branching values to them - If the amount of gathered water is close to the minimum requirement then - Make sub canal along the current growing canal - This is limited to two sub canals per branch - Else continue to grow and avoid the boundary or “die” into fellow canals or the coastal line if within a given vicinity. Generate grid for DPH calculation - Sort the grid cells according to the desired distribution pattern. - If there is enough water in the system then - Add buildings until the population is within a range - Else add solar stills / continue canal growth - Re-size the buildings - Choose the density map and re-size according to it Start to generate the roads - Start the road growth from the initial road along the shoreline - If desired age for current road has been reach then - Chose either one or two branch points according to the current population need. - If current road is within a given vicinity to another road, then search towards it and “die” into it. Add public space(s) - If current aggregation of buildings meets a user defined total area then add a Public space at their averaged centroid, and move all the buildings outside the Public space. Reconnect the public space to the road network. - Pack buildings according to their bounding box - +/- Variable tolerance to increase decrease spread of buildings Orient buildings according to closest canal, road, or public space. - Vary orientation according to orientation strategy - If stick = true then - Start to periodically to stick to closest canal or road - Else - Continue to pack to the buildings Is it time to stop? If yes then stop else continue to do all the above.

212

08. Appendix


CODE 1

2 3 4 5 6 7 8 9 10 1 11 12 13 14 15 16 17 18 2 19 3 20 4 21 5 6 22 7 23 8 24 9 25 10 26 11 27 12 13 28 14 29 15 30 16 31 17 32 18 19 33 20 34 21 35 22 36 23 37 24 38 25 26 39 27 40 28 41 29 42 30 43 31 44 32 33 45 34 46 35 47 36 48 37 49 38 39 50 40 51 41 52 42 53 43 54 44 55 45 46 56 47 57 48 58 49 59 50 60 51 61 52 53 62

Private Sub RunScript(ByVal canal As Polyline, ByVal genL As Double, ByVal reset As Boolean, ByVal branch As Boolean, ByVal spur As Boolean, ByVal stick As Boolean, ByVal sclfac As Double, ByVal build As List(Of Polyli ne), ByVal cen As Point3d, ByVal scInt As Interval, ByVal wbounds As Curve, ByVal totalpop As Integer, ByVal startpop As Integer, ByVal growth As Double, ByVal startRL As List(Of Polyline), ByVal existRL As List(Of Pol yline), ByVal rbounds As Polyline, ByVal canCen As Polyline, ByVal aggCir As List(Of Circle), ByVal type As I nteger, ByVal areas As List(Of Double), ByVal height As List(Of Double), ByVal wOff As Double, ByVal rOff As Double, ByVal cS As Polyline, ByVal sC As Polyline, ByVal area3d As List(Of Double), ByVal aggcrv As List(Of Curve), ByVal attstrat As Boolean, ByRef waterCanals As Object, ByRef WaterOffset As Object, ByRef RoadList A s Object, ByRef RoadsOffset As Object, ByRef Buildings As Object, ByRef SolarStills As Object, ByRef GrowthCi rcle As Object, ByRef recGrid As Object, ByRef publicspaceList As Object) If count = 0 OrElse reset Then '----------------------------------'----------------------------------count = 0 can = New polyline(canal) trail = New DataTree(Of polyline) gen = New DataTree(Of int32) stopper = New DataTree(Of int32)'stopper = 0 then go; stopper = 1 then dead bldlRunScript(ByVal = New List(Of polyline) Private Sub canal As Polyline, ByVal genL As Double, ByVal reset As Boolean, ByVal branch As Boolean, outRec ByVal spur As Boolean, stick As Boolean, ByVal sclfac As Double, ByVal build As List(Of Polyli = New List(Of ByVal rectangle3d) ne), ByVal cen As= Point3d, ByVal Double) scInt As Interval, ByVal wbounds As Curve, ByVal totalpop As Integer, ByVal areaOr New List(Of startpop As Integer, ByVal growth As Double, ByVal startRL As List(Of Polyline), ByVal existRL As List(Of Pol genW = 1 yline), ByVal rbounds As Polyline, ByVal canCen As Polyline, ByVal aggCir As List(Of Circle), ByVal type As I prevflag New List(Of Boolean) nteger, ByVal areas=As List(Of Double), ByVal height As List(Of Double), ByVal wOff As Double, ByVal rOff As pstflcS= As New List(OfByVal Boolean) Double, ByVal Polyline, sC As Polyline, ByVal area3d As List(Of Double), ByVal aggcrv As List(Of Curve), ByVal attstrat As Boolean, ByRef waterCanals As Object, ByRef WaterOffset As Object, ByRef RoadList A psL = New List( Of rectangle3d) s Object,stiL ByRef As Point3d) Object, ByRef Buildings As Object, ByRef SolarStills As Object, ByRef GrowthCi = RoadsOffset New List(Of rcle As Object, recGrid As Object, ByRef publicspaceList As Object) aggpolyByRef = New List(Of polyline) If count = 0 OrElse reset Then '----------------------------------dph = New List(Of Rectangle3d) '----------------------------------dphi= 0= 0 count candFlag = New =polyline(canal) New List(Of Boolean) trail = New DataTree(Of polyline) hecsortL = New List(Of Double) gen = New DataTree(Of int32) '----------------------------------stopper = New DataTree(Of int32)'stopper = 0 then go; stopper = 1 then dead '----------------------------------bldl = New List(Of polyline) For i As int32 To build.Count - 1 outRec = New List(Of=0 rectangle3d) Dim propList(Of As AreaMassProperties = AreaMassProperties.Compute(build.item(i).tonurbscurve) areaOr = New Double) genW areaOr.Add(prop.Area) = 1 prevflag = New List(Of Boolean) pstfl.Add(True) pstfl = New List(Of Boolean) Next psL = New List( Of rectangle3d) stiL = New List(Of Point3d) aggpoly = New List(Of polyline)

totpop = totalpop * 1000

dph = New List(Of Rectangle3d) curpop = 0'startpop * 1000 dphi = 0 = 0 addpop dFlag = New List(Of Boolean) cannetLength = 0 Double) hecsortL = New List(Of addpopL = New List(Of Double) '----------------------------------roadnetlen = 0 '----------------------------------ForconRate i As int32 =0 To build.Count - 1 = 100 Dim genRprop = 0As AreaMassProperties = AreaMassProperties.Compute(build.item(i).tonurbscurve) areaOr.Add(prop.Area) seg = 25 pstfl.Add(True) n = 5 Next

bothways = False

totpop = totalpop * 1000 roadL = startRL curpop * 1000 ageL==0'startpop New List(Of int32) addpop = 0 tfL = New List(Of Boolean) cannetLength = 0 tvalT = New DataTree(Of addpopL = New List(Of Double) Double) roadnetlen = 0 conRate 100int32 = 0 To roadL.Count - 1 For i= As genR ageL.add(genR) = 0 seg =tfL.add(True) 25 n = 5 tvalT.Add(0, New GH_path(i)) bothways = False

roadnetlen += roadL.item(i).length

Next= startRL roadL ageL = New List(Of int32) tfL'----------------------------------= New List(Of Boolean) tvalT = New DataTree(Of Double) '-----------------------------------

54 55

= =0 0 To roadL.Count - 1 Fortimelaps i As int32 fact = .895 ageL.add(genR) actCir = New Circle(cen, 1) tfL.add(True) tvalT.Add(0, New GH_path(i)) For i As int32 = 0 To aggCir.Count - 1 roadnetlen += roadL.item(i).length Next

57 58 59 60 61 62

'----------------------------------'----------------------------------timelaps = 0 fact = .895 actCir = New Circle(cen, 1) For i As int32 = 0 To aggCir.Count - 1

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 1/23 56

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 1/23

08. Appendix

213


63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

prevflag.Add(False) Next '----------------------------------'----------------------------------oriT = New DataTree(Of polyline) c = 1 recL = New List(Of rectangle3d) ReDim shptA(build.count - 1) ReDim shnA(build.Count - 1) '----------------------------------'----------------------------------area3dL = area3D secFlag = New DataTree(Of Boolean) areaL = New List(Of Double) nc = 0 '----------------------------------'----------------------------------For i As int32 = 0 To aggcrv.Count - 1 Dim crv As curve = aggcrv.item(i) Dim dbl() As Double = crv.DivideByCount(200, True) Dim pol As New polyline For j As int32 = 0 To dbl.length - 1 pol.Add(crv.PointAt(dbl(j))) Next aggpoly.Add(pol) Next End If '----------------------------------'----------------------------------If timeLaps > 0 Then actCir.Radius += actCir.Radius * (fact ^ timeLaps) If timeLaps > 0 AndAlso timelaps Mod 50 = 0 Then fact /= 1.85 timeLaps = 0 End If '----------------------------------'----------------------------------Call grow_branch(branch, sc, cs, genL, wbounds, aggCir) 'Call make_points(build, areas) Call grid(rbounds, sc, cs, build, areas) Call Resize(sclfac, sc, cs, aggcir, attstrat) Dim canL As List(Of polyline) = trail.AllData : canl.Add(canCen) Call Roads(growth, startRL, existRL, canL, rBounds, aggCir) Call publicspace Call recpack(stick, build, type, existRL, wOff, rOff, canCen, rbounds) If bldL.Count > 0 Then bldl = orient(type, existRL, wOff, rOff, canCen) ' '----------------------------------'----------------------------------Dim tg As New DataTree(Of int32) For i As int32 = 0 To gen.BranchCount - 1 Dim p As GH_Path = gen.Path(i) For j As int32 = 0 To gen.Branch(i).Count - 1 If gen.Branch(i).item(j) = 8 Then tg.Add(0, p) If gen.Branch(i).item(j) = 7 Then tg.Add(1, p) If gen.Branch(i).item(j) = 6 Then tg.Add(2, p) If gen.Branch(i).item(j) = 5 Then tg.Add(3, p) If gen.Branch(i).item(j) = 4 Then tg.Add(4, p) If gen.Branch(i).item(j) = 3 Then tg.Add(5, p) If gen.Branch(i).item(j) = 2 Then tg.Add(6, p) If gen.Branch(i).item(j) = 1 Then tg.Add(7, p) If gen.Branch(i).item(j) = 0 Then tg.Add(8, p) If gen.Branch(i).item(j) = -1 Then tg.Add(8, p) Next Next Dim prev As New List(Of circle) For i As int32 = 0To aggcir.Count - 1

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 2/23

214

08. Appendix


134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204

If prevFlag.item(i) Then prev.Add(aggcir.item(i)) Next '----------------------------------'----------------------------------curpop = ((canNetLength + 3918) * 52.6 * 3 * 24 ) / 1155.6 print("canal pr person = " & canNetLength / curpop) print("current sustainable population = " & curpop) print("added population = " & addpop) print("number of builings = " & bldL.Count) print("number of stills = " & stil.Count) '----------------------------------'----------------------------------WaterCanals = trail SolarStills = stiL WaterOffset = tg Buildings = bldl RoadList = roadL RoadsOffset = ageL publicspaceList = psl GrowthCircle = actcir recGrid = outrec print("iterations count = " & count) count += 1 timeLaps += 1 '----------------------------------'----------------------------------' addpop += 3000 If curpop > totalpop * 1000 Then curpop = totalpop * 1000 End Sub Dim count As int32 = 0 Dim trail As DataTree(Of polyline) Dim gen As DataTree(Of int32) Dim stopper As DataTree(Of Int32) Dim bldl As List(Of polyline) Dim outRec As List(Of rectangle3d) Dim areaOr As List(Of Double) Dim can As Polyline Dim canNetLength As Double Dim fact As Double = 0 Dim timelaps As Int32 = 0 Dim prevflag As List(Of Boolean) Dim stiL As List(Of point3d) Dim hecsortL As List(Of Double) Dim Dim Dim Dim

roadL As List(Of polyline) ageL As List(Of int32) tfL As List(Of Boolean) tvalT As DataTree(Of Double)

Dim Dim Dim Dim Dim Dim Dim Dim

totpop As Int32 curPop As Int32 addpop As int32 addPopL As List(Of Double) nc As int32 = 0 dph As List(Of rectangle3d) dphi As int32 dflag As List(Of Boolean)

Dim Dim Dim Dim Dim

roadNetLen As Double seg As Double div As Double n As int32 bothways As Boolean

Dim Dim Dim Dim

actCir As Circle conRate As int32 genR As int32 genW As Int32

Dim recL As List(Of rectangle3d)

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 3/23

08. Appendix

215


205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273

Dim Dim Dim Dim

oriT As DataTree(Of polyline) shptA() As point3d shnA() As int32 c As int32

Dim area3dL As List(Of Double) Dim secFlag As DataTree(Of Boolean) Dim areaL As List(Of Double) Dim pstfl As List(Of Boolean) Dim psL As List( Of rectangle3d) Dim aggpoly As List(Of polyline) '----------------------------------'----------------------------------Sub grid(ByVal bounds As polyline, ByVal sc As polyline, ByVal cs As polyline, ByVal build As List(Of polyl ine), ByVal areas As list(Of Double)) Dim x As curve = bounds.ToNurbsCurve Dim crva() As curve = x.Offset(plane.WorldXY, -50, 10, curveoffsetcornerstyle.Sharp) Dim br() As Brep = Brep.CreatePlanarBreps(crva(0)) Dim min As Double = 0 Dim max As Double = 4000 If count = 0 Then Dim bbx As BoundingBox = br(0).GetBoundingBox(True) Dim l1 As curve = New line(bbx.GetCorners(0), (bbx.GetCorners(1))).tonurbscurve Dim l2 As curve = New line(bbx.GetCorners(0), (bbx.GetCorners(3))).tonurbscurve Dim div1() As Double = l1.DivideByLength(100, True) Dim div2() As Double = l2.DivideByLength(100, True) For i As int32 = 0 To div1.length - 1 Dim ln As New Line(l1.PointAt(div1(i)), New vector3d(bbx.GetCorners(3) - (bbx.GetCorners(0))), l2.Get Length) For j As int32 = 0 To div2.length - 1 Dim pl As plane = plane.WorldXY pl.Origin = (ln.PointAt(div2(j))) If pl.Origin.DistanceTo(br(0).ClosestPoint(pl.Origin)) > .1 Then Continue For dph.Add(New Rectangle3d(pl, New interval(-50, 50), New interval(-50, 50))) dflag.Add(False) Dim tS As Double = sc.ClosestPoint(pl.Origin).DistanceTo(pl.Origin) ts *= 1.5 ts += cs.ClosestPoint(pl.Origin).DistanceTo(pl.Origin) * .5 ts /= 2 hecsortL.Add(ts) If ts < min Then min = ts Next Next Dim arrR() As rectangle3d = dph.ToArray Dim arrF() As Boolean = dFlag.ToArray Dim arrS() As Double = hecsortL.ToArray array.Sort(hecsortL.ToArray, arrR) array.Sort(hecsortL.ToArray, arrF) array.Sort(arrS) hecsortL = New List(Of Double)(arrS) dFlag = New List(Of Boolean)(arrF) dph = New List(Of rectangle3d)(arrR) End If Dim int As New Interval(7, 5) min = hecsortL.item(0) max -= min If addpop < curpop Then For i As int32 = 0 To dph.Count - 1 If dflag.item(i) Then Continue For Dim val As Double = hecsortl.item(i)

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 4/23

216

08. Appendix


274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340

'If rnd > .1 Then If val <= 4000 Then val -= min val /= max val = int.ParameterAt(val) Else val = int.ParameterAt(1) End If ' Else ' val = int.ParameterAt(rnd) ' End If Dim tot As Double = 0 If dphi >= build.Count - 1 Then Exit For For r As int32 = 0 To val - 1 If dphi >= build.Count - 1 Then Exit For tot += areas.item(dphi) Dim bld As New Polyline(build.item(dphi)) Dim rec As New Rectangle3d If bld.Count = 7 Then rec = New Rectangle3d(New plane(bld(0), bld(1), bld(5)), bld(0).distanceto(bld(1)), bld(1).distan ceto(bld(2))) ElseIf bld.Count = 9 Then rec = New Rectangle3d(New plane(bld(0), bld(1), bld(7)), bld(0).distanceto(bld(1)), bld(0).distan ceto(bld(7)) + bld(6).distanceto(bld(5))) Else rec = New Rectangle3d(New plane(bld(0), bld(1), bld(9)), bld(0).distanceto(bld(1)) + bld(2).dista nceto(bld(3)), bld(0).distanceto(bld(9)) + bld(8).distanceto(bld(7))) End If Dim v As New vector3d(dph.item(i).pointat(rnd, rnd) - rec.center) bld.transform(transform.Translation(v)) rec.transform(transform.Translation(v)) bldl.Add(bld) recL.Add(rec) areaL.Add(areas.item(dphi)) addpop += area3dL.item(dphi) / 25 If addpop > curpop Then Exit For dphi += 1 Next dflag.item(i) = True If addpop > curpop Then Exit For Next Else If addPop > curpop AndAlso count > 10 Then Call weneedwater() End If curpop = ((canNetLength + 3918) * 52.6 * 6 * 24 * .67) / 1155.6 End Sub' end grid '----------------------------------'----------------------------------Sub make_points(ByVal build As List(Of Polyline), ByVal areas As list(Of Double)) ' For i As int32 = 0 To trail.BranchCount - 1 ' ' ' ' ' If addpop * .85 > curpop Then ' ' Call WeNeedWater() ' ' Exit For ' ' End If ' ' Dim lnL As New List(Of line) ' ' For j As int32 = 0 To trail.Branch(i).Count - 1 ' Dim wp As Polyline = trail.Branch(i).item(j) ' If wp.Last.DistanceTo(actCir.Center) > actCir.Radius OrElse wp.First.DistanceTo(actCir.Center) > actCir.Radius Then Continue For ' ' wp.DeleteShortSegments(.1) ' Dim sec() As line = wp.GetSegments ' For r As int32 = 0 To sec.Length - 1 ' lnL.Add(sec(r)) ' Next

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 5/23

08. Appendix

217


341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410

' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '

Next For j As int32 = 0To secFlag.Branch(i).Count - 1 If secFlag.Branch(i).item(j) Then Continue For Dim tot As Double = 0 If j >= lnL.Count Then Exit For If bldl.Count > build.Count Then Exit For If nc >= area3dL.Count Then Exit For 'build.Count - area3dL.Count For q As int32 = nc To area3dL.Count - 1 Dim pt As point3d = lnL.item(j).PointAt(rnd) Dim rec As Rectangle3d = recL.item(q) Dim bld As New polyline(build.item(q)) Dim v As New vector3d(rec.Center - pt) v.Reverse 'print(v.ToString) bld.Transform(transform.Translation(v)) rec.Transform(transform.Translation(v)) recL.item(q) = rec bldL.Add(bld) areaL.Add(areas.item(q)) addpopL.Add(area3dL.item(q)) tot += area3dL.item(q) ' nc += 1 If tot > 2500 Then Exit For Next secFlag.Branch(i).item(j) = True Next Next

End Sub '----------------------------------'----------------------------------Sub WeNeedWater() Dim tCur As int32 = 0 If stil.Count < trail.AllData.count * (4 / 5) Then For i As int32 = 0 To trail.BranchCount - 1 For j As int32 = 0 To trail.Branch(i).Count - 1 Dim tp As PolyLine = trail.Branch(i).item(j) Dim pt As point3d = tp.PointAt(rnd * tp.Count) stiL.Add(pt) canNetLength += 3229.6365 / 52.6 tcur = ((canNetLength + 3672) * 3229.6365 * 3 * 24) / 1155.6 If tcur > addpop + 20000 Then Exit For Next If tcur > addpop Then Exit For Next End If curpop = ((canNetLength + 3918) * 52.6 * 3 * 24) / 1155.6 End Sub '----------------------------------'----------------------------------Sub grow_branch(ByVal branch As Boolean, ByVal sc As polyline, ByVal cs As polyline, ByVal mul As Double, B yVal bounds As curve, ByVal aggCir As List(Of Circle)) '--------------------------calculate rate And div number---------------------------Dim curnetlen As Double = 17.09117655 * (curpop ^ .77) seg = 50 '--------------------------initial setup---------------------------If count = 0 Then Dim temp As curve = can.ToNurbsCurve Dim d() As Double = temp.DivideByLength(750, False) ' (n, False) For i As int32= 0 To d.length - 1

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 6/23

218

08. Appendix


411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479

Dim p As New GH_path(i, 8) gen.Add(8, p) Dim poly As New polyline poly.Add(temp.PointAt(d(i))) poly.Add(temp.PointAt(d(i)) - (New Vector3d(vector3d.CrossProduct(vector3d.ZAxis, temp.TangentAt(d(i) )) / vector3d.CrossProduct(vector3d.ZAxis, temp.TangentAt(d(i))).length)) * seg) trail.Add(poly, p) stopper.Add(0, p) secFlag.Add(False, p) Next Dim tempP As List(Of polyline) = trail.AllData Dim dcan(tempP.count-1) As Double For i As int32 = 0 To tempP.count - 1 Dim tP As Polyline = tempP.item(i) dcan(i) = Sc.closestpoint(tp.Last).distanceto(tp.Last) dcan(i) += cs.closestpoint(tp.Last).distanceto(tp.Last) dcan(i) /= 2 Next Dim tarr() As polyline = tempP.ToArray array.Sort(dcan, tarr) For i As int32 = 0 To trail.BranchCount - 1 For j As int32 = 0 To trail.Branch(i).Count - 1 trail.Branch(i).item(j) = tarr(i) Next Next End If '-----------------------------------------------------'--------------------------grow canal---------------------------Dim dbl As Double = 0 If seg > 1 Then Dim tempPath As New List(Of GH_Path) Dim tempWP As New List(Of Polyline) Dim tempGen As New List(Of Int32) Dim tempflag As New List(Of Boolean) For i As int32 =0 To trail.BranchCount - 1 For j As int32 =0 To trail.Branch(i).Count - 1 'If stopper.Branch(i).item(j) = 1 Then Continue For If gen.Branch(i).item(j) < 0 Then Continue For Dim Dim Dim Dim

ghI As GH_Path = trail.Path(i) p As New GH_Path(ghi(0), gen.Branch(i).item(j) - 1) wP As polyline = trail.Branch(i).item(j) agP As Point3d = wp.Last

If agp.DistanceTo(can.ClosestPoint(agp)) < .1 Then Continue For If agp.DistanceTo(actCir.Center) > actCir.Radius Then Continue For Dim v As New vector3d(wp.Last - wp.item(wp.Count - 2)) v.Unitize v *= seg Dim endpt As point3d = wp.Last Dim turn As Boolean = True For r As int32 = 0 To recL.Count - 1 If math.Abs(endpt.X - recL.item(r).center.X) < 1500 AndAlso math.Abs(endpt.Y - recL.item(r).cente r.Y) < 1500 Then turn = False Exit For End If Next If turn Then Continue For Else v.Rotate(rhinomath.ToRadians(20) * rnd - rhinomath.ToRadians(10), vector3d.ZAxis) End If

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 7/23

08. Appendix

219


480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546

agP += v Dim tf As Boolean = False Dim rCir As New circle(agp, 1) For r As int32 = 0 To aggCir.count - 1 If agp.DistanceTo(aggCir.item(r).center) < aggCir.item(r).radius Then If agp.DistanceTo(aggCir.item(r).center) < aggCir.item(r).radius AndAlso gen.Branch(i).item(j) <= 7 Then prevFlag.item(r) = True rCir = aggCir.item(r) tf = True End If Next '----------------------------------'avoid buildings here '----------------------------------'--------------------------BRANCH!!---------------------------If tf AndAlso wp.Length > ((rcir.Radius * mul) * .77 ^ gen.Branch(i).item(j)) AndAlso stopper.Branc h(i).item(j) = 0 Then 'if inside circle do this! stopper.Branch(i).item(j) = 1 '----------------------------------'branching variables Dim tV As New Vector3d(v) Dim dupwP As New Polyline '----------------------------------Dim tP As New Polyline tp.Add(wp.Last) v.Rotate(rhinoMath.ToRadians(42), vector3d.ZAxis) tp.Add(wp.Last + v) tempPath.add(p) tempWP.Add(tp) tempGen.Add(gen.Branch(i).item(j) - 1) '----------------------------------'branch end point v.Rotate(rhinoMath.ToRadians(-90), vector3d.ZAxis) dupWP = New Polyline dupwP.Add(wp.Last) dupwP.Add(wp.Last + v) tempWP.Add(dupwP) tempPath.Add(p) tempGen.Add(gen.Branch(i).item(j) - 1) '----------------------------------Continue For Else If tf = False AndAlso gen.Branch(i).item(j) <= 3 Then '--------------------------if outside concentration circles then grow towards them---------------------------actCir.ClosestParameter(agp, dbl) Dim tvC As Vector3d = actCir.TangentAt(dbl) tvc.Unitize tvc *= seg * 2 'If vector3d.VectorAngle(v, tvc) < math.PI / 2 Then tvc.Reverse agp -= v v += tvC v.Unitize v *= seg v.Rotate(rhinomath.ToRadians(20) * rnd - rhinomath.ToRadians(10), vector3d.ZAxis) agp += v Else If tf = False AndAlso gen.Branch(i).item(j) = 8 Then '--------------------------if first genration then grow towards closets concentration Circle---------------------------Dim minR As Double = Double.PositiveInfinity For r As int32 = 0 To aggCir.count - 1 If agp.DistanceTo(aggCir.item(r).center) < minR Then rCir = aggCir.item(r)

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 8/23

220

08. Appendix


547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615

minR = agp.DistanceTo(aggCir.item(r).center) End If Next agp -= v Dim tvC As New Vector3d(rCir.ClosestPoint(agp) - agP) 'v.Rotate(vector3d.VectorAngle(v,tvc)/2,vector3d.ZAxis) tvc.Unitize v += tvc * seg v.Unitize v *= seg v.Rotate(rhinomath.ToRadians(20) * rnd - rhinomath.ToRadians(10), vector3d.ZAxis) v.Unitize agp += v * seg End If '-----------------------------------if more water is needed then spawn a new canal!!----------------------------------If secFlag.Branch(i).item(j) = False AndAlso curpop < addpop + 3000 AndAlso wp.Count >= 6 Then'AndA lso gen.Branch(i).item(j) <= 6 Then secFlag.Branch(i).item(j) = True Dim crv As Curve = curve.CreateInterpolatedCurve(wp.ToArray, 1) crv.Domain = New Interval(0, 1) Dim tv As New Vector3d For r As int32 = 0 To 1'math.Round(rnd) Dim rdbl As Double = (.7 - .3) * rnd + .3 Dim pt As New point3d(crv.PointAt(rdbl)) tv = vector3d.CrossProduct(crv.TangentAt(rdbl), vector3d.ZAxis) tv.Unitize tv *= seg Dim dupwp As New Polyline() If r = 1 Then tV.Reverse dupwP.Add(pt) dupwP.Add(pt + tv) If dupWP.Length < .5 Then print("FUCK") Continue For End If tempWP.Add(dupwP) tempPath.Add(p) tempGen.Add(1) canNetLength += tv.Length Next Continue For End If '-----------------------------------dying into canal / coast----------------------------------Dim crv_can As curve = can.ToNurbsCurve dbl = 0 If gen.Branch(i).item(j) <= 7 Then Dim cv As New Vector3d If crv_can.ClosestPoint(agP, dbl, seg * 5) Then cv = New Vector3d(crv_can.PointAt(dbl) - agP) If cv.Length < seg * 1.3 - 1 Then stopper.Branch(i).item(j) = 1 agP = crv_can.PointAt(dbl) canNetLength += cv.Length wP.add(agP) End If cv /= cv.Length * (50 / (cv.Length + 50)) v += cv End If If stopper.Branch(i).item(j) = 1 Then Continue For Dim min As Double = Double.PositiveInfinity Dim pb As point3d = wp.Last For r As int32 = 0 To trail.BranchCount - 1 Dim ghR As GH_Path = trail.Path(r) For q As int32 = 0 To trail.Branch(r).Count - 1 If q = j AndAlso i = r Then Continue For

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 9/23

08. Appendix

221


616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684

Dim cl As point3d = trail.Branch(r).item(q).closestpoint(wp.Last) Dim d As Double = cl.DistanceTo(wp.Last) If d < min Then min = d pb = cl End If Next Next cv = New Vector3d(pb - agP) If cv.Length < 200 AndAlso cv.Length > 0 Then If cv.Length < seg * 1.3 - 1 Then stopper.Branch(i).item(j) = 1 canNetLength += cv.Length wP.add(pb) End If End If End If If stopper.Branch(i).item(j) = 1 Then Continue For '----------------------------------'----------------------------------If gen.branch(i).item(j) <= 3 Then agp -= v Dim tcv As vector3d = can.TangentAt(can.ClosestParameter(agp)) If vector3d.VectorAngle(v, tcv) < math.PI / 2 Then tcv.Reverse tcv += New vector3d(can.ClosestPoint(agp) - agp) tcv *= 1 / tcv.Length v += tcv * .5 v.Unitize v *= seg agp += v End If '-----------------------------------

Then

'----------------------------------'avoiding the boundary If bounds.ClosestPoint(agP, dbl, seg * 3) AndAlso count > 3 Then'OrElse gen.Branch(i).item(k) >= 4

agp -= v Dim rev As vector3d = bounds.TangentAt(dbl) If vector3d.VectorAngle(rev, v) > math.PI / 2 Then rev.Reverse v += rev * .75 rev = New vector3d(agP - bounds.PointAt(dbl)) rev.Unitize v += rev v.Rotate((rhinomath.ToRadians(70) - rhinomath.ToRadians(50) ) * rnd + rhinomath.ToRadians(50), ve ctor3d.ZAxis) agP += v End If '----------------------------------If stopper.Branch(i).item(j) = 1 Then Continue For secFlag.Add(False, ghi) canNetLength += seg wP.Add(agP) trail.Branch(i).item(j) = wP Next Next '----------------------------------'----------------------------------If tempPath.Count > 0 Then For i As int32 =0 To tempPath.Count - 1 stopper.Add(0, tempPath.item(i)) trail.Add(tempWP.item(i), tempPath.item(i)) gen.Add(tempGen.item(i), tempPath.item(i)) secFlag.Add(False, tempPath.item(i)) Next genW += 1 End If

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 10/23

222

08. Appendix


685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752

'----------------------------------'----------------------------------'clean up! remove lines < specified tolerances '----------------------------------End If 'print(trail.BranchCount) End Sub '--------------------------------'--------------------------------Sub resize(ByVal sclfac As Double, ByVal sc As polyline, ByVal cancen As Polyline, ByVal AggCir As List(Of circle), ByVal attstrat As Boolean) 'addpop = 0 outRec.Clear Dim dL As New List(Of Double) If attstrat Then For i As int32 = 0 To recL.Count - 1 Dim rec As rectangle3d = recL.item(i) Dim min As Double = Double.PositiveInfinity For j As int32 = 0 To aggpoly.Count - 1 Dim pj As New Polyline(aggpoly.item(j)) Dim d As Double = rec.Center.DistanceTo(pj.ClosestPoint(rec.Center)) If d < min Then min = d Next dL.Add(min) Next Else If attstrat = False Then For i As int32 = 0 To recL.Count - 1 Dim rec As rectangle3d = recL.item(i) Dim min As Double = Double.PositiveInfinity For j As int32 = 0 To aggcir.Count - 1 Dim cj As Circle = aggcir.item(j) Dim d As Double = cj.Center.distanceto(rec.Center) If d < min Then min = d Next dL.Add(min) Next End If

Dim bldA() As polyline = bldL.toarray array.Sort(dl.ToArray, bldA) Dim arrRec() As Rectangle3d = recL.ToArray array.Sort(dl.ToArray, arrRec) Dim arrOr() As Double = areaOr.ToArray array.Sort(dl.ToArray, arrOr) 'Dim arrPop()As Double = addpopL.ToArray Dim areaa() As Double = areaL.toarray array.Sort(areaa) array.Reverse(areaa) 'array.Reverse(arrpop) For i As int32 = 0 To bldA.Length - 1 Dim ar As Double = arrOr(i) Dim sf As Double = areaa(i) / ar areaOR.item(i) = arrOr(i) * sf Dim bld As Polyline = bldA(i) bld.Transform(transform.Scale(arrRec(i).center, math.Sqrt(sf))) Dim tr As New Rectangle3d If bld.Count = 7 Then tr = New Rectangle3d(New plane(bld(0), bld(1), bld(5)), bld(0).distanceto(bld(1)), bld(1).distanceto( bld(2))) ElseIf bld.Count = 9 Then tr = New Rectangle3d(New plane(bld(0), bld(1), bld(7)), bld(0).distanceto(bld(1)), bld(0).distanceto( bld(7)) + bld(6).distanceto(bld(5))) Else tr = New Rectangle3d(New plane(bld(0), bld(1), bld(9)), bld(0).distanceto(bld(1)) + bld(2).distanceto

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 11/23

08. Appendix

223


753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821

(bld(3)), bld(0).distanceto(bld(9)) + bld(8).distanceto(bld(7))) End If sf = math.Max(areaa(i) / 800, sclfac) tr.transform(transform.Scale(tr.Center, math.Sqrt(sf))) recL.item(i) = tr outRec.Add(tr) bldL.item(i) = bld areaL.item(i) = areaa(i) ' addpop += math.Round((arrpop(i) * sf) / 25) ' addpopL.item(i) = arrpop(i) Next End Sub '--------------------------------'--------------------------------Sub roads(ByVal growth As Double, ByVal startRL As List(Of Polyline), ByVal existRL As List(Of polyline), B yVal canL As List(Of polyline), ByVal cityLimit As polyline, ByVal aggCir As List(Of circle)) If count Mod math.Ceiling(conRate * div) = 0 Then genR += 1 Dim flipL As New LIst(Of int32) flipL.add(1) flipL.add(-1) Dim blockwidth As Int32 = 100 Dim RroadL As New List(Of polyline) Dim RageL As New List(Of int32) Dim RtfL As New List(Of Boolean) Dim avdL As New List(Of Polyline) avdL.addrange(canL) avdL.AddRange(existRL) avdl.AddRange(trail.AllData) '--------------------------remove Short roads---------------------------Dim remL As New List(Of int32) Dim c As Int32 = 0 Dim dead As int32 = 0 For i As int32 = 0 To roadL.Count - 1 If tfl.item(i) Then dead += 1 If roadL.item(i).length < blockwidth Then remL.Add(i - c) c += 1 End If End If Next For i As int32 = 0 To remL.Count - 1 Dim re As int32 = remL.item(i) roadL.removeat(re) agel.removeat(re) tfl.removeat(re) tvalT.RemovePath(re) tvalT.RenumberPaths Next RroadL.AddRange(roadL) rageL.addRange(ageL) RtfL.addrange(tfl) '-----------------------------------------------------'--------------------------calculate rate And div number---------------------------If curpop > 50000 Then Dim curnetlen As Double = 3.560661781 * (curpop ^ .77) seg = (curnetlen - roadnetlen) / conrate print("seg length before If count = n Then

is: " & seg)

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 12/23

224

08. Appendix


822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892

seg /= n Else n = math.Ceiling(seg / 10) End If Dim pcnt As Double = 0 Dim kill As int16 = 1 If seg > 10 Then Dim br As Int32 = 1 While seg / kill > 10 AndAlso (seg / kill) * (pcnt / 100) < seg div = 1 pcnt = 100 pcnt = (100 / kill) * br 'print(pcnt & "%") br *= 2 br += 1 div = (100 / kill / 100) kill += 1 End While End If If n > 2 Then bothways = True Else bothways = False End If seg /= kill Else seg = 10 bothways = True End If 'print("seg length is: " & seg) 'print("number of divisions is: " & n) 'print("div multiplier is: " & div) 'print("mod number is: " & math.Ceiling(conRate * div)) '-----------------------------------------------------If seg > 1 Then '--------------------------begin Each road---------------------------For i As int32 = 0 To roadL.Count - 1 Dim road As Polyline = roadL.item(i) Dim crv As Curve = road.ToNurbsCurve Dim len As Double = road.Length crv.Domain = New interval(0, len) c = rroadL.Count '---------------------------make branch roads---------------------------If count Mod math.Ceiling(conRate * div) = 0 Then If road.IsClosed Then Continue For If len > BlockWidth * 2 Then Dim Dim Dim Dim

pt As New point3d r As New Double ip As New GH_path(i) np As New GH_Path(c)

If i = 0 Then r = len / 2 - 200 r += actcir.Radius * rnd * flipL.item(rnd) Else

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 13/23

08. Appendix

225


893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962

r = (len - blockwidth * 2) * rnd + blockwidth End If For j As int32 = 0 To tvalt.Branch(i).Count - 1 If math.Abs(r - tvalt.Branch(i).item(j)) < BlockWidth Then GoTo nobranch End If Next pt = crv.PointAt(r) tvalT.Add(r, ip) Dim ptplL As New List(Of point3d) ptplL.add(pt) Dim Nv As vector3d = vector3d.CrossProduct(crv.TangentAt(r), vector3d.ZAxis) nV *= seg nV *= flipL.item(rnd) If genR >= 10 Then genR = 10 ptplL.add(pt + nV) c += 1 RroadL.add(New Polyline(ptplL)) RAgeL.Add(genR) RtfL.add(False) tvalT.Add(0, np) If bothways Then ptplL.item(1) = pt + -nv RroadL.add(New Polyline(ptplL)) RAgeL.Add(genR) RtfL.add(False) tvalT.Add(0, New GH_Path(c)) End If End If End If '-----------------------------------------------------nobranch: If tfL.item(i) Then Continue For '-------------------------Grow the road----------------------------Dim endpt As point3d = road.Last Dim v As New Vector3d(endpt - road(road.Count - 2)) Dim turn As Boolean = True For j As int32 = 0 To recL.Count - 1 If math.Abs(endpt.X - recL.item(j).center.X) < 100 AndAlso math.Abs(endpt.Y - recL.item(j).center.Y ) < 100 Then turn = False Exit For End If Next If turn Then Continue For Else v.Rotate(rnd * .2 - .1, vector3d.ZAxis) End If '-------------------------kill the road----------------------------If citylimit.ClosestPoint(endpt).distanceto(endpt) < seg * 1.2 Then tfl.item(i) = True Continue For End If Dim Dim Dim Dim

cp As New point3d d As Double = Double.PositiveInfinity cpage As New Int32 sortL As New List(Of Double)

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 14/23

226

08. Appendix


963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033

Dim cpNdx As New Int32 Dim cpParam As New Double For j As int32 = 0 To roadL.Count - 1 If i = j Then Continue For Dim test As polyline = roadL.item(j) Dim testcp As point3d = test.ClosestPoint(endPt) Dim testd As Double = endpt.DistanceTo(testcp) sortL.add(testd) If testD < d Then d = testd cp = testcp cpage = ageL.item(j) cpNdx = j cpParam = test.ClosestParameter(cp) End If If tfL.item(j) Then Dim testCrv As curve = test.ToNurbsCurve testCrv.Domain = New Interval(0, test.Length) Dim t As Double = testCrv.ClosestPoint(endPt, T) If T > test.Length - BlockWidth Then testcp = testCrv.PointAt(test.Length - BlockWidth) ElseIf T < BlockWidth Then testcp = testCrv.PointAt(BlockWidth) Else testcp = testCrv.PointAt(T) End If End If Next Dim roadA() As Polyline = roadL.ToArray array.Sort(sortL.ToArray, roadA) Dim dieV As New vector3d(cp - endpt) If d < blockwidth * 2 Then'AndAlso ageL.item(i) >= cpage Then Dim vang As Double = vector3d.VectorAngle(v, dieV) If vang < math.PI / 3 Then dieV.Unitize dieV *= seg / 4 v += dieV v.Unitize v *= seg ElseIf vang > math.PI / 3 AndAlso vang < 2 * math.PI / 3 Then v += dieV * -1 / ((dieV.Length + 1) * blockwidth) End If End If Dim Dim Dim Dim

cd As Double = Double.PositiveInfinity ccan As New polyline cancp As New point3d canv As New vector3d

For j As int32 = 0 To avdL.count - 1 Dim can As Polyline = avdL.item(j) If endpt.DistanceTo(can.closestPoint(endpt)) < cd Then ccan = can cancp = can.closestPoint(endpt) cd = endpt.DistanceTo(cancp) canv = New vector3d(cancp - endpt) End If Next If cd < blockwidth Then Dim bridgeORtan As Double = vector3d.VectorAngle(v, canV) If bridgeORtan < math.PI / 3 Then v += canV / canV.Length Else If bridgeORtan < math.PI / 2 - .1 Then

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 15/23

08. Appendix

227


1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103

If vector3d.VectorAngle(v, ccan.TangentAt(ccan.ClosestParameter(cancp))) < math.PI / 4 Then v += ccan.TangentAt(ccan.ClosestParameter(cancp)) v += canV * -1 / (canV.Length + 1) * 2 Else v += -ccan.TangentAt(ccan.ClosestParameter(cancp)) v += canV * -1 / (canV.Length + 1) * 2 End If End If v.Unitize v *= seg End If If d < seg * .9 AndAlso ageL.item(i) >= cpage Then If ageL.item(i) = 0 AndAlso cpage = 0 Then Else endpt = cp v = New vector3d(cp - endpt) tvalT.add(cpParam, New GH_Path(cpNdx)) rtfl.item(i) = True End If End If '-------------------------------------------------------road.Add(endpt + v) rroadL.item(i) = road '-------------------------------------------------------roadnetLen += seg Next roadL = rroadL ageL = rageL tfl = rtfl End If End Sub 'roads '---------------------------------------------------------'---------------------------------------------------------Function orient(ByVal type As int32, ByVal existRL As List(Of polyline), ByVal woff As Double, ByVal rOff A s Double, ByVal cancen As polyline)As list(Of polyline) ' '---------------------------------------------------------' '---------------------------------------------------------'creating avoid - and Offset Lists Dim avdL As New List(Of polyline) Dim offL As New List(Of Double) avdL.Add(canCen) offL.Add(35) Dim holder As New DataTree(Of polyline) gh_Lexer.PerformLexicalReplace(New GH_lexer("{A;B}"), New GH_lexer("{B}"), trail, holder) For i As int32 =0 To holder.BranchCount - 1 For j As int32 =0 To holder.Branch(i).Count - 1 avdL.Add(holder.Branch(i).item(j)) Dim tg As int32 = 0 If holder.Path(i)(0) = 8 Then tg = 0 If holder.Path(i)(0) = 7 Then tg = 1 If holder.Path(i)(0) = 6 Then tg = 2 If holder.Path(i)(0) = 5 Then tg = 3 If holder.Path(i)(0) = 4 Then tg = 4 If holder.Path(i)(0) = 3 Then tg = 5 If holder.Path(i)(0) = 2 Then tg = 6 If holder.Path(i)(0) = 1 Then tg = 7 If holder.Path(i)(0) = 0 Then tg = 8 If holder.Path(i)(0) = -1 Then tg = 8 offL.Add((wOff * .77 ^ tg) / 2) Next Next For i As int32 = 0 To roadL.Count - 1

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 16/23

228

08. Appendix


1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174

avdL.Add(roadL.item(i)) offL.Add((rOff * .77 ^ ageL.item(i)) / 2) Next For i As int32 =0 To existRL.Count - 1 avdL.Add(existRL.item(i)) offL.Add((rOff * .77 ^ 1) / 2) Next '---------------------------------------------------------'---------------------------------------------------------Dim tempL As New LIst(Of polyline) For i As int32 = 0 To bldL.count - 1 Dim bld As Polyline = bldL.item(i) Dim v As New Vector3d Dim pt As point3d = recL.item(i).center If bld.Count = 7 OrElse bld.Count = 9 Then If type = 1 Then v = bld(0) - bld(1) ElseIf type = 2 Then v = bld(2) - bld(1) ElseIf type = 3 Then v = bld(1) - bld(0) Else v = bld(1) - bld(2) End If Else If type = 2 OrElse type = 3 Then v = bld(0) - bld(1) Else v = bld(9) - bld(0) End If End If Dim tan As New Vector3d Dim vtan As New vector3d Dim cp As New point3d Dim n As int32 = 0 Dim min As Double = Double.PositiveInfinity For j As int32 = 0 To avdL.count - 1 Dim pl As Polyline = avdL.item(j) Dim tempcp As point3d = pl.ClosestPoint(pt) Dim d As Double = pt.DistanceTo(tempcp) If d < min Then min = d Dim vflip As New vector3d(tempcp - pt) vtan = pl.TangentAt(pl.ClosestParameter(pt)) If vector3d.VectorAngle(vector3d.CrossProduct(vtan, vector3d.ZAxis), vflip) < .1 Then tan = -vtan Else tan = vtan vtan *= -1 End If n = j cp = tempcp shptA(i) = cp shnA(i) = n End If Next If type = 3 Then tan = vector3d.YAxis bld.Transform(transform.Rotation(v, tan, pt)) Dim rec As Rectangle3d = recL.item(i) rec.Transform(transform.Rotation(v, tan, pt)) recL.item(i) = rec oriT.Add(bld, New GH_Path(n)) tempL.add(bld) Next orient = tempL End Function

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 17/23

08. Appendix

229


1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241

'---------------------------------------------------------'---------------------------------------------------------Sub recPack(ByVal stick As Boolean, ByVal build As List(Of polyline), ByVal type As int32, ByVal existRL As List(Of polyline), ByVal woff As Double, ByVal rOff As Double, ByVal canCen As polyline, ByVal bnd As polyli ne) '---------------------------------------------------------'---------------------------------------------------------'creating avoid - and Offset Lists Dim avdL As New List(Of polyline) Dim offL As New List(Of Double) avdL.Add(canCen) offL.Add(35) Dim holder As New DataTree(Of polyline) gh_Lexer.PerformLexicalReplace(New GH_lexer("{A;B}"), New GH_lexer("{B}"), trail, holder) For i As int32 =0 To holder.BranchCount - 1 For j As int32 =0 To holder.Branch(i).Count - 1 avdL.Add(holder.Branch(i).item(j)) Dim tg As int32 = 0 If holder.Path(i)(0) = 8 Then tg = 0 If holder.Path(i)(0) = 7 Then tg = 1 If holder.Path(i)(0) = 6 Then tg = 2 If holder.Path(i)(0) = 5 Then tg = 3 If holder.Path(i)(0) = 4 Then tg = 4 If holder.Path(i)(0) = 3 Then tg = 5 If holder.Path(i)(0) = 2 Then tg = 6 If holder.Path(i)(0) = 1 Then tg = 7 If holder.Path(i)(0) = 0 Then tg = 8 If holder.Path(i)(0) = -1 Then tg = 8 offL.Add((wOff * .77 ^ tg) / 2) Next Next For i As int32 = 0 To roadL.Count - 1 avdL.Add(roadL.item(i)) offL.Add((rOff * .77 ^ ageL.item(i)) / 2) Next For i As int32 =0 To existRL.Count - 1 avdL.Add(existRL.item(i)) offL.Add((rOff * .77 ^ 1) / 2) Next '---------------------------------------------------------'---------------------------------------------------------For i As int32 = 0 To bldL.count - 1 Dim bld1 As polyline = bldL.item(i) Dim rec1 As Rectangle3d = recL.item(i) Dim wid1 As Double = rec1.Width Dim hig1 As Double = rec1.Height For j As int32 = i + 1 To bldL.count - 1 Dim bld2 As polyline = bldL.item(j) Dim rec2 As Rectangle3d = recL.item(j) Dim wid2 As New Double Dim hig2 As New Double If vector3d.VectorAngle(rec1.Plane.XAxis, rec2.Plane.XAxis) < math.PI / 4 OrElse vector3d.VectorAngle (rec1.Plane.XAxis, rec2.Plane.XAxis) > 3 * math.PI / 4 AndAlso vector3d.VectorAngle(rec1.Plane.XAxis, rec2.Pl ane.XAxis) < 5 * math.PI / 4 Then wid2 = rec2.Width hig2 = rec2.Height Else wid2 = rec2.Height hig2 = rec2.Width End If Dim vrec As New rectangle3d(rec1.Plane, rec1.Center, rec2.Center) Dim deltaX As Double = math.Abs(wid1) / 2 + math.Abs(wid2) / 2

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 18/23

230

08. Appendix


1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311

Dim deltaY As Double = math.Abs(hig1) / 2 + math.Abs(hig2) / 2 If math.Abs(vrec.Width) < deltaX AndAlso math.Abs(vrec.Height) < deltaY Then Dim xV As New xv.Unitize xv *= (deltaX Dim yV As New yv.Unitize yv *= (deltaY

vector3d(vrec.Plane.XAxis) - math.Abs(vrec.Width)) vector3d(vrec.Plane.YAxis) - math.Abs(vrec.Height))

If rec1.Center = vrec.Corner(1) OrElse rec1.Center = vrec.Corner(2) Then xv.Reverse If rec1.Center = vrec.Corner(2) OrElse rec1.Center = vrec.Corner(3) Then yv.Reverse If xv.Length < yv.Length Then rec1.Transform(transform.Translation(-xv / 2)) rec2.Transform(transform.Translation(xv / 2)) bld1.Transform(transform.Translation(-xv / 2)) bld2.Transform(transform.Translation(xv / 2)) Else rec1.Transform(transform.Translation(-yv / 2)) rec2.Transform(transform.Translation(yv / 2)) bld1.Transform(transform.Translation(-yv / 2)) bld2.Transform(transform.Translation(yv / 2)) End If End If recL.item(i) recL.item(j) bldL.item(i) bldL.item(j)

= = = =

rec1 rec2 bld1 bld2

Next '--------------------------Avoid the boundary & public spaces--------------------------------

Then

Dim bndcp As point3d = bnd.ClosestPoint(rec1.center) Dim bndvrec As New rectangle3d(rec1.Plane, rec1.Center, bndcp) Dim bndvcomp As New Vector3d(bndcp - rec1.Center) Dim bndd As New Double If vector3d.VectorAngle(bndvcomp, rec1.Plane.XAxis) < vector3d.VectorAngle(bndvcomp, rec1.Plane.YAxis) If type = 1 OrElse type = 2 Then bndd = math.Abs(rec1.Height / 2) Else bndd = math.Abs(rec1.Width / 2) End If Else If type = 1 OrElse type = 2 Then bndd = math.Abs(rec1.Width / 2) Else bndd = math.Abs(rec1.Height / 2) End If End If If bndvcomp.Length < (bndd + 20) Then Dim bndfixd As Double = (bndd + 20) - bndvcomp.Length bndvcomp.Unitize bndvcomp.Reverse bndvcomp *= bndfixd rec1.Transform(transform.Translation(bndvcomp)) bld1.Transform(transform.Translation(bndvcomp)) recL.item(i) = rec1 bldL.item(i) = bld1 End If For j Dim Dim Dim

As int32 = 0 To psL.Count - 1 ps As Rectangle3d = psL.item(j) pscp As point3d = ps.ClosestPoint(rec1.center) psvrec As New rectangle3d(rec1.Plane, rec1.Center, pscp)

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 19/23

08. Appendix

231


1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380

Then

Dim psvcomp As New Vector3d(pscp - rec1.Center) Dim psd As New Double If vector3d.VectorAngle(psvcomp, rec1.Plane.XAxis) < vector3d.VectorAngle(psvcomp, rec1.Plane.YAxis) If type psd = Else psd = End If Else If type psd = Else psd = End If End If

= 1 OrElse type = 2 Then math.Abs(rec1.Height / 2) math.Abs(rec1.Width / 2) = 1 OrElse type = 2 Then math.Abs(rec1.Width / 2) math.Abs(rec1.Height / 2)

If psvcomp.Length < psd Then Dim psfixd As Double = psd - psvcomp.Length psvcomp.Unitize psvcomp.Reverse psvcomp *= psfixd rec1.Transform(transform.Translation(psvcomp)) bld1.Transform(transform.Translation(psvcomp)) recL.item(i) = rec1 bldL.item(i) = bld1 End If Next '---------------------------------------------------------

en

'--------------------------Avoid the avdL (roads and canals)-------------------------------If stick Then For j As int32 = 0 To avdL.count - 1 Dim avd As polyline = avdL.item(j) Dim cp As point3d = avd.ClosestPoint(rec1.center) Dim vrec As New rectangle3d(rec1.Plane, rec1.Center, cp) Dim vcomp As New Vector3d(cp - rec1.Center) Dim d As New Double If vector3d.VectorAngle(vcomp, rec1.Plane.XAxis) < vector3d.VectorAngle(vcomp, rec1.Plane.YAxis) Th If type = 1 OrElse type = 2 Then d = math.Abs(rec1.Height / 2) Else d = math.Abs(rec1.Width / 2) End If Else If type = 1 OrElse type = 2 Then d = math.Abs(rec1.Width / 2) Else d = math.Abs(rec1.Height / 2) End If End If If vcomp.Length < (d + offL.item(j)) Then Dim fixd As Double = (d + offL.item(j)) - vcomp.Length vcomp.Unitize vcomp.Reverse vcomp *= fixd If d < 5 Then vcomp *= 5 rec1.Transform(transform.Translation(vcomp)) bld1.Transform(transform.Translation(vcomp)) recL.item(i) = rec1 bldL.item(i) = bld1 End If Next End If Dim shrec As New Rectangle3d(rec1.Plane, rec1.Center, shptA(i)) Dim sh As New vector3d(shrec.Plane.xAxis)

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 20/23

232

08. Appendix


1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451

If type = 1 Then sh = shrec.Plane.YAxis If vector3d.VectorAngle(sh, New vector3d(shptA(i) - rec1.Center)) > math.PI / 2 Then sh.Reverse sh *= .1 rec1.Transform(transform.Translation(sh)) bld1.Transform(transform.Translation(sh)) recL.item(i) = rec1 bldL.item(i) = bld1 '---------------------------------------------------------Next ' 'print(count) ' ' print(math.Ceiling(1 / c * 100)) End Sub '---------------------------------------------------------'---------------------------------------------------------Sub PublicSpace() Dim nebL As New List(Of int32) Dim psareaL As New List(Of Double) Dim Dim Dim Dim Dim

tot As Double = 0 tf As Boolean = False c As Int32 = -1 s As Int32 = 0 mecca As New Vector3d(-1, -.366, 0)

For i As int32 = 0 To bldL.count - 1 c += 1 If pstfl.item(i) = False Then s += 1 Continue For End If tot += areaL.item(i) If tot > 100000 Then tf = True Exit For End If Next If tf Then 'did we made a rectangle? Dim pscen As point3d = bldL.item(s)(0) ' For i As int32 = s + 1 To c ' pscen += bldL.item(i)(0) ' Next ' pscen /= (c - s + 1) Dim pl As New plane(plane.WorldXY) pl.Rotate(rhinomath.ToRadians(20.1), vector3d.ZAxis) Dim r As Double = (rnd + .1) Dim xdim As Double = math.Max(100, (r * 20000) / c) Dim ydim As Double = math.Max(50, ((1.2 - r) * 20000) / c) Dim rec As New rectangle3d(pl, xdim, ydim) Dim cenv As New vector3d(pscen - rec.center) pl.Translate(cenv) rec.Transform(transform.Translation(cenv)) Dim l01 As New polyline l01.add(rec.Corner(0)) l01.Add(rec.Corner(0) + -pl.XAxis * seg) Dim l02 As New polyline l02.add(rec.Corner(0)) l02.Add(rec.Corner(0) + -pl.YAxis * seg) Dim l11 As New polyline l11.add(rec.Corner(1)) l11.Add(rec.Corner(1) + pl.XAxis * seg) Dim l12 As New polyline l12.add(rec.Corner(1)) l12.Add(rec.Corner(1) + -pl.YAxis * seg)

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 21/23

08. Appendix

233


1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522

Dim l21 As New polyline l21.add(rec.Corner(2)) l21.Add(rec.Corner(2) + pl.XAxis * seg) Dim l22 As New polyline l22.add(rec.Corner(2)) l22.Add(rec.Corner(2) + pl.YAxis * seg) Dim l31 As New polyline l31.add(rec.Corner(3)) l31.Add(rec.Corner(3) + -pl.XAxis * seg) Dim l32 As New polyline l32.add(rec.Corner(3)) l32.Add(rec.Corner(3) + pl.YAxis * seg) psL.add(rec) Dim psage As int32 = 2 roadL.add(l01):roadL.add(l02):ageL.add(psage):ageL.add(psage):tfL.add(False):tfL.add(False) roadL.add(l11):roadL.add(l12):ageL.add(psage):ageL.add(psage):tfL.add(False):tfL.add(False) roadL.add(l21):roadL.add(l22):ageL.add(psage):ageL.add(psage):tfL.add(False):tfL.add(False) roadL.add(l31):roadL.add(l32):ageL.add(psage):ageL.add(psage):tfL.add(False):tfL.add(False) roadL.add(rec.ToPolyline) ageL.add(psage):tfL.add(True) For i As int32 = s To c pstfl.item(i) = False nebL.Add(i) psareaL.add(areaL.item(i)) Dim bld As polyline = bldL.item(i) Dim rec1 As rectangle3d = recL.item(i) Dim inrec As New Rectangle3d(pl, rec.Center, rec1.center) If inrec.Width < rec.Width / 2 AndAlso inrec.Height < rec.Height / 2 Then Dim v As New vector3d(rec1.center - rec.center) v *= math.Sqrt(((rec.Width / 2) / inrec.Width) ^ 2 + ((rec.Height / 2) / inrec.Height) ^ 2) bld.transform(transform.Translation(v)) rec1.transform(transform.Translation(v)) bldL.item(i) = bld recL.item(i) = rec1 End If Next End If 'if we made a rectangle or not Dim yL As New List(Of Double) For i As int32 = 0 To nebL.Count - 1 yL.add(recL.item(nebL.item(i)).center.y) Next Dim nA() As int32 = nebL.ToArray array.Sort(yl.ToArray, na) Dim areaa() As Double = psareaL.toarray array.Sort(yl.ToArray, areaa) array.Reverse(areaa) For i As int32 = 0 To na.length - 1 Dim bld As Polyline = bldL.item(na(i)) Dim rec As rectangle3d = recL.item(na(i)) bld.Transform(transform.Scale(recL.item(na(i)).center, math.Sqrt(psareaL.item(i) / areaa(i)))) rec.Transform(transform.Scale(recL.item(na(i)).center, math.Sqrt(psareaL.item(i) / areaa(i)))) bldL.item(na(i)) = bld recL.item(na(i)) = rec Next End Sub 'public space

Macintosh HD:Users:iNVG:Desktop:the code!!.vb: 22/23

234

08. Appendix


Space Syntax Results low rise city

"Tent pole" city

There was an offset error in the visualization portion of this graph. The network numbers have no error.

Road Networks Canal Networks

08. Appendix

235


Variable Height city

236

08. Appendix


Grasshopper file for Metab

Grasshopper file for water towers

08. Appendix

237


238

08. Appendix


08. Appendix

239


240

08. Appendix


Turn static files into dynamic content formats.

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