Court Yadz city: A vernacular architecture is a machine learning project to virtually generate a district of the old town of Yazd. It recreates the key elements of this old town with its narrow streets, vegetalised courtyard and wind protection orientation. The project is an urban design program based on Grasshopper, Wallacei X and Self-Organized Map algorithm.


Yazd is the second oldest city in the world, after Damascus. The city is located 850 m above sea level, on relatively flat terrain, and surrounded to the north and east by the Dasht-e Kavir and Dasht-e Lut deserts. The desert climate is characterized by drastic differences in day and night temperatures. The weather in the city is relatively cold at night from September to May and very extreme hot throughout the rest of the year. Maximum temperatures of around 45 ºC and minimum temperatures of -20ºC are typical.

The city is known for its unique energy-efficient and environmentalist approach on both the urban and building scale, that maintain the cultural legacy of the region and provide various solutions to the extreme hot arid climate. Yazd and its elements are positioned based on weather conditions to provide human comfort and use natural energy sources.

Court Yadz City: A Vernacular Architecture in 1 minute


Tissue´s morphological properties

Yazd’s urban tissue provides a dense texture with long and narrow alleys preventing desert heat from entering urban spaces and preserving coolness and humidity in the summer. Street network orientation has a 45º angle (NE-SW) to protect people from sand and dust storms and to benefit from the wind breeze during the summer months. Its reduced width also helps to maintain the pedestrian zones in shadow from morning to noon due to the private buildings high walls.

Public squares within the city are protected also from the harsh climatic conditions with the building blocks around them, acting as an obstacle to desert winds, while their location ensures a convenient and comfortable public transportation that reduces Yazd’s energy consumption.

In addition to the street network three unique architectural elements define each of the single blocks inside the urban grid in order to overcome all unfavorable climate conditions without using extra energy. Construction of wind towers or “Badgirs” is used to create natural ventilation inside the buildings, while parts of the houses used during the summer are covered with dome-shaped roofs to lift the hot air away from the ground through ventilation shafts built at the peak of them.

At last, an interior central courtyard is used as a semi-private space within the building, containing vegetation and water elements that help to refresh the whole environment inside the house and project some shadow during the summer.


In order to define the computational design process, we have divided the script in two parts. The first one is the definition of the street network until the parcel unit, trying to respect as much as possible the current dwelling density of the area. The second one is in charge of the definition of the building, the typology of which is based mainly on the courtyard.

The phenotype is composed of four different pieces: the street network defined by the main public spaces, the wind-towers and the courtyard of each building and the building itself.

Understanding the body-parts of the phenotype we define different objectives with the aim of improving the model in different ways.

    1. Minimize the paths between public and private space: With this objective we are able to locate most of the small dwellings around the public spaces. In this way we are able to locate the smaller houses around the public space, while the larger ones are relegated to the perimeter space functioning as a barrier against wind and sandstorms.
    2. Minimize the wind exposure in the public space: Protect the public spaces from the sandstorms of the desert.
    3. Maximize the courtyard area: In this culture most of the life occurred inside of the houses and provide them with a big interior patio allowing them to have a better family life.
    4. Minimize the sun exposure in the streets and the public spaces: Protection against the sun in a desert area is always necessary.

The definition developed with grasshopper is explained in more detail below.

Definition of the genes in relation to the body parts

The location of the public spaces is the first piece of the canvas. From these squares the main edges start to grow until the perimeter, dividing the space in the very first big pieces. Afterwards, in another step, we subdivide them again until we reach the same density of units as the current Yazd urban tissue. The first gene is responsible for defining this second subdivision. After, we measure the addition of the distance and set it as the first goal.

The next step is to measure the wind exposure on the public spaces based on the main wind directions and rotate the proposed urban tissue orientation to achieve the second objective: minimize the public squares wind exposure.

Understanding the main wind directions in place, defined in the environmental setup with the sun radiance, we locate the different wind towers in every plot to maximize the wind exposition and improve their efficiency capturing wind. To do that we define the second gene pool in charge of the height of these towers.

In  the next step we generate the private central courtyard per parcel from the interio corner of the towed and protected from the sun exposure by it. The third gene pool vary the courtyards size to maximize the private open space per household.

Once the setup of the tower and the courtyard is properly done, the building is defined by three pieces which close the area. The independent extrusion of these three pieces allow to maximize the shadow projection in the center area and the surrounding. The height is controlled by the fourth gene pool.

The final step is to set up the measurement of the sun radiance within the public space and minimize it as the latest objective. Below you can see the evolutionary matrix:

Analysis Process

From the start of the fitness objectives definition, the model was supposed to have a big conflict between two of them: The maximization of the courtyard in the households and the minimization of solar exposure on unbuilt spaces. Once the code was optimized for all the objectives by a process of a feedback loop of running Wallacei and making changes in the code, an interesting output was achieved where the minimization wind exposure objective tended to be optimized (2nd objective). But, the rest of objectives were failing to converge and even to achieve worse outputs (in the case of the 4th objective: the minimization of solar exposure).

After the revaluation of the code itself, two major changes were applied to the grasshopper code: Changing the maximum heights of the gene pools that controlled the buildings to higher ones and making the model rotate in order to achieve a better optimization regarding the different wind exposure. Both changes were tested separately to evaluate the positive impact that these modifications could lead to. The better performance in the model due to changes was apparent as the wind exposure objective and the minimization of sun radiance were highly improved.

Although the results were leading to promising results, another kind of approach was tested: The disappearance of the conflict between solar exposure and courtyard maximization. This could be achieved by changing the second objective into a non- conflictive one: the maximization of the building area. In this scenario, the results obtained from Wallacei proved to achieve high standards of optimization of the model in 3 of the objectives (excluding the first objective: minimizing the distances between households and public spaces).

Nevertheless, the previous objective (maximization of courtyard area) was recovered due to the fact that it was more interesting to analyze and try to give a response to more conflictive scenarios. Also because the goal of the urban exercise was based in the logics of Yadz, as before has been mentioned, due to the fact that Yazd is an inner city where its citizens depend and interact more in the private non built space (the courtyards). By running Wallacei component again through the two major changes mentioned before all together, the model showed a much better performance in 3 of the 4 objectives (with high improvements in the wind exposure minimization) while the solar radiation kept the same dynamics as in the attempt mentioned before the changes. In the Paralell Coordinate Plot of the final model, the conflict always mentioned between the last two objectives is still staying. Despite this factor, we can conclude that the changes improved in a significant way the proposed code and its optimization model.

Urban Morphology

As a conclusive image of the realized work, a 4×4 grid was created in order to explore the outputs for the performance for each objective (in the Y axis) and ordered from the best to the worst. It is interesting to observe how the objectives optimization responded  to the aim that was to support.

  1. In the first objective, the best option shows a morphology where big households remain mostly in the perimeter while in the central areas have smaller households, which was one of the goals to protect the area from the wind
  2. In the second objective, the households are considerably bigger to create continuous barriers
  3. In the third and fourth objective the model rotates in order to have a better sun performance. For both of them, the urban morphology selected is the same.

Som Analysis


The goal of this section is to analyze the results produced by Wallacei’s genetic algorithm.

Wallacei tried a lot of values of genes in order to maximize the objectives. The analysis of these genes is useful for the design process. It could help to identify : genes correlations, design problems and useless genes.

But the amount of data is too big to be analyzed by a human; for example in our project we had XXX genes for each of the 2000?? Individuals. To help us in this process we used an algorithm to clustered genes and represent this cluster of genes.


Clustering is an unsupervised machine learning category of algorithms. This is the problem of partitioning a set of observations into clusters such that observations assigned in the same cluster

are similar (or close) and the inter-cluster observations are dissimilar (or distant).

The other objective of clustering is to quantify the data by replacing a group of observations (cluster) with one representative observation (prototype).

Self-Organizing Map (SOM)

The Self-Organizing Map (SOM) algorithm, proposed by Kohonen, is a type of artificial neural network for unsupervised learning. SOM has the ability of creating spatially organized internal representations of input objects and their abstractions.

SOM produces a low-dimensional (1D or 2D) discretized representation (called a map or network) from the high-dimensional space of the input data. SOM uses a neighborhood function to preserve the topological properties of the input space, and forms a discretely topological map where similar objects are grouped close together and dissimilar ones apart. Like most artificial neural networks, SOM has a two-fold objective:

  1. Training map: build the topological map using the input data. A map consists of a number of network nodes arranged according to a structure defined a priori. The usual arrangement of the network nodes is a 1D or 2D, hexagonal or rectangular grid. Associated with each network node is a prototype of the same dimension as the input data points.
  2. Mapping (quantization): put the input data into a non-linear, discrete map. Vector quantization techniques assign a data point to a prototype such that the distance from this point to the best match prototype is the smallest. This process will respect the neighborhood function to preserve data topology. Data points which are similar to the input space will be put onto neighbor network nodes.


  • Wallacei genes: During the training of the genetic algorithm, Wallacei produces a set of genes for each individual.
  • Clustering: We used a SOM algorithm to cluster these genes. SOM produces a grid (map) of clusters and each cluster represents a group of similar set of genes.
  • Generate a phenotype per cluster: From each cluster we processed the average value of each gene in order to have one representative phenotype per cluster. And represent them as a grid with their objectives values on a diamond chart.

Analysis of results

The SOM algorithm organizes clusters in a map based on their similarities. This similarity can be observed in the generated SOM map (grid) with some similar results for adjacent clusters and a higher visual disparity between opposed clusters in the map.

Pareto individual selection

To select the final best individuals we used the Pareto optimality of our objectives. The Pareto optimality is the list of individuals that maximizes one or multiple objectives. Because Wallacei X evolutionary algorithm is based on the NSGA-2 algorithm (Deb et. al., 2001), it also uses the Pareto optimality during the individual selection phase of his evolutionary  algorithm. At the end of the training process we obtain 237 Pareto optimal individuals for our 4 objectives.

Post Validation

After all the analysis and clusterization was performed another data input was taken into consideration to choose the final model. “Maximum built-up area” data was introduced into our final results through Wallacei. Between the 9 options, the model that had more square meters in the ground floor was selected (219675 sqm).


Wallacei is a powerful tool in order to design cities by designing the environment instead of designing the output. By introducing the objectives that responded better to the issues that the city of Yadz faces, a new way of design cities was tested. By unblackening the box of the component, several factors were understood in order to optimize the code and the objectives themselves and also create a new type of clusterization responding to the genes instead of the objectives.


Court Yadz city: A vernacular architecture is a project of IAAC, Institute for Advanced Architecture of Catalonia developed at Master in City & Technology 2020/21 by Students: Adriana Aguirre Such, Alvaro Cerezo Carrizo, Iñigo Esteban Marina, Tugdual Sarazin and Faculty: Milad Showkatbakhsh