Integrated Agriculture and Greywater Reuse
K+"&'?$9/0-%0$'-&0(9%#&'$"&/*(/"9:")&'#&+,;$9)'/"#&%+'%&9(%"?$'%"& 1$*)0/%9:"&-'()#/'1"#=&:9#9%';-"&?$""('/"#=&'()&.'%"$&2'('?"2"(%& #,#%"2#@&K+",&'$"&'$$'(?")&*(&'&F&r&F&2"%$"&?$9)&.9%+9(&'&F4&r&F4& 2"%$"&6**%1$9(%@&Z$",.'%"$&1$*)0/")&;,&("9?+;*0$9(?&+*0#9(?&0(9%#&9#& )9$"/%")&9(%*&%+"#"&/-0#%"$#=&.+"$"&9%&0()"$?*"#&10$969/'%9*(&%+$*0?+&'& #"R0"(/"&*6&69:"&1**-#&69--")&.9%+&?$':"-&'()&1'1,$0#&1-'(%#@& 7'/+&1**-&9#&#"%&4@E&2"%$"#&-*."$&9(&"-":'%9*(&%+'(&%+"&1$":9*0#&*("=& 6*$29(?&'&?$':9%,H-")&R'('%&#,#%"2@&K+9#&('%0$'-&69-%$'%9*(&1$*/"##& 1$*:9)"#&'(&'))9%9*('-&.'%"$&#*0$/"&6*$&)'%"&1'-2&'()&.+"'%&1-'(%'%9*(#=& "(';-9(?&%+"&$"0#"&*6&+*0#"+*-)&"66-0"(%&.+9-"&?"("$'%9(?&"/*-*?9/'-& :'-0"@&
K+"&2*$1+*-*?,&*6&"'/+&'?$9/0-%0$'-&0(9%&9#&)9/%'%")&;,&%+"&*$9"(%'%9*(& *6&%+"&9(6-*.9(?&?$",.'%"$=&.+9/+&9(&%0$(&#%$0/%0$"#&%+"&*$?'(9#'%9*(&*6& 1-'(%'%9*(#&'()&.'%"$&6"'%0$"#@
Housing Units
Agriculture Units
Grey Water Inflow
!"#$7KR'=F'H+/*"01'0@'S,0L06+;'8#,"/9:*9,+'S:0*
Parameters & Experiment Set-up
A&20-%9H*;`"/%9:"&*1%929#'%9*(&"I1"$92"(%&.'#&/*()0/%")& 0#9(?&O'--'/"9=&.9%+&*;`"/%9:"#&)9:9)")&9(%*&%.*&/'%"?*$9"#@& K+"&69$#%&'))$"##")&%*1*-*?9/'-&1'$'2"%"$#&6*$&*1%929#9(?& %+"&6-*.&'()&)9#%$9;0%9*(&*6&.'%"$&%+$*0?+&%+"&10$969/'%9*(& 1**-#@
K+9#&.'#&'/+9":")&;,&$"?0-'%9(?&%+"&)9#%'(/"#&;"%.""(&1**-#& %*&#"/0$"&%+"&*1%92'-&9(/-9("&*6&%+"&R'('%&#,#%"2=&.+9-"& #920-%'("*0#-,&29(929#9(?&:'$9'%9*(&9('/9(?&%*&"(#0$"& ":"(&)9#%$9;0%9*(@
K+"&#"/*()&/'%"?*$,&6*/0#")&*(&"/*-*?9/'-&1"$6*$2'(/"=& ":'-0'%")&0#9(?&[+9(*&7/*-*?9/@&]"$"=&1'$'2"%"$#&9(/-0)")& #*-'$&"I1*#0$"=	%"&%*1*?$'1+,=&'()&1$*`"/%")&?$*.%+& 1'%%"$(#&*:"$&69:"&,"'$#=&%*&2'I929#"&;9*2'##&1$*)0/%9*(@& [+9(*&7/*-*?9/&.'#&'11-9")&%*&%+"�$6'/"#�$$*0()9(?&%+"& 10$969/'%9*(&1**-#=&$"()"$9(?&%+"2	%';-"&6*$&1-'(%'%9*(@&^%#& '('-,#9#&1$*)0/")&'	(?-"&:'-0"=&%+"&_-*$'&!"(#9%,&^()"I=& .+9/+&R0'(%969")&%+"&;9*2'##&1*%"(%9'-&*6&"'/+&/*(69?0$'%9*(a& 2'I929#9(?&%+9#&9()"I&.'#&#"%&'#&%+"&"I1"$92"(%8#&1$92'$,& "/*-*?9/'-&*;`"/%9:"@
Performance Objectives and Optimisation
Optimsation Results and Selection
The process yielded four principal typologies, each generated by optimisation runs corresponding to the four orientations of the incoming water flow. Among the Pareto front solutions, the outcomes with the highest Flora Density Index and the most cohesive water purification system were selected.
The allocation of wheat and palm tree plantations in each typology was guided by the Flora Density Index, with high-biomass species such as palm trees occupying the upper ranges and wheat fields assigned to the lower ranges. Papyrus plantations remained concentrated within and around the purification pools.
North - Flow Experiment
SD - Graphs
Selected Phenotype
South - Flow Experiment
SD - Graphs
Selected Phenotype
FO-1 Plant Volume
FO-2 Optimal Water Flow
FO-3 Even Water Flow FO-3
East -Flow Experiment
SD - Graphs
Selected Phenotype
West - Flow Experiment
SD - Graphs
Selected Phenotype
Palm Trees Papyrus Plantations
Flora Density Index Wheat Fields
Low Density High Density
FO-1 Plant Volume
FO-1 Plant Volume
FO-2 Optimal Water Flow
FO-2 Optimal Water Flow
FO-3 Even Water Flow
FO-3 Even Water Flow
Architectural Development
c")"#%$9'(&1'%+.',#&."$"&9(%$*)0/")&'-*(?&%+"& .'%"$&6-*.=&."':9(?&/9$/0-'%9*(&9(%*&%+"&"/*-*?9/'-& 9(6$'#%$0/%0$"@&K+9#&)"#9?(&'11$*'/+&"(';-"#& '?$9/0-%0$'-&0(9%#&%*&60(/%9*(&(*%&*(-,&'#&1$*)0/%9:"& 69"-)#&;0%&'-#*&'#&'//"##9;-"&?$""('/"#=&"(+'(/9(?& %+"&#*/9'-&'()&"(:9$*(2"(%'-&6';$9/&*6&%+"&#"%%-"2"(%@& A#&9--0#%$'%")&9(&_9?0$"#&<dE=&%+9#&'?$9/0-%0$'-&1$*%*%,1"& $"1$"#"(%#&'&-'()#/'1"&)"#9?(&#%$'%"?,&9(&.+9/+&.'%"$& 2'('?"2"(%&1$'/%9/"#&'/%9:"-,&#+'1"&%+"&%"$$'9(&'()& 9(%"?$'%"&10$969/'%9*(=&1$*)0/%9*(=&'()&10;-9/'/"& 9(%*&'&0(969")&*0%/*2"@
';;%(93S)9O)9'$')3(M%($7&V)P';;%(93S)'N*R
Settlement Organisation C#
using System; using System.Collections; using System.Collections.Generic; using Rhino; using Rhino.Geometry; using Grasshopper; using Grasshopper.Kernel; using Grasshopper.Kernel.Data; using Grasshopper.Kernel.Types; using System.Linq;
/// <summary>
/// This class will be instantiated on demand by the Script component.
/// </summary>
public class Script_Instance : GH_ScriptInstance {
#region Utility functions
/// <summary>Print a String to the [Out] Parameter of the Script component.</summary>
/// <param name=”text”>String to print.</param>
private void Print(string text) { /* Implementation hidden. */ }
/// <summary>Print a formatted String to the [Out] Parameter of the Script component.</summary>
/// <param name=”format”>String format.</param>
/// <param name=”args”>Formatting parameters.</ param>
private void Print(string format, params object[] args) { /* Implementation hidden. */ }
/// <summary>Print useful information about an object instance to the [Out] Parameter of the Script component. </ summary>
/// <param name=”obj”>Object instance to parse.</ param>
private void Reflect(object obj) { /* Implementation hidden. */ }
/// <summary>Print the signatures of all the overloads of a specific method to the [Out] Parameter of the Script component. </summary>
/// <param name=”obj”>Object instance to parse.</ param>
private void Reflect(object obj, string method_name) { /* Implementation hidden. */ } #endregion
#region Members
/// <summary>Gets the current Rhino document.</ summary>
#region Members
/// <summary>Gets the current Rhino document.</ summary>
private readonly RhinoDoc RhinoDocument;
/// <summary>Gets the Grasshopper document that owns this script.</summary>
private readonly GH_Document GrasshopperDocument;
/// <summary>Gets the Grasshopper script component that owns this script.</summary>
private readonly IGH_Component Component; /// <summary>
/// Gets the current iteration count. The first call to RunScript() is associated with Iteration==0.
/// Any subsequent call within the same solution will increment the Iteration count.
/// </summary>
private readonly int Iteration; #endregion
/// <summary>
/// This procedure contains the user code. Input parameters are provided as regular arguments, /// Output parameters as ref arguments. You don’t have to assign output parameters, /// they will have a default value.
/// </summary> private void RunScript(List<Point3d> P, List<int> S, List<Point3d> AttractorPoints, double WellNumber, double MarginTolerance, double Range1, double Range2, double Range3, double Margin1, double Margin2, double Margin3, bool Reset, ref object S_out)
{ if (P == null || S == null || P.Count != S.Count || WellNumber < 1)
{ S_out = null; return; }
if (Reset || persistentStates == null || persistentStates.Count != S.Count)
{ persistentStates = new List<int>(S); S_out = new List<int>(persistentStates); return;
}
// Start fresh List<int> states = new List<int>(persistentStates); for (int i = 0; i < states.Count; i++) states[i] = 0; bool[] assigned = new bool[states.Count]; int wellCount = 0;
// If Attractor points are provided, use the attraction logic. // Otherwise, fall back to the original farthest-point logic. if (AttractorPoints != null && AttractorPoints.Count > 0)
{
// 1. Score all potential well points based on proximity to the nearest attractor
List<Tuple<int, double>> wellCandidates = new List<Tuple<int, double>>(); for (int i = 0; i < P.Count; i++)
{ double minAttractorDist = double.MaxValue; foreach (Point3d attractor in AttractorPoints) { double d = XYDistance(P[i], attractor); if (d < minAttractorDist) minAttractorDist = d; } wellCandidates.Add(new Tuple<int, double>(i, minAttractorDist));
}
// Sort candidates by distance to an attractor (closest first) wellCandidates.Sort((a, b) => a.Item2.CompareTo(b. Item2));
// 2. Iterate through sorted candidates and try to build clusters foreach (var candidate in wellCandidates)
{ int wellIdx = candidate.Item1; if (assigned[wellIdx]) continue; // Skip if this point is already used
// Find up to 5 unassigned Cisterns for this Well List<Tuple<int, double>> cands = new List<Tuple<int, double>>(); for (int i = 0; i < states.Count; i++)
{ if (assigned[i] || i == wellIdx) continue; double xyDist = XYDistance(P[i], P[wellIdx]); double dz = Math.Abs(P[i].Z - (P[wellIdx].Z + Margin3)); if (xyDist <= Range3) cands.Add(new Tuple<int, double>(i, dz)); } cands.Sort((a, b) => a.Item2.CompareTo(b.Item2)); List<int> cisterns = new List<int>(); for (int i = 0; i < 5 && i < cands.Count; i++) { cisterns.Add(cands[i].Item1); } if (cisterns.Count < 5) continue; // skip this well, cannot form a valid cluster
// For each Cistern, assign 6 unassigned Housing and 2 unassigned Agri
List<int> hTotal = new List<int>(); List<int> aTotal = new List<int>(); bool validCluster = true; foreach (int cisIdx in cisterns)
{ // Housing List<Tuple<int, double>> hCands = new List<Tuple<int, double>>(); for (int i = 0; i < states.Count; i++) { if (assigned[i] || i == wellIdx || cisterns.Contains(i)) continue; double xyDist = XYDistance(P[i], P[cisIdx]); double dz = Math.Abs(P[i].Z - (P[cisIdx].Z + Margin2)); if (xyDist <= Range2 && dz <= MarginTolerance) hCands.Add(new Tuple<int, double>(i, dz)); } hCands.Sort((a, b) => a.Item2.CompareTo(b.Item2)); List<int> hChosen = new List<int>(); for (int i = 0; i < 6 && i < hCands.Count; i++) hChosen.Add(hCands[i].Item1); if (hChosen.Count < 6) { validCluster = false; break; }
hTotal.AddRange(hChosen);
// Agri
List<Tuple<int, double>> aCands = new List<Tuple<int, double>>(); for (int i = 0; i < states.Count; i++)
{ if (assigned[i] || i == wellIdx || cisterns.Contains(i) || hTotal.Contains(i)) continue; // Check hTotal now double xyDist = XYDistance(P[i], P[cisIdx]); double dz = Math.Abs(P[i].Z - (P[cisIdx].Z + Margin2)); if (xyDist <= Range2 && dz <= MarginTolerance) aCands.Add(new Tuple<int, double>(i, dz)); } aCands.Sort((a, b) => a.Item2.CompareTo(b.Item2)); List<int> aChosen = new List<int>(); for (int i = 0; i < 2 && i < aCands.Count; i++) aChosen.Add(aCands[i].Item1); if (aChosen.Count < 2) { validCluster = false; break; } aTotal.AddRange(aChosen); } if (!validCluster) continue; // skip this well, couldn’t build a full cluster
// If we got here, the cluster is valid. Assign it. states[wellIdx] = 1; assigned[wellIdx] = true; foreach (int ci in cisterns) { states[ci] = 2; assigned[ci] = true; } foreach (int hi in hTotal) { states[hi] = 3; assigned[hi] = true; } foreach (int ai in aTotal) { states[ai] = 4; assigned[ai] = true; } wellCount++; if (wellCount >= WellNumber) break; // We have enough wells } }
{ // --- ORIGINAL LOGIC (Farthest Point) ---
// 1. Farthest Point Well Placement List<int> wells = new List<int>(); List<int> pool = new List<int>(); for (int i = 0; i < P.Count; i++) pool.Add(i); Random rand = new Random();
if (pool.Count > 0)
{ int first = pool[rand.Next(pool.Count)]; wells.Add(first); pool.Remove(first);
while (wells.Count < WellNumber * 2 && pool.Count > 0)
// Find more potential wells
{ double maxMinDist = -1; int bestIdx = -1; for (int i = 0; i < pool.Count; i++)
{ int idx = pool[i]; double minDist = double.MaxValue; for (int j = 0; j < wells.Count; j++)
{ double d = XYDistance(P[idx], P[wells[j]]);
if (d < minDist) minDist = d; } if (minDist > maxMinDist)
{ maxMinDist = minDist; bestIdx = idx; } } if (bestIdx != -1)
{ wells.Add(bestIdx); pool.Remove(bestIdx); } } else break; } }
// 2. Greedily Assign Clusters from the potential wells for (int wIdx = 0; wIdx < wells.Count; wIdx++)
{ int wellIdx = wells[wIdx]; // Find up to 5 unassigned Cisterns for this Well List<Tuple<int, double>> cands = new List<Tuple<int, double>>(); for (int i = 0; i < states.Count; i++)
{ if (assigned[i] || i == wellIdx) continue; double xyDist = XYDistance(P[i], P[wellIdx]); double dz = Math.Abs(P[i].Z - (P[wellIdx].Z + Margin3)); if (xyDist <= Range3) cands.Add(new Tuple<int, double>(i, dz));
} cands.Sort((a, b) => a.Item2.CompareTo(b.Item2)); List<int> cisterns = new List<int>(); for (int i = 0; i < 5 && i < cands.Count; i++) { cisterns.Add(cands[i].Item1); } } else break; } }
// 2. Greedily Assign Clusters from the potential wells for (int wIdx = 0; wIdx < wells.Count; wIdx++)
{ int wellIdx = wells[wIdx]; // Find up to 5 unassigned Cisterns for this Well List<Tuple<int, double>> cands = new List<Tuple<int, double>>(); for (int i = 0; i < states.Count; i++)
{ if (assigned[i] || i == wellIdx) continue; double xyDist = XYDistance(P[i], P[wellIdx]); double dz = Math.Abs(P[i].Z - (P[wellIdx].Z + Margin3)); if (xyDist <= Range3) cands.Add(new Tuple<int, double>(i, dz));
} cands.Sort((a, b) => a.Item2.CompareTo(b.Item2)); List<int> cisterns = new List<int>(); for (int i = 0; i < 5 && i < cands.Count; i++)
{ cisterns.Add(cands[i].Item1);
} if (cisterns.Count < 5) continue; // skip this well
// For each Cistern, assign 6 unassigned Housing and 2 unassigned Agri
List<int> hTotal = new List<int>(); List<int> aTotal = new List<int>(); bool validCluster = true; foreach (int cisIdx in cisterns)
{ // Housing List<Tuple<int, double>> hCands = new List<Tuple<int, double>>(); for (int i = 0; i < states.Count; i++) { if (assigned[i] || wells.Contains(i) || cisterns.Contains(i)) continue; double xyDist = XYDistance(P[i], P[cisIdx]); double dz = Math.Abs(P[i].Z - (P[cisIdx].Z + Margin2)); if (xyDist <= Range2 && dz <= MarginTolerance) hCands.Add(new Tuple<int, double>(i, dz));
} hCands.Sort((a, b) => a.Item2.CompareTo(b.Item2)); List<int> hChosen = new List<int>(); for (int i = 0; i < 6 && i < hCands.Count; i++) hChosen.Add(hCands[i].Item1);
if (hChosen.Count < 6) { validCluster = false; break; } hTotal.AddRange(hChosen);
// Agri
List<Tuple<int, double>> aCands = new List<Tuple<int, double>>(); for (int i = 0; i < states.Count; i++)
{ if (assigned[i] || wells.Contains(i) || cisterns.Contains(i) || hTotal.Contains(i)) continue; double xyDist = XYDistance(P[i], P[cisIdx]); double dz = Math.Abs(P[i].Z - (P[cisIdx].Z + Margin2)); if (xyDist <= Range2 && dz <= MarginTolerance) aCands.Add(new Tuple<int, double>(i, dz)); } aCands.Sort((a, b) => a.Item2.CompareTo(b.Item2));
List<int> aChosen = new List<int>(); for (int i = 0; i < 2 && i < aCands.Count; i++) aChosen.Add(aCands[i].Item1); if (aChosen.Count < 2) { validCluster = false; break; } aTotal.AddRange(aChosen); } if (!validCluster) continue; // skip this well
// Assign Well and its cluster states[wellIdx] = 1; assigned[wellIdx] = true; foreach (int ci in cisterns) { states[ci] = 2; assigned[ci] = true; } foreach (int hi in hTotal) { states[hi] = 3; assigned[hi] = true; } foreach (int ai in aTotal) { states[ai] = 4; assigned[ai] = true; } wellCount++;
if (wellCount >= WellNumber) break; } }
// --- POST-PROCESSING (Applies to both logic paths) ---
// Remove orphans (housing/agri not near any cistern)
List<int> finalCisterns = IndicesByState(states, 2); for (int i = 0; i < states.Count; i++)
{ if (states[i] == 3 || states[i] == 4) { bool nearCistern = false; for (int j = 0; j < finalCisterns.Count; j++)
{ if (XYDistance(P[i], P[finalCisterns[j]]) <= Range2)
{ nearCistern = true; break; } } if (!nearCistern) states[i] = 0; } }
// Assign State 5 (max 2 per well)
List<int> finalWells = IndicesByState(states, 1); foreach (int wellIdx in finalWells)
{ List<Tuple<int, double>> candidates = new List<Tuple<int, double>>(); for (int i = 0; i < states.Count; i++)
{ if (states[i] != 0) continue; double xyDist = XYDistance(P[i], P[wellIdx]); double zDist = Math.Abs(P[i].Z - P[wellIdx].Z); if (xyDist <= Range3 && zDist <= Margin3)
{ candidates.Add(new Tuple<int, double>(i, xyDist)); } } candidates.Sort((a, b) => a.Item2.CompareTo(b.Item2)); int assignedCount = 0; foreach (var candidate in candidates)
{ if (assignedCount >= 2) break; int candidateIdx = candidate.Item1; if (states[candidateIdx] == 0)
{ states[candidateIdx] = 5; assignedCount++;
} persistentStates = new List<int>(states); S_out = states;
// <Custom additional code>
// <Custom additional code> static List<int> persistentStates = null;
List<int> IndicesByState(List<int> states, int target)
{ List<int> idxs = new List<int>(); for (int i = 0; i < states.Count; i++) if (states[i] == target) idxs.Add(i); return idxs; } double XYDistance(Point3d a, Point3d b)
{ return Math.Sqrt((a.X - b.X) * (a.X - b.X) + (a.Y - b.Y) * (a.Y - b.Y)); } // </Custom additional code>
// </Custom additional code> }
K+"&#/$91%&6*$2'-9#"#&'&$0-"H;'#")&'--*/'%9*(&*6&1$*?$'22'%9/&$*-"#&'/$*##&'&)9#/$"%"&69"-)&*6&1*9(%#=&1$*)0/9(?&'& $"1"'%")&#"%%-"2"(%&2*)0-"&*$?'(9#")&'$*0()&+,)$'0-9/&'()&#*/9'-&9(6$'#%$0/%0$"@&7'/+&9(10%&1*9(%&9#&0-%92'%"-,& '##9?(")&'(&9(%"?"$&#%'%"&%+'%&)"(*%"#&9%#&60(/%9*(=&.9%+&#%'%"&4&$"1$"#"(%9(?&0('##9?(")&$"#9)0'-#=&#%'%"&<&/-0#%"$& /"(%"$&#%'%"=&#%'%"&D&/9#%"$(#=&#%'%"&3&+*0#9(?=&#%'%"&F&'?$9/0-%0$"=&'()&#%'%"&E&/*()"(#'%9*(&0(9%#@&A&1"$#9#%"(%&#%'%"&-9#%& 9#&0#")&%*&#%';9-9#"&$"#0-%#&'/$*##&Z$'##+*11"$&#*-0%9*(&01)'%"#a&.+"(&["#"%&9#&"(';-")=&%+"&#,#%"2&$"9(9%9'-9#"#&6$*2& %+"&9(10%&#%'%"&-9#%&'()&$"%0$(#&922")9'%"-,=&"(#0$9(?&%+'%�#"R0"(%&9%"$'%9*(#&*1"$'%"&6$*2&'&/*(#9#%"(%&;'#"-9("& $'%+"$&%+'(&'//020-'%9(?&0(/*(%$*--")&$"'##9?(2"(%@
O"--&1-'/"2"(%&9#&"I"/0%")&%+$*0?+&*("&*6&%.*&#"-"/%9*(&-*?9/#&)"1"()9(?&*(&.+"%+"$&'%%$'/%*$&1*9(%#&'$"&1$*:9)")@& O+"(&'%%$'/%*$#&"I9#%=&'--&1*9(%#&'$"&#/*$")&;,&%+"9$&29(9202&1-'('$&)9#%'(/"&%*&%+"&("'$"#%&'%%$'/%*$=&'()&/'()9)'%"#& '$"&":'-0'%")&6$*2&/-*#"#%&%*&6'$%+"#%=&1$9:9-"?9(?&."--&6*$2'%9*(&9(&%+"&:9/9(9%,&*6&%+"#"&"I%"$('-'%9'-&)$9:"$#@&O+"(& (*&'%%$'/%*$#&'$"-9")=&%+"&#/$91%&)"6'0-%#&%*&'&6'$%+"#%H1*9(%&#'21-9(?&'11$*'/+&9(&1-'(g&'6%"$&'&$'()*2&9(9%9'-& #"")=&'))9%9*('-&1*%"(%9'-&."--#&'$"&/+*#"(&%*&2'I929#"&%+"9$&29(9202&)9#%'(/"&%*&'-$"'),H#"-"/%")&."--#=&%+"$";,& )9#%$9;0%9(?&."--&/'()9)'%"#&'/$*##&%+"&69"-)&'()&$")0/9(?&-*/'-&/*21"%9%9*(&;"%.""(&/-0#%"$#@&^(&;*%+&/'#"#=&'& /'()9)'%"&."--&9#&(*%&'//"1%")&;,&1$*I929%,&'-*("a&9%&9#&*(-,&$"%'9(")&96&9%&/'(*$%&'&/*21-"%"=&9(%"$('--,&/*(#9#%"(%& /-0#%"$&0()"$&#%$9/%&/'1'/9%,&'()&"I/-0#9:9%,&/*(#%$'9(%#@ U-0#%"$&6*$2'%9*(&9#&)"69(")&'#&'&+9"$'$/+9/'-&)"1"()"(/,&#%$0/%0$"&9(&.+9/+&'&/"(%"$&20#%&69$#%&$"/$09%&"I'/%-,&69:"& /9#%"$(#&.9%+9(&'"/969")&1-'('$&$')90#=&'()&"'/+&/9#%"$(&20#%&%+"(&$"/$09%&'&69I")&R0*%'&*6&+*0#9(?&'()&'?$9/0-%0$'-& 1*9(%#&.9%+9(&'&#"/*()=&%,19/'--,'--"$&#"$:9/"&$')90#@&U9#%"$(&/'()9)'%"#&'$"&69-%"$")&;,&1-'('$&)9#%'(/"&%*&%+"& ."--&'()&$'(>")&;,&:"$%9/'-&/*21'%9;9-9%,&%+$*0?+&'(&*66#"%&/*21'$9#*(&%+'%&2"'#0$"#&)":9'%9*(&6$*2&'(&9(%"()")&{& $"-'%9*(#+91&?*:"$(")&;,&'&2'$?9(&1'$'2"%"$@&K+9#&$'(>9(?&1$9*$9%9#"#&/9#%"$(#&%+'%&;"#%&#'%9#6,&%+"&1$"#/$9;")&:"$%9/'-& #%$'%969/'%9*(&$"-'%9:"&%*&%+"&."--=&$'%+"$&%+'(&#"-"/%9(?&10$"-,&;,&1$*I929%,@&_*$&"'/+&/9#%"$(=&+*0#9(?&/'()9)'%"#&'$"& %+"(&#"-"/%")&.9%+9(&'&1-'('$&$'(?"&'()&/*(#%$'9(")&;,&'&%*-"$'(/"&*(&%+"&:"$%9/'-&$"-'%9*(#+91=&'?'9(&2"'#0$")& '?'9(#%&'(&9(%"()")&{&*66#"%a	I&+*0#9(?&1*9(%#&20#%&;"&6*0()&1"$&/9#%"$(=&*%+"$.9#"&%+"&"(%9$"&/'()9)'%"&."--&9#& $"`"/%")@&A?$9/0-%0$'-&1*9(%#&'$"&#"-"/%")&-'#%=&0#9(?&%+"&#'2"'%9'-&"(:"-*1"&'#&+*0#9(?&;0%&"I/-0)9(?&'-$"'),& /+*#"(&"-"2"(%#=&'()&"I'/%-,&%.*&20#%&;"&#"/0$")&1"$&/9#%"$(@&K+$*0?+*0%&%+9#&1$*/"##=&'##9?(2"(%&9#&?-*;'--,& "I/-0#9:"g&'(,&1*9(%&'-$"'),&'##9?(")&%*&'&."--=&/9#%"$(=&+*0#9(?=&*$&'?$9/0-%0$"&$*-"&9#&$"2*:")&6$*2�#"R0"(%& /'()9)'%"&1**-#=&"(#0$9(?&%+'%&/-0#%"$#&)*&(*%&*:"$-'1&'()&%+'%&1$*?$'22'%9/&"-"2"(%#&$"2'9(&0(9R0"&%*&'	(?-"& 9(6$'#%$0/%0$'-&0(9%@&K+"&'-?*$9%+2&1$*/"")#&?$"")9-,&%+$*0?+&."--&/'()9)'%"#&'()&%"$29('%"#&*(/"&%+"&$"R0"#%")& (02;"$&*6&."--#&+'#&;""(�//"##60--,&9(#%'(%9'%")@
A6%"$&9(9%9'-&/-0#%"$9(?=&%+"&#/$91%&'11-9"#&%.*&/*$$"/%9:"&1$*/")0$"#&%+'%&#+'1"&%+"&/*+"$"(/"&'()&)"(#9%,&*6&%+"& $"#0-%9(?&6';$9/@&_9$#%=&9%&$"2*:"#&*$1+'(#&;,&$"/-'##96,9(?&'(,&+*0#9(?&*$&'?$9/0-%0$'-&1*9(%&%+'%&9#&(*%&.9%+9(&%+"& /9#%"$(&#"$:9/"&$')90#&*6&'%&-"'#%&*("&69('-&/9#%"$(=&"(6*$/9(?&/9#%"$(H/"(%$")&)"1"()"(/,&'()&"-929('%9(?&$"#9)0'-& '--*/'%9*(#&%+'%&0()"$29("&9(6$'#%$0/%0$'-&-"?9;9-9%,@&Q"/*()=&9%&9(%$*)0/"#&'&-929%")&)"(#969/'%9*(&'$*0()&/-0#%"$&/"(%"$#& ;,&'##9?(9(?&#%'%"&E&%*&01&%*&%.*&1$":9*0#-,&0('##9?(")&1*9(%#&1"$&/"(%"$=&1$*:9)")&%+",&6'--&.9%+9(&'&)"69(")&1-'('$& $'(?"&'()&'&:"$%9/'-&2'$?9(&$"-'%9:"&%*&%+"&."--@&K+9#&1$*)0/"#&'&/*(%$*--")&+'-*&*6&'))9%9*('-&"-"2"(%#&'$*0()&"'/+& /-0#%"$&.9%+*0%&'-%"$9(?&%+"&69I")&$'%9*#&'()&)"1"()"(/9"#&%+'%&)"69("&%+"&1$92'$,&2*)0-"@&K+"&/*2;9(")&"66"/%&*6& %+"#"&$0-"#&9#&'&#"%%-"2"(%&2*$1+*-*?,&/*21*#")&*6&$"1"'%")=&/-0#%"$")&0(9%#&.9%+&"(6*$/")&9(%"$('-&1$*1*$%9*(#& '()&#"$:9/"&$"-'%9*(#+91#=&.+"$"&$"#9)"(%9'-&'()&1$*)0/%9:"&"-"2"(%#&'$"�*$)9('%")&%*&/9#%"$(&1$*I929%,=&/9#%"$(& 1-'/"2"(%&9#�*$)9('%")&%*&."--&1$*I929%,&'()&:"$%9/'-&'-9?(2"(%=&'()&%+"&*:"$'--&)9#%$9;0%9*(&*6&2*)0-"#&9#&"9%+"$& )$'.(&%*.'$)&"I%"$('-&'%%$'/%*$#&*$&)9#1"$#")&'/$*##&%+"&69"-)&%+$*0?+&6'$%+"#%H1*9(%&#'21-9(?@
Material Mixing Quantities Methodology
MIXWeight per cube (g)
1 · Lime + Xanthan
2 · Sorel cement (MgO + MgCl₂) + Xanthan
Sand 432
Clay 225 Fibre 45
Lime 90
Xanthan 18
Water 90
Sand 428 Clay 223 Fibre 45 MgO 7 MgCl₂ 45
Xanthan 18
Water 71
3 · Sodium-silicate + Xanthan
4 · Lime + casein
Sand 432 Clay 225 Fibre 45
Na₂SiO₃ 117
Xanthan 18
Water 63
Sand 432
Clay 225 Fibre 45
Lime 90
Casein 18
Water 90
5 · Lime + polymer emulsion
6 · Lime + linseed oil
Sand 432 Clay 225 Fibre 45 Lime 90
Polymer solids 27 Water 81
Sand 432 Clay 225 Fibre 45 Lime 90
Linseed oil 27 Water 81
Practical stock solution (count its carrier water)
Make 2 wt % xanthan sol (20 g L! ¹ at ~65 °C). Dose 0.90 L to supply 18 g XG (~0.88 L of this is water counted within the 90 g water).
If using 20 wt % MgCl₂ brine: 45 g MgCl₂ needs 225 g brine, which brings ~180 g water do not add free water (work to consistency). Prefer solid MgCl₂ flakes to keep water at ~71 g.
Anhydrous Na₂SiO₃ powder 117 g. add no free water and expect a wetter mix.
Disperse casein as 10 wt % in lime-water: 180 g dispersion supplies 18 g casein (~162 g is water, counted inside the 90 g target reduce free water accordingly).
Using 50 %-solids latex: weigh 54 g emulsion ( 27 g polymer + 27 g water). Subtract 27 g from the 81 g free-water allowance add 54 g extra water.
Weigh 135 g emulsion ( 27 g oil + 108 g water) and add no free water (accept a wetter mix or offset with a little dry sand).
Preparation protocol (immediately before charging the earth blend)
Hydrate XG (2 min high-shear, 10 min stand). 1:1 lime putty (90 g Ca(OH)₂ + 90 mL H₂O), mellow 10–15 min. Blend XG-sol into putty while stirring; keep pH≈12. Fold into the dry earth; compact.
Hydrate XG and dissolve into the MgCl₂ water. Sprinkle dry MgO into the liquor; stir ~60 s (exotherm). Charge and compact within ~8 min (rapid MOC set).
Hydrate XG (2 wt %). For Option A, dry-blend powder silicate with earth; add XG-water as mix water. For Option B, premix XGsol with diluted water-glass and fold into earth; no extra water.
Dissolve casein at pH≈10 (≈45 °C). Make lime putty; blend casein dispersion into putty; mix and compact.
Mellow lime putty 10–15 min. Add latex slowly into putty (never lime into latex). Fold into earth; avoid high-shear once latex is present.
Pre-emulsify with ~0.5 wt % mild surfactant; count its water in the budget; mix gently.
208 |Conclusion
Road Network C#
using System; using System.Collections; using System.Collections.Generic; using System.Linq;
using Rhino; using Rhino.Geometry; using Grasshopper; using Grasshopper.Kernel; using Grasshopper.Kernel.Data; using Grasshopper.Kernel.Types;
public class Script_Instance : GH_ScriptInstance { #region Utility functions
private void Print(string text) { /* Implementation hidden. */ } private void Print(string format, params object[] args) { /* Implementation hidden. */ }
private void Reflect(object obj) { /* Implementation hidden. */ }
private void Reflect(object obj, string method_name) { /* Implementation hidden. */ } #endregion
#region Members
private readonly RhinoDoc RhinoDocument; private readonly GH_Document GrasshopperDocument; private readonly IGH_Component Component; private readonly int Iteration; #endregion
private void RunScript( List<Point3d> P, List<int> S_in, double StepDistance, double DetourTolerance, ref object S_out, ref object C_out)
{ // 1. INPUT VALIDATION
if (P == null || S_in == null || P.Count != S_in.Count) { Component.AddRuntimeMessage( Grasshopper.Kernel.GH_RuntimeMessageLevel. Warning, “Input P and S_in must be valid and have the same number of items.”); return; }
if (DetourTolerance < 1.0) DetourTolerance = 1.0;
if (StepDistance <= 0) StepDistance = 40.0;
// 2. INITIAL SETUP
List<int> newStates = new List<int>(S_in); List<Curve> connectionCurves = new List<Curve>();
List<int> state1Indices = GetIndicesByState(newStates, 1); List<int> state0Indices = GetIndicesByState(newStates, 0);
if (state1Indices.Count < 2)
{ Component.AddRuntimeMessage( Grasshopper.Kernel.GH_RuntimeMessageLevel. Remark, “Fewer than two ‘State 1’ points found. No curves to create.”);
S_out = newStates; C_out = connectionCurves; return;
}
// 3. FIND CLOSEST NEIGHBORS AND CREATE CONNECTIONS
var createdConnections = new HashSet<Tuple<int, int>>();
foreach (int startIdx in state1Indices)
{ var neighbors = new List<Tuple<int, double>>(); foreach (int candidateIdx in state1Indices)
{ if (startIdx == candidateIdx) continue; double dist = P[startIdx].DistanceTo(P[candidateIdx]); neighbors.Add(new Tuple<int, double>(candidateIdx, dist)); }
neighbors.Sort((a, b) => a.Item2.CompareTo(b.Item2)); int neighborsToConnect = Math.Min(2, neighbors. Count);
for (int i = 0; i < neighborsToConnect; i++) { int goalIdx = neighbors[i].Item1; var connectionPair = new Tuple<int, int>( Math.Min(startIdx, goalIdx), Math.Max(startIdx, goalIdx));
if (createdConnections.Contains(connectionPair)) continue; createdConnections.Add(connectionPair); // Pathfinding Logic (Direct vs. Detour) Point3d ptA = P[startIdx]; Point3d ptB = P[goalIdx]; double directDist = ptA.DistanceTo(ptB); int bestDetourIdx = -1; double bestDetourDist = double.MaxValue; if (state0Indices.Count > 0) { foreach (int idx0 in state0Indices)
{ double detourDist = ptA.DistanceTo(P[idx0]) + P[idx0].DistanceTo(ptB); if (detourDist < bestDetourDist)
{ bestDetourDist = detourDist; bestDetourIdx = idx0; } } }
// Choose detour if shorter (within DetourTolerance) if (bestDetourIdx != -1 && bestDetourDist <= directDist * DetourTolerance)
{ Polyline detourPolyline = new Polyline { ptA, P[bestDetourIdx], ptB }; connectionCurves.Add(detourPolyline.ToNurbsCurve()); } else
{ connectionCurves.Add(new LineCurve(ptA, ptB)); } } }
// 4. COLLISION CHECK ALONG CURVE PATHS
Dictionary<int, int> pointsToEliminate = new Dictionary<int, int>();
foreach (Curve curve in connectionCurves)
{ double curveLength = curve.GetLength(); for (double d = 0; d <= curveLength; d += StepDistance)
{ Point3d testPoint = curve.PointAtLength(d); int bestCandidateIndex = -1; double minDistance = double.MaxValue; for (int i = 0; i < P.Count; i++) { int currentState = newStates[i]; if (currentState == 3 || currentState == 4 || currentState == 5)
{ double distToTestPoint = P[i].DistanceTo(testPoint); if (distToTestPoint < minDistance)
{ minDistance = distToTestPoint; bestCandidateIndex = i; }}
} if (bestCandidateIndex != -1 && !pointsToEliminate.ContainsKey(bestCandidateIndex))
{ pointsToEliminate.Add(bestCandidateIndex, newStates[bestCandidateIndex]); }
// 5. PROCESS STATE CHANGES AND REPLACEMENTS if (pointsToEliminate.Count > 0)
{ foreach (int idxToEliminate in pointsToEliminate.Keys) { newStates[idxToEliminate] = 0; }
List<int> availableReplacementIndices = GetIndicesByState(newStates, 0);
foreach (var eliminated in pointsToEliminate)
{ int eliminatedIdx = eliminated.Key; int originalState = eliminated.Value; Point3d eliminatedPt = P[eliminatedIdx]; if (availableReplacementIndices.Count == 0) break; int replacementIdx = -1; double minReplacementDist = double.MaxValue; foreach (int availIdx in availableReplacementIndices) { double dist = eliminatedPt.DistanceTo(P[availIdx]); if (dist < minReplacementDist) { minReplacementDist = dist; replacementIdx = availIdx; }
} if (replacementIdx != -1) { newStates[replacementIdx] = originalState; availableReplacementIndices.Remove(replacementIdx); }
// 6. ASSIGN OUTPUTS
S_out = newStates; C_out = connectionCurves; }
private List<int> GetIndicesByState(List<int> states, int targetState)
{ List<int> indices = new List<int>(); for (int i = 0; i < states.Count; i++)
{ if (states[i] == targetState) indices.Add(i); } return indices; } }
K+"&#/$91%&/*(#%$0/%#&'&-*/'-&/*(("/%9:9%,&("%.*$>&;"%.""(&'--&1*9(%#&'##9?(")&#%'%"&<&;,&/$"'%9(?&("'$"#%&("9?+;*0$& -9(>#=&'--*.9(?&*1%9*('-&)"%*0$#&%+$*0?+&#%'%"&4&1*9(%#=&'()&%+"(&"(6*$/9(?&'&/-"'$'(/"&/*$$9)*$&;,&)9#1-'/9(?& 1$*?$'22"&%+'%&/*(6-9/%#&.9%+&%+"&?"("$'%")&1'%+#@&O9%+9(&%+"&;$*')"$&#,#%"2=&#%'%"&4&1*9(%#&'$"&0()"$#%**)&'#& %+"&/"(%$"#&*6&'--&/-0#%"$#=&2"'(9(?&%+",&60(/%9*(&'#&%+"&1$92'$,&$"#"$:"&*6&':'9-';-"&-*/'%9*(#&6$*2&.+9/+&*%+"$& 1$*?$'22"&#%'%"#&/'(&;"&$"'##9?(")&.+"(&$")9#%$9;0%9*(&9#&$"R09$")@&A6%"$&:'-9)'%9(?&%+'%&%+"&1*9(%&-9#%&'()&%+"& 9(/*29(?&#%'%"&-9#%&2'%/+&9(&-"(?%+=&%+"&'-?*$9%+2&(*$2'-9#"#&%+"&/*(%$*-&1'$'2"%"$#&;,&"(#0$9(?&'&1*#9%9:"&#%"119(?& )9#%'(/"&6*$&/0$:"&#'21-9(?&'()&'&)"%*0$&%*-"$'(/"&%+'%&9#&(*%&#"%&;"-*.&*("@&^%&%+"(&/*19"#&%+"&9(10%&#%'%"#&9(%*&'& 20%';-"&-9#%&'()&"I%$'/%#&%.*&.*$>9(?&#"%#g&%+"&9()9/"#&*6&#%'%"&<&1*9(%#=&.+9/+&*1"$'%"&'#&("%.*$>&'(/+*$#=&'()&%+"& 9()9/"#&*6&#%'%"&4&1*9(%#=&.+9/+&#"$:"&'#&1*%"(%9'-&9(%"$2")9'$9"#&'#&."--&'#&%+"&1**-&*6&/-0#%"$H/"(%$"&-*/'%9*(#@ _*$&"'/+&#%'%"&<&'(/+*$=&%+"&#/$91%&/*210%"#&70/-9)"'(&)9#%'(/"#&%*&'--&*%+"$&#%'%"&<&1*9(%#=&#*$%#&/'()9)'%"#&;,& 1$*I929%,=&'()&/*(("/%#&%+"&'(/+*$&%*&9%#&%.*&/-*#"#%&("9?+;*0$#@&A&#"%H;'#")&/+"/>&1$":"(%#&)01-9/'%"&/*(("/%9*(#& #*&%+'%&"'/+&0()9$"/%")&1'9$&9#&?"("$'%")&*(-,&*(/"@&_*$&":"$,&/*(("/%9*(=&%+"&#/$91%&/*21'$"#&'&)9$"/%&-9("&;"%.""(& %+"&%.*&'(/+*$#&'?'9(#%&%+"&;"#%&':'9-';-"	(?-"H#%"1&)"%*0$&%+'%&1'##"#&%+$*0?+&*("&#%'%"&4&1*9(%=&.+"$"&%+"&;"#%& )"%*0$&9#&)"69(")&'#&%+"&29(9202&*6&%+"&%.*&#"?2"(%&-"(?%+#@&A&)"%*0$&9#&#"-"/%")&*(-,&.+"(&9%#&%*%'-&-"(?%+& $"2'9(#&.9%+9(&'&;*0()")&20-%91-"&*6&%+"&)9$"/%&)9#%'(/"=&'#&)"69(")&;,&%+"&)"%*0$&%*-"$'(/"@&^6&%+"&)"%*0$&R0'-969"#=& %+"&/*(("/%9*(&9#&$"1$"#"(%")&'#&'&1*-,-9("&%+$*0?+&%+"&/+*#"(&#%'%"&4&1*9(%a&*%+"$.9#"=&9%&$"2'9(#&'&#%$'9?+%&-9("@&A--& -9(>#&'$"&#%*$")&'#&/0$:"#@ e(/"&%+"&("%.*$>&?"*2"%$,&9#&'##"2;-")=&%+"&#/$91%&1"$6*$2#&'&/*--9#9*(&#/'(&'-*(?&"'/+&/0$:"&;,&#'21-9(?&1*9(%#& '%&$"?0-'$&9(%"$:'-#&)"69(")&;,&Q%"1!9#%'(/"@&A%&"'/+&#'21-"&-*/'%9*(&9%&#"'$/+"#&6*$&%+"&("'$"#%&1*9(%&.+*#"&/0$$"(%& #%'%"&;"-*(?#&%*&%+"&1$*?$'22"&#"%&3=&F=&*$&E@&A(,�/+&1*9(%&9#&2'$>")&*(/"&6*$&"-929('%9*(=&2"'(9(?&9%#&#%'%"&.9--& ;"&$"#"%&%*&4=&.+9-"&9%#&*$9?9('-&#%'%"&:'-0"&9#&#%*$")&%*&"(';-"&-'%"$&$"1-'/"2"(%@&K+9#&*1"$'%9*(&%$"'%#&%+"&/0$:"#&'#& #1'%9'-&/*$$9)*$#&%+'%$"##&("'$;,&1$*?$'22"=&1$*)0/9(?&/*(("/%9:9%,&;,&/-"'$9(?'/"&%+$*0?+&%+"&"I9#%9(?& )9#%$9;0%9*(&$'%+"$&%+'(Ι-,&*:"$-',9(?&9%@
A6%"$&'--&/0$:"#&+':"&;""(&#/'((")=&%+"&#/$91%&'11-9"#&%+"&"-929('%9*(#&'()&%+"(&/*21"(#'%"#&6*$&1$*?$'22"&-*##&;,& $"'##9?(9(?&"'/+&$"2*:")&#%'%"&%*&%+"&/-*#"#%&':'9-';-"&#%'%"&4&1*9(%@&S"/'0#"&#%'%"&4&1*9(%#&'$"&)"69(")&'#&/-0#%"$& /"(%$"#=&%+9#&$"1-'/"2"(%&#%"1&"66"/%9:"-,&$"-*/'%"#&)9#1-'/")&1$*?$'22"&;'/>&9(%*&%+"&#,#%"28#&/"(%$'-&$"#"$:"&*6& /-0#%"$&1*#9%9*(#=&$'%+"$&%+'(&)9#%$9;0%9(?&9%&'$;9%$'$9-,@&["1-'/"2"(%#&'$"&/+*#"(&?$"")9-,&;,&29(9202&70/-9)"'(& )9#%'(/"&6$*2&%+"&"-929('%")&-*/'%9*(&'()&$"2*:")&6$*2&%+"&':'9-';-"&1**-&*(/"&0#")@&K+"&*0%10%#&'$"&%+"$"6*$"& '(&01)'%")&#%'%"&69"-)&'()&'&#"%&*6&/*(("/%9*(&/0$:"#=&.+"$"&'&("'$"#%&("9?+;*0$&("%.*$>&;"%.""(&#%'%"&<&'(/+*$#& 9#&?"("$'%")&.9%+&;*0()")&)"%*0$#=&'()&#%'%"#&3=&F=&'()&E&'$"&)9#1-'/")&6$*2&%+"&#'21-")&1'%+&"(:"-*1"&'()& $")9#%$9;0%")&9(%*&$"2'9(9(?&/-0#%"$H/"(%$"&/'1'/9%,=&2'9(%'9(9(?&*:"$'--&1$*?$'22"&/*0(%#&.+9-"&"(6*$/9(?&-*/'-& /-"'$'(/"@
Atmospheric Water Harvesting Training Data
';;%(93S)%O)K"'F3$V)'('FV!3!
Thermal and Humidity Analysis
_*$&%+"&%+"$2'-&'()&+,?$*2"%$9/&;"+':9*0$&*6&%+"& 6$'?2"(%")&-'()#/'1"&9(#9)"&%+"&]*(",;""&Θ-'%9*(& "(:9$*("2"(%=&1$*?$'22"&-*')#=&2'%"$9'-&1$*1"$%9"#=& '9$6-*.&'##021%9*(#&'()&;*0()'$,&2*9#%0$"&/*()9%9*(#&."$"& '##9?(")&1$9*$&%*&%+"&'('-,#9#&%*&"(';-"&/*(#9#%"(/,&'()& %$'(#1'$"(/,&'/$*##&%+"&1"$6*$2'(/"&*6&%+"'%9'-&"-"2"(%#@ A--&J*("#&."$"&2*)"--")&'#&6$""H$0((9(?'/"#=&.9%+*0%&'/%9:"& ]bAU&#,#%"2#=&9(&*$)"$&%*&9#*-'%"&%+"&"66"/%#&*6&?"*2"%$,=& 2'%"$9'-&9("$%9'=&'9$6-*.=&'()&-'%"(%&2*9#%0$"&"I/+'(?"&0()"$& '$9)&)"#"$%&/*()9%9*(#@&K+9#&'11$*'/+&'-9?(#&.9%+&#%'()'$)& 2"%+*)#&6*$&1'##9:"Θ-'%9*(&9(&+*%H'$9)&/-92'%"#=&1'$%9/0-'$-,& 6*$�%"$$'("'(&'()&%+"$2'--,&2'##9:"&/*(#%$0/%9*(#@C4 Programme Loads and Occupancy Assumptions
^(%"$('-&?'9(#&."$"&)"69(")&%+$*0?+&%+"&1"*1-"&)"(#9%,=& -9?+%9(?&$')9'%9*(=&'()&"-"/%$9/&"R0912"(%&-*')#=&/'-9;$'%")& ;,&1$*?$'22"&$'%+"$&%+'(&?"("$9/&%,1*-*?,@&["#9)"(%9'-&0(9%#& ')*1%&-*.&'()&%"21*$'--,&-929%")&9(%"$('-&?'9(#&/*(#9#%"(%& .9%+&-*.&)"(#9%,&)*2"#%9/&*//01'%9*(@&U9:9/&'()&/*220('-& 6$'?2"(%#&$"6-"/%&+9?+"$&*//01'(%&-*')#=&%+*0?+&/*(#%$'9(")& .9%+9(&%+"&-*."$&;*0()#&*6&7("$?,c-0#&'##"2;-,H#1'/"& /'%"?*$9"#@C<&A()=&'?$9/0-%0$'-&'()&9(6$'#%$0/%0$'-&"-"2"(%#&'$"& 2*)"--")&'#&'-2*#%&0(*//019")=&.9%+&("?-9?9;-"&#"(#9;-"&?'9(#@ e//01'(/,&#/+")0-"#&."$"&'11-9")&*(-,&.+"$"&+02'(&1$"#"(/"& 2'%"$9'--,&9(6-0"(/"#&%+"$2'-&;"+':9*0$@&^(&.'%"$H6*/0#")&'()& 9(6$'#%$0/%0$'-&'$"'#=&*//01'(/,&.'#&*29%%")&%*&1$"#"$:"&%+"& 2'%"$9'-&'()&"(:9$*(2"(%'-&"66"/%#&*6&2'##=&'9$6-*.&'()&-'%"(%& +"'%&.9%+*0%&'(%+$*1*?"(9/&9(%"$6"$"(/"@
Material Properties and Functionally Graded Envelopes
7(:"-*1"&1$*1"$%9"#=&)"(#9%,=&/*()0/%9:9%,&fλW=&'()"/969/&+"'%& f/W&."$"&)$'.(&6$*2&%+"&2'?("#902&*I,/+-*$9)"&fLeUW&"'$%+"(& /*21*#9%"&#,#%"2&"I1"$92"(%'--,&:'-9)'%")&9(&c+'#"&^@&K+"#"&:'-0"#& 6'--&.9%+9(&"219$9/'-&;*0()#&6*$&#%';9-9#")&"'$%+&'()&29("$'-H ;*0()&/*21*#9%"#=*$%9(?&'&+9?+&%+"$2'-&2'##&$"?92"& .9%+&-*/'-9#")&/*()0/%9:9%,&:'$9'(/"&'/$*##&#"/%9*(&%+9/>("##@CD U9#%"$(#=&%*."$#=&'()&:'0-%")'/"#&'$"&'##9?(")&2'$?9('--,& +9?+"$&)"(#9%9"#&'()&/*()0/%9:9%9"#=&$"6-"/%9(?&9(/$"'#")& /*21'/%9*(&'()&2*9#%0$"&9(%"$'/%9*(@&A?$9/0-%0$'-&'()&/*0$%,'$)& /*()9%9*(#&0#"&-*."$&"66"/%9:"&/*()0/%9:9%9"#&)0"&%*&:"?"%'%9*(& '()&#*9-&29I9(?&'()&1'$%9'-&"I1*#0$"@
79 Baruch Givoni, Climate Considerations in Building and Urban Design (New York: Van Nostrand Reinhold, 1998).
80 U.S. Department of Energy, EnergyPlus Engineering Reference (Washington, DC: DOE, 2023).
81 Gernot Minke, Building with Earth: Design and Technology of a Sustainable Architecture (Basel: Birkhäuser, 2006).
82 Mat Santamouris, Cooling the Cities: A Review of Reflective and Green Roof Mitigation Technologies to Fight Heat Island and Improve Comfort in Urban Environments, Solar Energy 103 (2014): 682–703.
83 Evyatar Erell, David Pearlmutter, and Terence Williamson, Urban Microclimate: Designing the Spaces Between Buildings (London: Earthscan, 2011).
Airflow and Ventilation Exchange
_-*.&1"$&7I%"$('-&A$"'&.'#&0#")&%*&/'1%0$"&)966"$"(%9'-& :"(%9-'%9*(&"I1*#0$"=&)9#%9(?09#+9(?&"(/-*#")�%"$$'("'(& J*("#&6$*2&#"29H*1"(&'()&*1"(H'9$'/"#@&c$*)0/%9:"&'()& /*0$%,'$)&/*()9%9*(#&$"/"9:"&+9?+"$&'9$6-*.&:'-0"#=Θ-'%9(?& .9()H)$9:"(&/**-9(?=&.+9-"&/9#%"$(#&'()&$"#9)"(%9'-&0(9%#&'$"& '##9?(")&-*.&"I/+'(?"&:'-0"#=&$"6-"/%9(?&%+"$2'-&-'?&'()& +029)9%,&#%';9-9%, O= L*9#%0$"&'()&T'%"(%&766"/%#
T'%"(%&2*9#%0$"&;"+':9*0$&9#&+'()-")&921-9/9%-,&:9'&')`'/"(/,& %*&.'%"$&6"'%0$"#&f/9#%"$(#=&10$969/'%9*(&1**-#=&/*0$%,'$)&;'#9(#W=& .9%+*0%&)9$"/%&+029)969/'%9*(@&]*(",;""8#&"("$?,&;'-'(/"& 6$'2".*$>&2*)"-#&":'1*$'%9:"&"66"/%#&%+$*0?+&J*("&2'##=& #0$6'/"&"I/+'(?"&'()&/*(:"/%9:"&'9$6-*.=&'--*.9(?&?$')9"(%#& %*&"2"$?"&6$*2'%9'-&'$$'(?"2"(%&$'%+"$&%+'(&921*#")& /*()9%9*(# 84
c'$'2"%"$ b'-0" U-92'%"&J*(" D&f]*%&!$,&!"#"$%W L'9(&.'--&\H:'-0" <@E&Ok2Gl [**6&\H:'-0" <@D&Ok2Gl _-**$&\H:'-0" <@X&Ok2Gl
L'#+$';9,'&1*$*#9%, 4@3E [')9'(/"&%$'(#29%%'(/" 4@3E b"(%9-'%9*(&)9#/+'$?"&/*"669/9"(%&fU)W 4@X
L'%"$9'-&)"(#9%,&$'(?" <X44jD444&>?k2V K+"$2'-&/*()0/%9:9%,&λ&$'(?"4@FEj<@4&Ok2†l Q1"/969/&+"'%&/&$'(?" B44j<444&‡k>?†l
Material AssemblyReference valuesSource
Earthen wall (adobe/ rammed earth typical)
MOC cement with fibres/additives
Thick earth walls in hot-arid contexts U = 1.5–1.8 W/m²KFathy (1986) M:0J):'S),)E+*+,6 <2+,E0L246"/):')1/20,6'B+@+,+1/+6
λ = 0.7 W/m·K
λ = 1800 kg/m% c = 1000 J/kg·K Minke (2006)
λ = 0.45 W/m·K
λ = 1700 kg/m% c = 900 J/kg·K Li et al. (2019)
c'$'2"%"$ b'-0"
c"*1-"&!"(#9%, 4@4C&11-k2G e//01'(/,&Q/+")0-" !tL%-tU*0$%te//01t n$ [')9'(%&T*') <@E&Ok2G 7-"/%$9/&7R0912"(% D@4&Ok2G _-*.&1"$&7I%"$('-&A$"' 4@D L'%"$9'-&)"(#9%,&$'(?"<C44&>?k2V
λ&$'(?" 4@dE&Ok2†l Q1"/969/&+"'%&/&$'(?"BE4&‡k>?†l
c'$'2"%"$ b'-0"
c"*1-"&!"(#9%, 4@4F&11-k2G e//01'(/,&Q/+")0-" !tQ_2tT9:9(?t e//01tn$ [')9'(%&T*') <@4&Ok2G 7-"/%$9/&7R0912"(% <@E&Ok2G _-*.&1"$&7I%"$('-&A$"' 4@3 L'%"$9'-&)"(#9%,&$'(?"<C44&>?k2V K+"$2'-&/*()0/%9:9%,&λ $'(?" 4@dE&Ok2†l Q1"/969/&+"'%&/&$'(?"BE4&‡k>?†l
D096"1#''L,0#,)EE+
c'$'2"%"$ b'-0" c"*1-"&!"(#9%, e//01'(/,&Q/+")0-" [')9'(%&T*')
_-*.&1"$&7I%"$('-&A$"' 4@< L'%"$9'-&)"(#9%,&$'(?"<B44&>?k2V
λ&$'(?" 4@CE&Ok2†l Q1"/969/&+"'%&/&$'(?"BE4&‡k>?†l L*9#%0$"&Q*0$/" O'%"$H')`'/"(%&T'%"(%& Z'9(
?"6*+,1'?0EE91):'HL)/+6''L,0#,)EE+ ?"6*+,1'()*+,'H*0,)#+''S,0#,)EE+
c'$'2"%"$ b'-0"
c"*1-"&!"(#9%, 4@44E&11-k2G e//01'(/,&Q/+")0-"ST!ZteUUtQU] T'%"(%&_$'/%9*( 7R0912"(%&c*."$& !"(#9%, _-*.&1"$&7I%"$('-&A$"' 4@C L'%"$9'-&)"(#9%,&$'(?"<d44&>?k2V
λ&$'(?" 4@X&Ok2†l Q1"/969/&+"'%&/&$'(?"B44&‡k>?†l
c'$'2"%"$ b'-0"
c"*1-"&!"(#9%, 4@44E&11-k2G e//01'(/,&Q/+")0-"ST!ZteUUtQU]
T'%"(%&_$'/%9*( 7R0912"(%&c*."$& !"(#9%, _-*.&1"$&7I%"$('-&A$"' 4@d L'%"$9'-&)"(#9%,&$'(?"<XE4&>?k2V
λ&$'(?" 4@EE&Ok2†l Q1"/969/&+"'%&/&$'(?"B44&‡k>?†l
c'$'2"%"$ b'-0" c"*1-"&!"(#9%, 4@44EF&11-k2G e//01'(/,&Q/+")0-"ST!ZteUUtQU] T'%"(%&_$'/%9*( 4@3 7R0912"(%&c*."$&!"(#9%,4@D&H&<@4&Ok2G ^(69-%$'%9*(&f2Vk#†2GW 4@44<E P'%0$'-&:"(%9-'%9*(&f2Vk#†2GW4@44X&H&4@44C !]O ]bAU&#"%1*9(%#
?01;+16)*"01'<0P+,''L,0#,)EE+ ?"6*+,1'S9J:"/'HL)/+''S,0#,)EE+ 8#,"/9:*9,+'(2+)*'S,0#,)EE+ 8#,"/9:*9,+'F)*+'S):E6'S,0#,)EE+ S9,"@"/)*"01'S00:6'S,0#,)EE+
c'$'2"%"$ b'-0" c"*1-"&!"(#9%, 4@4D&11-k2G e//01'(/,&Q/+")0-"!tL%-tU*0$%te//01tn$ T'%"(%&_$'/%9*( 4@E _-*.&1"$&7I%"$('-&'$"' 4@X L'%"$9'-&)"(#9%,&$'(?"<C44&>?k2V λ&$'(?" 4@dE&Ok2†l Q1"/969/&+"'%&/&$'(?"BE4&‡k>?†l L*9#%0$"&Q*0$/" 7:'1*$'%9:"&O'%"$& Q*0$/"
c'$'2"%"$ b'-0"
c"*1-"&!"(#9%, 4@44D&11-k2G e//01'(/,&Q/+")0-"ST!ZteUUtQU] [')9'(%&T*') 4@E&Ok2D 7R0912"(%&c*."$&!"(#9%,4@E&Ok2G _-*.&1"$&7I%"$('-&A$"' 4@E L'%"$9'-&)"(#9%,&$'(?"<CE4&>?k2V λ&$'(?" 4@C&Ok2†l L*9#%0$"&Q*0$/" 7:'1*$'%9*(&p&_-*.H 9()0/")&29I9(? S,0#,)EE+';+@"1"*"016
!tA?$9/0-%0$"&]0;&uAv c0$969/'%9*(&c**-#
c'%+#
c'%+# T*."$&c")"#%$9'(&c'%+# HE
c'%+# T*."$&c'%+#&p&O'%"$&c'%+#& e:"$-', HE
c'%+# \11"$&c")"#%$9'(&c'%+# 4 3<@4< H4@BE <2+,E):'81):46"6'B+69:*6$'
\(9% 7-"2"(% T":"- ["-'%9"&]029)9%,&u5v ^(%$9(#9/ K$'(#29##9"
U*()"(#'%9*(&_'$2&uU*v K*."$&S066"$&{*(" 4 DF@3D F@ED
St]*0#9(?&u]v ]*0#"&S066"$&{*(" HE E4@BE F@D4
St]*0#9(?&u]v K*."$&S066"$&{*(" HE DF@3D D@D4
AtU9#%"$(&uUv U*220('-&Q1'/"# HE 3D@EF D@EF
AtU9#%"$(&uUv U9#%"$( HE CF@XB B@XB
AtU9#%"$(&uUv c0;-9/&Q1'/"# 4 3d@BX D@BX AtU9#%"$(&uUv U*220('-&Q1'/"# 4 3<@D< <@D<
St]*0#9(?&u]v K*."$ HE Fd@XE 4@XE
!tA?$9/0-%0$"&]0;&uAv c0$969/'%9*(&c**-# 4
c'-2&c-'(%'%9*( 4
!tA?$9/0-%0$"&]0;&uAv O+"'%&c-'(%'%9*( 4 X4@d< d@d< U*()"(#'%9*(&_'$2&uU*v K*."$ 4 Fd@XE 4@4E U*()"(#'%9*(&_'$2&uU*v K*."$ 4 FF@4E H<4@4E
c'%+# O'%"$&c'%+# HE XB@d3 E@d3
c'%+# T*."$&c")"#%$9'(&c'%+# HE X4@<4 3@<4
c'%+# T*."$&c'%+#&p&O'%"$&c'%+#& e:"$-', HE XF@B< 3@D<
c'%+# \11"$&c")"#%$9'(&c'%+# 4 3<@ED E@ED D9E";"*4'81):46"6'B+69:*6$'
K+9#&'11"()9I&$"/*$)#&%+"&"I'/%Θ-'%9*(&9(10%#&'()& 1$*/")0$"#&0#")&%*&?"("$'%"&%+"&'/*0#%9/&:'-0"#&$"1*$%")&9(&%+"& 2'9(&/+'1%"$@
Propagation and Solver configuration
A--&6$'?2"(%#&."$"&":'-0'%")&0#9(?&'&0(969")&c'/+,)"$2& 1$*1'?'%9*(&#"%01&%*&"(#0$"&/*(#9#%"(/,&'/$*##&0(9%&/*21'$9#*(#@& K+"Θ-'%9*(&"21-*,")&'&#%'()'$)&%+$""H;$'(/+&#%$0/%0$"& /*21$9#9(?&!9$"/%&Q*0()=&^2'?"&Q*0$/"&f$"6-"/%9*(&*$)"$&DW=& '()&[',&K$'/9(?@&K+9#&'11$*'/+&6*--*.#&"#%';-9#+")&/*(:"(%9*(#& 9(&?"*2"%$9/H'/*0#%9/&2*)"--9(?=&.+"$"&$*;0#%("##&9#&"(#0$")& :9'&/*(%$*--")&$"6-"/%9*(&)"1%+&'()&$',H)"(#9%,&/*(:"$?"(/"=& $'%+"$&%+'(&%+$*0?+&';#*-0%"&/'-9;$'%9*(@< K*&#%';9-9#"&/*21'$'%9:"&/*()9%9*(#=&'&69I")&$"/"9:"$&1$*%*/*-& .'#&'11-9")g&%+$""&$"/"9:"$#&1"$&/*()9%9*(=&"'/+&1*#9%9*(")&'%& '11$*I92'%"-,&<@E&2&"'$&+"9?+%&'()'/")&0#9(?&'&/*(#%'(%H $')90#&$0-"@&A??$"?'%9*(&.'#&1"$6*$2")&%+$*0?+&"("$?,H /*$$"/%&':"$'?9(?&f'#&)"%'9-")&9(&%+"&2'9(&/+'1%"$W=&'()&%+"& $"1$"#"(%'%9:"&)SA&:'-0"#&1"$&6$'?2"(%k/*()9%9*(&'$"&)"$9:")& 6$*2&%+9#&1$*/"##@&A--&M9(%$9(#9/N&'()&M%$'(#29##9*(N&*0%10%#& $"1*$%")&'$"&)9$"/%-,&%$'/"';-"&%*&%+"&#*0$/""/%$'&0#")=&%+"& ;*0()'$,&';#*$1%9*(&/*"669/9"(%#a&'()&%+"&1$*1'?'%9*(&'()& $',/'#%9(?&#"%%9(?#@CF
c$*1'?'%9*(&S$'(/+"#H&!9$"/% H&^2'?"&Q*0$/" H&[',&K$'/9(? ^2'?"&Q*0$/"&e$)"$D&
[',&U*0(%&c"$&Q*0$/"D444&H&E4444
[',&U0%H*66&%92"d44&H&<D44&2# 7)?"&!966$'/%9*(&e__
_$"R0"(/,&Q/*1"e/%':"
["/"9:"$#&c$*%*/*-3&$"/"9:"$#&1"$&/*()9%9*(=& .9%+&<@E&2&"'$&`"9?+%&'()&'& /*(%'(%&$')90#&'??$"?'%9*(
S)/24;+,E'L,0L)#)*"01'6+**"1#6
Material Absorption Library
K+"&2'%"$9'-&-9;$'$,&$"6-"/%#&%+"&1$*`"/%8#&'$/+9%"/%0$'-&-*?9/=& "(/*)9(?&/*(#%$0/%9*(&;"+':9*0$&'/*0#%9/'--,@&O'--#&'()&6-**$#& ."$"&2*)"--")&'#&)"(#"&29("$'-&;*0()'$9"#&.9%+&-*.&';#*$1%9*(a& :'0-%&-9(9(?#&0#")&1*$*0#=&29/$*H#%$0/%0$")&LeU�$6'/"#& .9%+&6$"R0"(/,H)"1"()"(%&';#*$1%9*(a&'()&2'#+$';9,'#&."$"& %$"'%")&'#&29)H%*H+9?+&6$"R0"(/,&)9660#"$#@&O'%"$&.'#&2*)"--")& '#&("'$H$"6-"/%9:"&9(&'--&;'()#@&b'0-%&1"$6*$2'(/"&9#&-9(>")&%*& 1*$*#9%,H9()0/")&%*$%0*#9%,=&.+9/+&9(/$"'#"#&:9#/*0#&'()&%+"$2'-& "("$?,&-*##&9(&+9?+"$&6$"R0"(/9"#=&`0#%96,9(?&9%#&%$"'%2"(%&'#&'& 6$"R0"(/,H#"(#9%9:"&';#*$;"$@CE
K+9#&'##9?(2"(%&#%$'%"?,&)*"#&(*%&/-'92&%*&$"1-9/'%"&-';H%"#%")& 2'%"$9'-&/0$:"#&;0%&"(#0$"#&%+'%&'%2*#1+"$9/&:'$9'%9*(&*;#"$:")& 9(&%+"Θ-'%9*(#&$"2'9(#&'%%$9;0%';-"&%*&)"#9?(")�$6'/"& 1$*1"$%9"#=&$'%+"$&%+'(&0(%$'/>")&#*-:"$&'$%"6'/%#@CX
84 Savioja, Lauri, and U. Peter Svensson. “Overview of Geometrical Room Acoustic Modeling Techniques.” The Journal of the Acoustical Society of America 138, no. 2 (2015): 708–730. https://doi.org/10.1121/1.4926438.
85 Allard, Jean-Pierre, and Noureddine Atalla. Propagation of Sound in Porous Media: Modelling Sound Absorbing Materials. 2nd ed. Chichester: Wiley, 2009.
86 Cox, Trevor J., and Peter D’Antonio. Acoustic Absorbers and Diffusers: Theory, Design and Application. 2nd ed. Boca Raton, FL: CRC Press, 2009.
3E<4<E@<D4DEDB@B34
<4<EDEF4EEXEd4dE
4@<4@<4@<4@<4@<4@<4@<4@<
<DFEXC<4<D
<<<@B<@B3F@<EE@X 8J60,L*"01'/0+@@"/"+1*6'L+,'E)*+,"):el'+1+,#4')J60,J+;Q'0/*)[+'J)1;6f
Source Spectra Conditions
K+"&Q*0$/"&c*."$&6*$2&%+"&69$#%&1$*:"('(/"& -',"$&6*$&)SA&$"#0-%#=&'#&'--&$"/"9:"$&*0%10%#& '$"&/'-/0-'%")&6$*2&$"#1*(#"#&%*&%+"#"& #1"/%$'&0()"$&%+"&?9:"(&;*0()'$,&'()& 1$*1'?'%9*(&/*()9%9*(#@F& K+"&/*()"(#'%9*(& %*."$&*1"$'%"#&'#&'&%.*H#%'%"&'/*0#%9/& #*0$/"@&^(&9%#&+9?+H:"-*/9%,&2*)"=&.+9/+& '-%"$#&;*%+&9(%"(#9%,&'()"/%$'-&/+'$'/%"$=& %+"&2*)"-�#%9%0%"#&'&)")9/'%")&+9?+H *0%10%"/%$02&.+9-"&+*-)9(?&'--&*%+"$& #*-:"$&1'$'2"%"$#&/*(#%'(%@&K+9#&$"6-"/%#& $"/*?(9#")&'"$*'/*0#%9/&;"+':9*0$=&.+"$"& $')9'%")&#*0()&1*."$&9(/$"'#"#&(*(-9("'$-,& .9%+&6-*.&:"-*/9%,@E
4 International Electrotechnical Commission. IEC 61672-1: Electroacoustics—Sound Level Meters—Part 1: Specifications. Geneva: IEC, 2013. 5 Lighthill, M. J. “On Sound Generated Aerodynamically. I. General Theory.” Proceedings of the Royal Society of London. Series A 211, no. 1107 (1952): 564–587.
c0$969/'%9*(&c**-#&q&U9#%"$(#& fK$"'%2"(%&6-*.W
XD@E X4
<DE X3
DE4 Xd
E44 d<
<> d3
D> dD
F> XB
C> XE
H09,/+'HL+/*,)'?01;"*"016''0@' S9,"@"/)*"01'S00:6'o'?"6*+,16'e<,+)*E+1*'@:0Pf
c0;-9/&Q1'/"# fe1"(&Q1'/"#W
XD@E X4
<DE
E44 X3
<>
U*()"(#'%9*(&K*."$& fP*$2'-&e1"$'%9*(W
XD@E XF
<DE XX
DE4 XC
E44 d4
<> d4
H09,/+'HL+/*,)'?01;"*"016''0@' ?01;+16)*"01'<0P+,'eW0,E):'5L+,)*"01f
O'%"$&c'%+# fQ+'--*.&_-*.W
XD@E XF
<DE XX DE4 XC E44 d4
<> d4
D> XX
F> XD
C> EB
H09,/+'HL+/*,)'?01;"*"016''0@' ()*+,'S)*26'eH2)::0P'!:0Pf$
U*220('-&Q1'/"# fe//019")&A/%9:9%,W
H09,/+'HL+/*,)'?01;"*"016''0@' S9J:"/'HL)/+6'e5L+1'HL)/+6f
H09,/+'HL+/*,)'?01;"*"016''0@' ?0EE91):'HL)/+6'e5//9L"+;'8/*"["*4f
U*()"(#'%9*(&K*."$ f]9?+&b"-*/9%,&["?92"W
d4
H09,/+'HL+/*,)'?01;"*"016''0@' ?01;+16)*"01'<0P+,'eD"#2'I+:0/"*4'5L+,)*"01f
U*0$%,'$)&c**-#& fQ%"'),&p&Q1-'#+9(?&)*29('(/"W
XD@E d4
<DE dD
DE4 dF
E44 dX
<> dX
D> dD
F> XC
C>
H09,/+'HL+/*,)'?01;"*"016''0@' ?09,*4),;'S00:6'eH*+);4'p'HL:)62"1#';0E"1)1/+f$
c$9:'%"&^(%"$9*$# fT*.&A/%9:9%,&)."--9(?W
H09,/+'HL+/*,)'?01;"*"016''0@' S,"[)*+'>1*+,"0,6'e]0P'8/*"["*4';P+::"1#f$
t = 0ms
t = 1/2t
t = 0ms
t = 1/2t
t = 0ms
t = 1/2t
t = 0ms
t = 1/2t
t = 0ms
t = 1/2t
t = 0ms
t = 1/2t
t = 0ms
t = 0ms
t = 0ms
t = 0ms
t = 0ms
t = 0ms
t = 1/2t
t = 1/2t
t = 1/2t
t = 1/2t
t = 1/2t
t = 1/2t
Fig. 273 Visualizations of sound pressure levels predicted at receiver points using raybased energy propagation at different time intervals (t = 0ms and t = 1/2t).
AH."9?+%")&#*0()&1$"##0$"&-":"-&1$")9/%")&'%&$"/"9:"$&1*9(%#&0#9(?&c'/+,)"$28#&?"*2"%$9/&'/*0#%9/#&"(?9("&f$',H;'#")&"("$?,& 1$*1'?'%9*(W@&AH."9?+%9(?&'11$*I92'%"#&6$"R0"(/,H)"1"()"(%&+02'(&#"(#9%9:9%,@&f^7U&X<XdDH<a&^Qe&<BBXH<kDW
\(9% 7-"2"(% T":"- A/*0#%9/#&Q*0()&T":"-&u)SAv ^(%$9(#9/ K$'(#29##9"
U*()"(#'%9*(&_'$2&uU*v K*."$&S066"$&{*(" 4 E4@BX F@<< St]*0#9(?&u]v ]*0#"&S066"$&{*(" HE
K*."$&S066"$&{*("
U*220('-&Q1'/"#
U*220('-&Q1'/"# 4
St]*0#9(?&u]v ]*0#"&\(9% HE
!tA?$9/0-%0$"&]0;&uAv c0$969/'%9*(&c**-# 4
H3@4E
H3@4E
!tA?$9/0-%0$"&]0;&uAv O+"'%&c-'(%'%9*( 4 3X@4E HD@3
U*()"(#'%9*(&_'$2&uU*v K*."$ 4 EF@D4 HD@FC
U*()"(#'%9*(&_'$2&uU*v K*."$ 4 EF@D4 F@FC
c'%+# O'%"$&c'%+# HE
E3@BC E@FF
c'%+# T*."$&c")"#%$9'(&c'%+# HE ED@C< F@<3
c'%+# T*."$&c'%+#&p&O'%"$&c'%+#& e:"$-', HE E3@F4
c'%+# \11"$&c")"#%$9'(&c'%+# 4
HS]8',+69:*6'L+,'@,)#E+1*'e;38f
This plate exemplifies some of the configuration and the value extraction pipeline used to generate the intrinsic and transmission visibility percentages reported in the chapter. Each diagram visualises an isovist field from representative observer positions, while the adjacent table lists the aggregated scalar visibility value per fragment under two evaluation modes.
To maintain comparability across heterogeneous fragments, observer sampling is held constant: observers are positioned at eye height (~1.5 m) and distributed within navigable floor areas, and each observer emits a fixed set of line-of-sight rays (uniform angular sampling). The tabulated value summarises the resulting observer field into a single scalar per fragment, enabling direct cross-unit comparison in the qualitative analysis.
This isovist-to-scalar reduction follows established practice in isovist field analysis, where spatial legibility is interpreted through consistent observer sampling and aggregation rather than through single-point snapshots.1
The isovist diagrams visualise directional access and occlusion rather than absolute area: elongated lobes indicate long sightlines aligned with openings or corridors, while compact isovists indicate short, interrupted sightlines and high occlusivity. These effects are amplified at the settlement level once adjacent fragments are introduced, which is why the intrinsic and transmission results are reported together rather than merged into a single value.
Cistern
House Unit
Condensation Tower
Communal Spaces
87 Michael Benedikt, “To Take Hold of Space: Isovists and Isovist Fields,” Environment and Planning B: Planning and Design 6, no. 1 (1979): 47–65.
Fig. 274 Isovist diagrams visualizing directional access and occlusion for representative observer positions in units like House Unit, Cistern, Condensation Tower, and Communal Spaces.
Intrinsic versus transmission visibility
b9#9;9-9%,&.'#&/*210%")&%.9/"&1"$&6$'?2"(%@&^(%$9(#9/&:9#9;9-9%,&%$"'%#&"'/+&6$'?2"(%&'#&'(&9#*-'%")'%9'-&0(9%=&#*&%+"&$"1*$%")& 1"$/"(%'?"&$"6-"/%#&*(-,&%+"&6$'?2"(%8#&9(%"$('-&?"*2"%$,&'()&*1"(9(?#@&K$'(#29##9*(&:9#9;9-9%,&$"H":'-0'%"#&%+"&#'2"&*;#"$:"$& #'21-9(?&6$*2&%+"&"I%"$9*$&*6&%+"'/"=&/'1%0$9(?&+*.&1$*I929%,=&9(%"$#%9%9'-&*:"$-'1#&'()&#+'$")&'1"$%0$"#&2*)96,&:9#0'-&'//"##@& K+"&MK$'(#29##9*(N&/*-02(&%+"$"6*$"&$"/*$)#&%+"&("%&/+'(?"&9(&:9#9;9-9%,&1$*)0/")&;,&')`'/"(/,&$"-'%9:"&%*&%+"&9(%$9(#9/&/'#"& f1*#9%9:"&:'-0"#&9()9/'%"&9(/$"'#")&1"$2"';9-9%,&0()"$&/*--9#9*(a&("?'%9:"&:'-0"#&9()9/'%"&*//-0#9*(&'()&1$9:'/,&?'9(W@ HS]8',+69:*6'L+,'@,)#E+1*'e;38f
!tA?$9/0-%0$"&]0;&uAv c0$969/'%9*(&c**-# 4
O+"'%&c-'(%'%9*( 4 3E@E4 <<@dC U*()"(#'%9*(&_'$2&uU*v K*."$
T*."$&c")"#%$9'(&c'%+# HE 3F@<F H3@X< c'%+# T*."$&c'%+#&p&O'%"$&c'%+#& e:"$-',
Spatial Instances Distribution Description
K+"&#/$91%&%'>"#&'&!'%'K$""&*6&c*-,-9("#&'()&6*0$&1$*?$'22"& #/+")0-"#=&U9#%"$(=&]*0#9(?=&A?$9/0-%0$"=&'()&U*()"(#'%9*(& _'$2=&"'/+&)"#/$9;")&;,&1'$'--"-&-9#%#&*6&A$"'#=&^(#%'(/"#=& '()&T":"-#=&'()&9%&$"%0$(#&'&(".&%$""&9(&.+9/+&1*-,-9("#&'$"& ?$*01")&9(%*&/*21'/%&/-0#%"$#&0()"$&#%$9/%&*:"$-'1&'()& 0(9R0"("##&$0-"#@&^%&69$#%&$"*$?'(9#"#&%+"&9(/*29(?&%$""&9(%*& '(&9(%"$('-&9()"I&>",")&;,&%+"&69$#%&%.*&1'%+&/*21*("(%#=& .+"$"&%+"&69$#%&9()"I&60(/%9*(#&'#&'&1$*?$'22"&9)"(%969"$& '()&%+"&#"/*()&'#&'&-":"-&9)"(%969"$@&_*$&$*;0#%("##=&9%&/'/+"#& "'/+&1*-,-9("8#&/"(%$"&1*9(%&'()&":'-0'%"#&/*9(/9)"(/"&0#9(?& '(&…n&%*-"$'(/"=&#*&1-'('$&*:"$-'1=&$'%+"$&%+'(&60--&%+$""& )92"(#9*('-&9(%"$#"/%9*(=&;"/*2"#&%+"&?*:"$(9(?&/*()9%9*(@ _*$&"'/+&1$*?$'22"=&%+"&#/$91%&/*210%"#&'&$"1"%9%9*(& 6'/%*$&6$*2&%+"&1*10-'%9*(&*6&%+"&-":"-&4&;$'(/+&'()&0#"#& 9%&%*&#/'-"&%+"&$"R0"#%")&(02;"$&*6&9(#%'(/"#=&"(#0$9(?&%+'%& /-0#%"$&1$*)0/%9*(&$"2'9(#&1$*1*$%9*('-&%*&':'9-';-"&#%*/>@& 7'/+&#/+")0-"&"(%$,&%+"(&;09-)#&'&/'()9)'%"&1**-&;,&69-%"$9(?& 1*-,-9("#&6$*2&%+""/969")&-":"-&;$'(/+=&*$&6$*2&%+"&1'9$")& -":"-&4&'()&<&;$'(/+"#&.+"(&%+"&%'$?"%&-":"-&9#&3@&7-9?9;9-9%,&9#& 60$%+"$&/*(#%$'9(")&;,&*//01'(/,&;**>>""19(?g&A?$9/0-%0$"& 9#&1$":"(%")&6$*2&#"-"/%9(?&'(,&/"(%$"&'-$"'),&/-'92")=& '()&-":"-&3&)9#%$9;0%9*(#&1$":"(%&$"1"'%")&/"(%$"#&.9%+9(&%+"& /0$$"(%&#"-"/%9*(&/*(%"I%&%*&':*9)&#%'/>9(?&20-%91-"&19/>#&*(& 9)"(%9/'-&…n&/**$)9('%"#@&A&#"/*()&/*(#%$'9(%&-',"$&/*(%$*-#& /$*##H-":"-&*:"$-'1&%+$*0?+&'&?-*;'-&)9/%9*('$,&*6&*//019")& /"(%$"#&%+'%&$"/*$)#&%+"&-":"-&%+'%&69$#%&/-'92")&"'/+&-*/'%9*(a& $"0#"&'/$*##&)966"$"(%&-":"-#&9#&;-*/>")&0(-"##&'&#/+")0-"& "I1-9/9%-,&$"R09$"#&*:"$-'1@&K.*&)"1"()"(/,&/'#"#&"(6*$/"& #0/+&*:"$-'1g&*("&U9#%"$(&)9#%$9;0%9*(&9#&$"#%$9/%")&%*&/"(%$"#& '-$"'),&$"?9#%"$")&'#&/9#%"$(&;'#"#=&'()&*("&]*0#9(?& )9#%$9;0%9*(&'%&-":"-&<&9#&$"#%$9/%")&%*&/"(%$"#&1$":9*0#-,& $"?9#%"$")&6$*2&]*0#9(?&'%&-":"-&4=&%0$(9(?&*:"$-'1&9(%*& '&)9$"/%")&9(+"$9%'(/"&/*()9%9*(&$'%+"$&%+'(&'&?"("$'-& 1"$29##9*(@&^()"1"()"(%-,=&'&?-*;'-&0#")&#"%&?0'$'(%""#& %+'%&(*&1*-,-9("&?"*2"%$,&9#&#"-"/%")&2*$"&%+'(&*(/"=&":"(& 96&/"(%$"&1*9(%#&/*9(/9)"@
O+"(&'&1**-&/'(&#'%9#6,&)"2'()=&)"69(")&'#&A$"'#&%92"#& ^(#%'(/"#=&"'/+&9(#%'(/"&9#&6*$2")&;,&'&/*21'/%("##& +"0$9#%9/g&%+"&#/$91%&19/>#&'&$'()*2&#%'$%9(?&1*-,-9("&'()& %+"(&$"1"'%")-,&#"-"/%#&%+"&$"2'9(9(?&1*-,-9("&/-*#"#%&%*&%+"& ":*-:9(?&/"(%$*9)&*6&%+"&/-0#%"$=&1$*)0/9(?&%9?+%&?$*019(?#& $'%+"$&%+'(&)9#1"$#")&#'21-"#@&Q"-"/%")&"-"2"(%#&'$"& $"2*:")&6$*2&%+"&1**-=&$"?9#%"$")&'#&0#")=&$"/*$)")&'#& *//019")&;,&/"(%$"&1*9(%=&'()=&.+"$"&$"-":'(%=&'11"()")& %*&%+"&/9#%"$(&*$&+*0#9(?&;'#"&#"%#&%+'%&)$9:"&-'%"$&*:"$-'1& /*(#%$'9(%#@&_9('--,=&"'/+&1*-,-9("&9#&.$9%%"(&%*&%+"&*0%10%& 0()"$&'&1'%+&%+'%&$"/*$)#&1$*?$'22"&9)"(%969"$=&*$9?9('-& -":"-&9)"(%969"$=&#/+")0-"&9()"I=&'()&9(#%'(/"&9()"I=&2'>9(?& %+"&/-0#%"$9(?&-*?9/&-"?9;-"&9(&%+"&$"#0-%9(?&%$""@&K+"&Q"")& 9(10%&/*(%$*-#&%+"&#/*1"&*6&#"-"/%9*(g&Q"")&"R0'-&%*&J"$*& /*(#%$'9(#&1**-#&%*&%+"&'/%9:"&1$*?$'22"=&.+9-"&'&(*(H J"$*&Q"")&"(';-"#&$"1"'%';-"&?-*;'-&#'21-9(?&'/$*##& '--&1$*?$'22"#&.9%+*0%&$"-'I9(?&*//01'(/,=&*:"$-'1=&*$& 0(9R0"("##&/*(#%$'9(%#@
Spatial Instances Distribution C#
kk&Z$'##+*11"$&Q/$91%&^(#%'(/" €$"?9*(&\#9(?# 0#9(?&Q,#%"2a 0#9(?&Q,#%"2@T9(Ra 0#9(?&Q,#%"2@U*--"/%9*(#a 0#9(?&Q,#%"2@U*--"/%9*(#@Z"("$9/a 0#9(?&Q,#%"2@!$'.9(?a 0#9(?&[+9(*a 0#9(?&[+9(*@Z"*2"%$,a 0#9(?&Z$'##+*11"$a 0#9(?&Z$'##+*11"$@l"$("-a 0#9(?&Z$'##+*11"$@l"$("-@!'%'a 0#9(?&Z$'##+*11"$@l"$("-@K,1"#a €"()$"?9*(
10;-9/&/-'##&Q/$91%t^(#%'(/"&g&Z]tQ/$91%^(#%'(/"
&&&&1$9:'%"&T9#%Yc*-,-9("~&Q"-"/%U-*#"#%c*-,-9("#fT9#%Yc*-,-9("~& ':'9-';-"=&9(%&/*0(%=&['()*2&$(?^(#%'(/"W &&&&
&&&&&&&&96&f':'9-';-"&ÅÅ&(0--&ƒƒ&':'9-';-"@U*0(%&ÅÅ&4&ƒƒ&/*0(%& YÅ&4W
&&&&&&&&&&&&$"%0$(&(".&T9#%Yc*-,-9("~fWa
&&&&&&&&/*0(%&Å&L'%+@L9(f/*0(%=&':'9-';-"@U*0(%Wa &&&T9#%Yc*-,-9("~&#"-"/%")&Å&(".&T9#%Yc*-,-9("~fWa &&&&&&&&T9#%Yc*-,-9("~&$"2'9(9(?&Å&(".&T9#%Yc*-,-9("~f':'9-';-"Wa
&&&&&&&&9(%&#%'$%^()"I&Å&$(?^(#%'(/"@P"I%f$"2'9(9(?@U*0(%Wa &&&&&&&&c*-,-9("&69$#%c*-,&Å&$"2'9(9(?u#%'$%^()"Iva &&&&&&&&#"-"/%")@A))f69$#%c*-,Wa &&&&&&&&$"2'9(9(?@["2*:"A%f#%'$%^()"IWa
&&&&&&&&.+9-"&f#"-"/%")@U*0(%&Y&/*0(%&qq&$"2'9(9(?@U*0(%&~&4W &&&&&&&&
&&&&&&&&&&&&c*9(%3)&/-0#%"$U"(%$*9)&Å&U'-/0-'%"U"(%$*9)f#"-"/%")Wa &&&&&&&&&&&&)*0;-"&29(!9#%'(/"&Å&)*0;-"@L'Ib'-0"a &&&&&&&&&&&&9(%&("I%^()"I&Å&H<a &&&&&&&&&&&&6*$&f9(%&9&Å&4a&9&Y&$"2'9(9(?@U*0(%a&9ppW &&&&&&&&&&&&
&&&&&&&&&&&&&&&&)*0;-"&)9#%'(/"&Å&$"2'9(9(?u9v@U"(%"$c*9(%fW@ !9#%'(/"K*f/-0#%"$U"(%$*9)Wa &&&&&&&&&&&&&&&&96&f)9#%'(/"&Y&29(!9#%'(/"W &&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&29(!9#%'(/"&Å&)9#%'(/"a &&&&&&&&&&&&&&&&&&&&("I%^()"I&Å&9a &&&&&&&&&&&&&&&&‚ &&&&&&&&&&&‚
if (nextIndex != -1) { selected.Add(remaining[nextIndex]); remaining.RemoveAt(nextIndex); } else break; } return selected; }
private Point3d CalculateCentroid(List<Polyline> polys)
{ if (polys == null || polys.Count == 0) return Point3d. Unset;
Point3d sum = Point3d.Origin; foreach (var poly in polys) sum += poly.CenterPoint(); return sum / polys.Count; }
private void RunScript( DataTree<Polyline> Polylines, List<int> CisternAreas, List<int> CisternInstances, List<int> CisternLevels, List<int> HousingAreas, List<int> HousingInstances, List<int> HousingLevels, List<int> AgricultureAreas, List<int> AgricultureInstances, List<int> AgricultureLevels, List<int> CondFarmAreas, List<int> CondFarmInstances, List<int> CondFarmLevels, int Seed, ref object ClusteredPolylines) { const double COORD_TOLERANCE = 1e-6; DataTree<Polyline> outputTree = new DataTree<Polyline>(); Random rng = (Seed == 0) ? new Random() : new Random(Seed);
var pointComparer = new Point3dComparer(COORD_ TOLERANCE);
var occupiedCenters = new Dictionary<Point3d, int>(pointComparer);
var cisternBaseCenters = new HashSet<Point3d>(pointComparer); var housingY0Z0Centers = new HashSet<Point3d>(pointComparer);
var uniqueCenterPoints = new Dictionary<Polyline, Point3d>();
List<SystemGroupConfig> configs = new List<SystemGroupConfig> { new SystemGroupConfig { XValue = 2, Areas = CisternAreas, Instances = CisternInstances, Levels = CisternLevels }, new SystemGroupConfig { XValue = 3, Areas = HousingAreas, Instances = HousingInstances, Levels = HousingLevels }, new SystemGroupConfig { XValue = 4, Areas = AgricultureAreas, Instances = AgricultureInstances, Levels = AgricultureLevels }, new SystemGroupConfig { XValue = 5, Areas = CondFarmAreas, Instances = CondFarmInstances, Levels = CondFarmLevels } };
var availablePolylines = new Dictionary<int, Dictionary<int, List<Polyline>>>(); for (int i = 0; i < Polylines.BranchCount; i++) { GH_Path path = Polylines.Path(i); if (path.Length < 2) continue; int x = path[0]; int y = path[1];
if (!availablePolylines.ContainsKey(x)) availablePolylines[x] = new Dictionary<int, List<Polyline>>(); if (!availablePolylines[x].ContainsKey(y)) availablePolylines[x][y] = new List<Polyline>();
var branchPolys = Polylines.Branch(i); availablePolylines[x][y].AddRange(branchPolys); foreach (var poly in branchPolys) if (!uniqueCenterPoints.ContainsKey(poly)) uniqueCenterPoints[poly] = poly.CenterPoint(); }
const double SCALE_DIVISOR = 400.0; var repetitionFactors = new Dictionary<int, int>(); Func<int, int> GetCountForX0Branch = (x) => { if (!availablePolylines.ContainsKey(x)) return 0; if (!availablePolylines[x].ContainsKey(0)) return 0; return availablePolylines[x][0].Count; };
foreach (var xValue in new int[] { 2, 3, 4, 5 }) { int totalCountX0 = GetCountForX0Branch(xValue); int factor = (int)Math.Floor(totalCountX0 / SCALE_ DIVISOR); repetitionFactors[xValue] = factor; }
var usedPolylines = new HashSet<Polyline>();
foreach (var config in configs)
{ if (!availablePolylines.ContainsKey(config.XValue)) continue; int repetitionFactor = repetitionFactors[config.XValue]; if (repetitionFactor == 0) continue; for (int z = 0; z < config.Areas.Count; z++) { int areasToSelect = config.Areas[z]; int instanceCount = config.Instances[z] * repetitionFactor; int targetLevel = config.Levels[z];
List<int> sourceYIndices = new List<int>(); if (targetLevel == 3) sourceYIndices.AddRange(new[] { 0, 1 }); else sourceYIndices.Add(targetLevel);
bool requiresOverlap = false; HashSet<Point3d> requiredBaseCenters = null; if (config.XValue == 2 && z == 2) { requiresOverlap = true; requiredBaseCenters = cisternBaseCenters; } else if (config.XValue == 3 && targetLevel == 1) { requiresOverlap = true; requiredBaseCenters = housingY0Z0Centers; } var currentSelectionCenters = new HashSet<Point3d>(pointComparer);
bool isLevel3Distribution = config.Levels[z] == 3; bool isAgriculture = config.XValue == 4;
List<Polyline> pool = new List<Polyline>(); // *** KEY UPDATE: global selection when Seed ≠ 0 *** var sourceXKeys = (Seed == 0) ? new List<int> { config.XValue } : availablePolylines.Keys.ToList();
foreach (int xKey in sourceXKeys)
{ if (!availablePolylines.ContainsKey(xKey)) continue;
foreach (int y in sourceYIndices)
{ if (!availablePolylines[xKey].ContainsKey(y)) continue;
foreach (var poly in availablePolylines[xKey][y])
{ if (usedPolylines.Contains(poly)) continue; Point3d center = uniqueCenterPoints[poly]; if (isLevel3Distribution && currentSelectionCenters. Contains(center)) continue; if (isAgriculture && occupiedCenters. ContainsKey(center)) continue;
bool isOccupiedByDifferentLevel = occupiedCenters.TryGetValue(center, out int occupyingY) && occupyingY != y; if (isOccupiedByDifferentLevel && !requiresOverlap) continue; if (requiresOverlap && !requiredBaseCenters. Contains(center)) continue; pool.Add(poly); if (isLevel3Distribution) currentSelectionCenters.Add(center); } } }
int totalRequired = areasToSelect * instanceCount; if (pool.Count < totalRequired) continue; for (int n = 0; n < instanceCount; n++) { List<Polyline> cluster = SelectClosestPolylines(pool, areasToSelect, rng);
foreach (var poly in cluster) { usedPolylines.Add(poly); pool.Remove(poly);
int originalY = -1; GH_Path polyPath = null; for (int j = 0; j < Polylines.BranchCount; j++)
{ if (Polylines.Branch(j).Contains(poly)) { polyPath = Polylines.Path(j); break; } }
if (polyPath != null && polyPath.Length >= 2) originalY = polyPath[1];
Point3d center = uniqueCenterPoints[poly]; if (!occupiedCenters.ContainsKey(center)) occupiedCenters.Add(center, originalY);
if (config.XValue == 2 && (z == 0 || z == 1)) cisternBaseCenters.Add(center); if (config.XValue == 3 && originalY == 0 && z == 0)
housingY0Z0Centers.Add(center);
GH_Path newPath = new GH_Path(new int[] { config.XValue, originalY, z, n }); outputTree.Add(poly, newPath); } } } }
ClusteredPolylines = outputTree; } } public class SystemGroupConfig { public int XValue { get; set; } public List<int> Areas { get; set; } public List<int> Instances { get; set; } public List<int> Levels { get; set; } }
public class Point3dComparer : IEqualityComparer<Point3d> { private readonly double tolerance; public Point3dComparer(double tol) { tolerance = tol; }
public bool Equals(Point3d p1, Point3d p2) { return Math.Abs(p1.X - p2.X) < tolerance && Math.Abs(p1.Y - p2.Y) < tolerance; }
public int GetHashCode(Point3d p) { long x = (long)Math.Round(p.X / tolerance); long y = (long)Math.Round(p.Y / tolerance); unchecked { int hash = 17; hash = hash * 23 + x.GetHashCode(); hash = hash * 23 + y.GetHashCode(); return hash; } } }
Quality Calculator Description
K+"&#/$91%&R0'(%969"#&R0'-9%,&:'-0"#&'/$*##&'(&'??$"?'%9*(& *6'/"#&.+*#"&9)"(%969/'%9*(&9#&"(/*)")&9(&%+"&9(10%&^!& -9#%=&'()&9%&*0%10%#&'&!'%'K$""&*6&/*21*#9%"&R0'-9%,&#/*$"#& '-9?(")&.9%+&%+"&;$'(/+&#%$0/%0$"&*6&%+"&'??$"?'%9*(@&^!=& ^(%$9(#9/m=&'()&["-'%9:"m&%*?"%+"$&)"69("&'&-**>01&#,#%"2&9(& .+9/+&"'/+&9)"(%969"$&/*$$"#1*()#&%*&'(&9(%$9(#9/&R0'-9%,&:'-0"& '()&'&$"-'%9:"&R0'-9%,&:'-0"=&'--*.9(?&%+"&#/$91%&%*&$"%$9":"& %+"&$"-":'(%&2"%$9/#&6*$&'(,&?9:"(&;$'(/+&*$&9%"2&%+$*0?+& '&1'%+H2'%/+9(?&$*0%9("@&K+9#&2'%/+9(?*$%#&.9-)/'$)& '))$"##9(?&%+$*0?+&%+"&0#"&*6&MˆN&9(&%+"&^!&1'%%"$(#=&#*&%+'%& '	(?-"&9)"(%969"$&/'(&*1"$'%"&'#&'&%"21-'%"&6*$&20-%91-"& 1'%+&9(#%'(/"#=&'()&%+"&/*$$"/%&9(%$9(#9/&*$&$"-'%9:"&:'-0"& 9#&#"-"/%")&;,&/*21'$9(?&%+"&;$'(/+&9()9/"#&'?'9(#%&%+"#"& 1'%%"$(#@
K+"&'??$"?'%9*(&9%#"-6&9#&1$*:9)")&%+$*0?+&m0'-9%,U'-/=& .+9/+&-9#%#=&1"$&;$'(/+=&%+"&/*(#%9%0"(%'/"&9)"(%969"$#& %+'%&1'$%9/91'%"&9(&%+'%&'??$"?'%9*(=&.+9-"&b*-02"L0-%91-9"$& 1$*:9)"#&'&1'$'--"-&-9#%&*6&."9?+%#&6*$&%+"&#'2"&;$'(/+@& K+"#"&20-%91-9"$#&'$"&0()"$#%**)&'#&:*-02"%$9/&*$&9(%"(#9%,& #/'-'$#&%+'%&2*)0-'%"&+*.&#%$*(?-,&"'/+&/*(#%9%0"(%& #1'/"&/*(%$9;0%"#&%*&%+"&'??$"?'%"&R0'-9%,&#/*$"=&.9%+& %+"9$&$'(?"#&$"6-"/%9(?&%+"&9(%"()")&9(%"$1$"%'%9*(&*6&"'/+& R0'-9%,&)*2'9(g&'/*0#%9/&R0'-9%9"#&'$"&#/'-")&.9%+9(&<&%*&D=& %+"$2'-&'()&+029)9%,&R0'-9%9"#&.9%+9(&<&%*&3=&'()&:9#9;9-9%,& 0#"#&'&69I")&20-%91-9"$&*6&<@&_*$&"'/+&;$'(/+=&%+"&#/$91%&69$#%& $"%$9":"#&%+"&9(%$9(#9/&R0'-9%,&*6&%+"&'??$"?'%9*(&;,&2'%/+9(?& %+"&;$'(/+&1'%+&%*&%+"&9(%$9(#9/&^!&1'%%"$(#@&^%&%+"(&/*210%"#& %+"&."9?+%")&/*(%$9;0%9*(&*6&%+"&/*(#%9%0"(%#&;,&20-%91-,9(?& "'/+&/*(#%9%0"(%8#&$"-'%9:"&R0'-9%,&;,&9%#&/*$$"#1*()9(?& 20-%91-9"$&'()&':"$'?9(?&%+"&$"#0-%#&'/$*##&%+"&;$'(/+@&K+"& 69('-&;$'(/+&#/*$"&9#&6*$2")&;,å(?&%+"&9(%$9(#9/&;$'(/+& :'-0"&'()&%+"&':"$'?")&."9?+%")&$"-'%9:"&/*(%$9;0%9*(=& '()&%+9#&%*%'-&9#&.$9%%"(&%*&%+"&*0%10%&%$""&'%&%+"&#'2"&1'%+@& ^(&"66"/%=&%+"&#/$91%&#"1'$'%"#&R0'-9%9"#&%+'%&;"-*(?&%*&%+"& '??$"?'%9*(&'#&'&.+*-"&6$*2&R0'-9%9"#&%+'%&"2"$?"&6$*2&9%#& 1'$%#=&'()&9%&/*2;9("#&%+"2&%+$*0?+&'&/*(#9#%"(%&."9?+%")& ':"$'?9(?&1$*/")0$"&%+'%&$"2'9(#&-"?9;-"&9(&%+"&$"#0-%9(?& %$""&#%$0/%0$"@
Quality Calculator C#
kk&Z$'##+*11"$&Q/$91%&^(#%'(/" €$"?9*(&\#9(?# 0#9(?&Q,#%"2a 0#9(?&Q,#%"2@T9(Ra 0#9(?&Q,#%"2@U*--"/%9*(#a 0#9(?&Q,#%"2@U*--"/%9*(#@Z"("$9/a 0#9(?&Q,#%"2@!$'.9(?a 0#9(?&[+9(*a 0#9(?&[+9(*@Z"*2"%$,a 0#9(?&Z$'##+*11"$a 0#9(?&Z$'##+*11"$@l"$("-a 0#9(?&Z$'##+*11"$@l"$("-@!'%'a 0#9(?&Z$'##+*11"$@l"$("-@K,1"#a €"()$"?9*(
10;-9/&/-'##&Q/$91%t^(#%'(/"&g&Z]tQ/$91%^(#%'(/" &&1$9:'%"&:*9)&[0(Q/$91%f T9#%Y#%$9(?~&^!= T9#%Y)*0;-"~&^(%$9(#9/m= T9#%Y)*0;-"~&["-'%9:"m= !'%'K$""Y#%$9(?~&m0'-9%,U'-/= !'%'K$""Y)*0;-"~&b*-02"L0-%91-9"$= $"6&*;`"/%&m0'-9%,W
&&
&&&&kk&HHHHHHHHHH&bAT^!AK^eP&HHHHHHHHHH
&&&&96&f^!@U*0(%&„Å&^(%$9(#9/m@U*0(%&ƒƒ&^!@U*0(%&„Å&["-'%9:"m@ U*0(%W
&&&&
&&&&&&A))[0(%92"L"##'?"fZ]t[0(%92"L"##'?"T":"-@7$$*$= &&&&&&&&M^!=&^(%$9(#9/m=&'()&["-'%9:"m&-9#%#&20#%&+':"&%+"&#'2"& -"(?%+@NWa
&&&&&&$"%0$(a &&&&‚
&&&&kk&HHHHHHHHHH&S\^T!&Teel\c&KAST7&HHHHHHHHHH &&&&!9/%9*('$,Y#%$9(?=&)*0;-"~&9(%$9(#9/L'1&Å&(".& !9/%9*('$,Y#%$9(?=&)*0;-"~fWa
&&&&!9/%9*('$,Y#%$9(?=&)*0;-"~&$"-'%9:"L'1&Å&(".& !9/%9*('$,Y#%$9(?=&)*0;-"~fWa
&&&&6*$&f9(%&9&Å&4a&9&Y&^!@U*0(%a&9ppW &&&&
&&&&&&#%$9(?&>",&Å&^!u9v@K$92fWa &&&&&&9(%$9(#9/L'1u>",v&Å&^(%$9(#9/mu9va &&&&&&$"-'%9:"L'1u>",v&&Å&["-'%9:"mu9va &&&&‚
&&&&!'%'K$""Y)*0;-"~&*0%K$""&Å&(".&!'%'K$""Y)*0;-"~fWa
// ---------------------------------------------------
// HELPERS
// ---------------------------------------------------
Func<string, string[], bool> wildcardMatch = (pattern, indices) =>
{ string[] p = pattern.Trim(‘{‘, ‘}’).Split(‘;’); if (p.Length != indices.Length) return false; for (int i = 0; i < p.Length; i++)
{ if (p[i] == “?”) continue; if (p[i] != indices[i]) return false; } return true;
};
Func<string, double> getIntrinsic = (pathStr) =>
{ string[] idx = pathStr.Trim(‘{‘, ‘}’).Split(‘;’);
foreach (var kv in intrinsicMap)
{ if (wildcardMatch(kv.Key, idx)) return kv.Value; } return 0.0; };
Func<string, double> getRelative = (pathStr) =>
{ string[] idx = pathStr.Trim(‘{‘, ‘}’).Split(‘;’); foreach (var kv in relativeMap)
{ if (wildcardMatch(kv.Key, idx)) return kv.Value; } return 0.0;
foreach (GH_Path path in QualityCalc.Paths)
{ List<string> items = QualityCalc.Branch(path); List<double> volumes = VolumeMultiplier.Branch(path);
if (items.Count != volumes.Count)
{ AddRuntimeMessage(GH_RuntimeMessageLevel.Error, $”VolumeMultiplier does not match QualityCalc at branch {path}.”); outTree.Add(0.0, path); continue; }
// 1. intrinsic for the branch double intrinsicVal = getIntrinsic(path.ToString());
// 2. compute AVERAGE(relativeQ * volume) double accumulator = 0.0; for (int i = 0; i < items.Count; i++) { double rel = getRelative(items[i].Trim()); double vol = volumes[i]; accumulator += rel * vol; }
double avgRelative = (items.Count > 0) ? accumulator / items.Count : 0.0;
// 3. final total double total = intrinsicVal + avgRelative; outTree.Add(total, path); }
Quality = outTree; } }
Path Network Formation Description
K+9#&#/$91%&/*(#%$0/%#&'&$*0%")&/9$/0-'%9*(&?$'1+&6$*2&'&%$""& *6'%9'-&9(#%'(/"&/"(%"$1*9(%#&;,&69$#%&"#%';-9#+9(?&'	(?-"& ?-*;'-&:9#9%'%9*(&*$)"$&'()&%+"(&$*0%9(?&"'/+�//"##9:"& #"?2"(%&%+$*0?+&'&/*(#%$'9(")&#"%&*6&+*1&1*9(%#@&K+"&9(10%& c*9(%#&%$""&9#&9(%"$1$"%")&'#'%9'-&9(#%'(/"&/"(%"$1*9(%#&%+'%& $"%'9(&%+"9$&*$9?9('-&Z]tc'%+&'))$"##"#=&%+"(&6-'%%"(")&#*& *$)"$9(?&9#&$"#*-:")&'/$*##&%+"&"(%9$"&)'%'#"%&$'%+"$&%+'(& 1"$&;$'(/+@&K+"&%$':"$#'-&;"?9(#&'%&%+"&/"(%"$1*9(%&.9%+&%+"& -*."#%&n&/**$)9('%"=&0#9(?&…&'#&'&%9"H;$"'>"$=&'()&1$*/"")#& :9'&'&?$""),&("'$"#%H("9?+;*0$&#"'$/+&9(&%+"&…n&1-'("=& $"1"'%")-,&#"-"/%9(?&%+"&/-*#"#%&0(:9#9%")&/"(%"$1*9(%@&K+9#& 1$*)0/"#&'	(?-"&*$)"$")&#"R0"(/"&%+'%&1$9*$9%9#"#&#+*$%& -*/'-&#%"1#@
Z"*2"%$,&9#&%+"(&?"("$'%")&;"%.""(&/*(#"/0%9:"&/"(%"$1*9(%#& 9(&%+'%&#"R0"(/"@&_*$&"'/+&#"?2"(%=&%+"&#/$91%&'%%"21%#&%*& $*0%"&%+$*0?+&]*1c*9(%#&0()"$&'&#%$9/%&)"#/"(%&$0-"g&'&+*1& 9#&')29##9;-"&*(-,&96&9%&9#&#%$9/%-,&/-*#"$&%*&%+"&)"#%9('%9*(& %+'(&%+"&/0$$"(%&1*#9%9*(=&.+9/+&?0'$'(%""#&2*(*%*(9/& 1$*?$"##&'()&1$":"(%#&-**19(?@&A2*(?&')29##9;-"&+*1#=&9%& #"-"/%#&%+"&*("&/-*#"#%&%*&%+"&/0$$"(%&1*#9%9*(&9(&…n=&'11"()#& 9%&%*&%+"&1*-,-9("=&'()&$"2*:"#&9%&6$*2&%+"&#"?2"(%8#&+*1& 1**-&#*&9%&/'((*%&;"&$"0#")&.9%+9(&%+"&#'2"&$*0%"@&O+"(& (*&')29##9;-"&+*1&"I9#%#=&%+"&#"?2"(%&/-*#"#&.9%+&'&)9$"/%& /*(("/%9*(&%*&%+"&)"#%9('%9*(&/"(%"$1*9(%@&K+"&*0%10%&9#& %+"$"6*$"&'&6-'%%"(")&-9#%&*6&1*-,-9("#=&*("&1"$&/*(#"/0%9:"& 1'9$&9(&%+"&?-*;'-&#"R0"(/"=&"(/*)9(?&-*/'--,&?$""),=& 2*(*%*("&$*0%9(?&%+$*0?+&%+"&+*1&69"-)@
^(&1'$'--"-=&%+"&#/$91%&*0%10%#&'&6-'%&-9#%&*6&Z]tc'%+&#%$9(?#& *$)"$")&;,&%+"&:9#9%'%9*(&#"R0"(/"=&1$*:9)9(?&'&)9$"/%& 2'119(?&;"%.""(&%+"&$*0%")&1'%+&'()&%+"&*$9?9('-&)'%'& #%$0/%0$"@&e:"$'--=&%+"&2"%+*)&/*01-"#&'&?-*;'-&("'$"#%H ("9?+;*0$&*$)"$9(?&*6'%9'-&9(#%'(/"#&.9%+&'&-*/'--,& /*(#%$'9(")&$*0%9(?&2"/+'(9#2&%+'%&1$9*$9%9#"#&#+*$%&#%"1#& '()&?0'$'(%""#&1$*?$"##&%*.'$)&"'/+&%'$?"%@
Path Network Formation C#
kk&Z$'##+*11"$&Q/$91%&^(#%'(/" €$"?9*(&\#9(?# 0#9(?&Q,#%"2a 0#9(?&Q,#%"2@T9(Ra 0#9(?&Q,#%"2@U*--"/%9*(#a 0#9(?&Q,#%"2@U*--"/%9*(#@Z"("$9/a 0#9(?&Q,#%"2@!$'.9(?a 0#9(?&[+9(*a 0#9(?&[+9(*@Z"*2"%$,a 0#9(?&Z$'##+*11"$a 0#9(?&Z$'##+*11"$@l"$("-a 0#9(?&Z$'##+*11"$@l"$("-@!'%'a 0#9(?&Z$'##+*11"$@l"$("-@K,1"#a €"()$"?9*( 10;-9/&/-'##&c'%+c*9(%
&&&&10;-9/&c*9(%3)&c*9(%&&?"%a&#"%a&‚ &&&&10;-9/&Z]tc'%+&c'%+&&?"%a&#"%a&‚ &&&&10;-9/&9(%&^()"I&&?"%a&#"%a&‚&kk&e$9?9('-&9()"I&.9%+9(&%+"& ;$'(/+
&&&&kk&Q%$9(?&6*$2'%&6*$&%+"&!'%'&*0%10%g&P*.&*(-,&$"%0$(#&%+"& 1'%+&#%$9(?@
&&&&10;-9/&#%$9(?&!'%'Q%$9(? &&&&
&&&&&&&&?"%&&$"%0$(&c'%+@K*Q%$9(?fWa&‚ &&&&‚
10;-9/&/-'##&Q/$91%t^(#%'(/"&g&Z]tQ/$91%^(#%'(/"
&&&&kk&]"-1"$&60(/%9*(&%*&/'-/0-'%"&D!&70/-9)"'(&)9#%'(/"&f…n& 1-'("W
&&&&1$9:'%"&)*0;-"&Z"%!9#%'(/"D!fc*9(%3)&1<=&c*9(%3)&1DW &&&&
&&&&&&&&)*0;-"&)I&Å&1<@…&H&1D@…a &&&&&&&&)*0;-"&),&Å&1<@n&H&1D@na &&&&&&&&$"%0$(&L'%+@QR$%f)I&s&)I&p&),&s&),Wa &&&&‚
&&&&kk&K+"&[0(Q/$91%&2"%+*)&(*.&%'>"#&'(&'))9%9*('-&9(10%&6*$& %+"&]*1c*9(%# &&&&1$9:'%"&:*9)&[0(Q/$91%f !'%'K$""Yc*9(%3)~&c*9(%#= T9#%Yc*9(%3)~&]*1c*9(%#= $"6&*;`"/%&e0%10%c*-,-9("#= $"6&*;`"/%&!'%'W &&&&
&&&&&&&&96&fc*9(%#&ÅÅ&(0--&ƒƒ&c*9(%#@S$'(/+U*0(%&ÅÅ&4&ƒƒ&]*1c*9(%#&
{ if (Points == null || Points.BranchCount == 0 || HopPoints == null)
{
AddRuntimeMessage(GH_RuntimeMessageLevel. Warning, “Input point tree or HopPoints list is empty or null.”); OutputPolylines = null; Data = null; return; }
// --- STAGE 1: Calculate Global Sequence S (Greedy Nearest Neighbor) ---
List<PathPoint> allPathPoints = new List<PathPoint>(); for (int i = 0; i < Points.BranchCount; i++)
{ GH_Path path = Points.Path(i); List<Point3d> branchPoints = Points.Branch(i); for (int j = 0; j < branchPoints.Count; j++)
{ allPathPoints.Add(new PathPoint { Point = branchPoints[j], Path = path, Index = j }); }
} if (allPathPoints.Count < 2)
{
AddRuntimeMessage(GH_RuntimeMessageLevel. Warning, “Fewer than two total path-defining points found.”); OutputPolylines = null; Data = null; return;
}
// Find the Starting Point (Lowest Y, then Lowest X) PathPoint currentPathPoint = allPathPoints .OrderBy(pp => pp.Point.Y) .ThenBy(pp => pp.Point.X) .First();
// Execute Greedy Nearest Neighbor Pathing to get the full sequence S
List<PathPoint> unvisited = new List<PathPoint>(allPathPoints); List<PathPoint> finalPath = new List<PathPoint>(); //
Sequence S (This is the required order)
finalPath.Add(currentPathPoint); unvisited.Remove(currentPathPoint);
while (unvisited.Count > 0)
{ PathPoint nearestNeighbor = null; double minDistance = double.MaxValue; foreach (var candidate in unvisited) { double distance = GetDistance2D(currentPathPoint. Point, candidate.Point); if (distance < minDistance) { minDistance = distance; nearestNeighbor = candidate; } }
if (nearestNeighbor != null)
{ currentPathPoint = nearestNeighbor; finalPath.Add(currentPathPoint); unvisited.Remove(currentPathPoint); } else { break; } }
// --- STAGE 2: Generate Constrained Polylines (Local Routing) ---
List<Polyline> outputPolylines = new List<Polyline>(); // Iterate through the determined sequence S (from S_i to S_{i+1}) for (int i = 0; i < finalPath.Count - 1; i++)
{ Point3d startPoint = finalPath[i].Point; Point3d destinationPoint = finalPath[i + 1].Point;
// List of available hop points for this segment’s journey List<Point3d> availableHops = new List<Point3d>(HopPoints);
Point3d currentPoint = startPoint;
Polyline polySegment = new Polyline(); polySegment.Add(currentPoint);
// Inner Loop: Greedy Descent while (true)
{ Point3d bestNextHop = Point3d.Unset; double minDistanceToCurrent = double.MaxValue;
// Calculate the distance from the current point to the destination
double currentRemainingDistance = GetDistance2D(currentPoint, destinationPoint);
// Find the best hop that is strictly closer to the destination for (int k = availableHops.Count - 1; k >= 0; k--)
{ Point3d candidateHop = availableHops[k];
// 1. Check descent condition: Is the hop closer to the destination?
double hopRemainingDistance = GetDistance2D(candidateHop, destinationPoint);
if (hopRemainingDistance < currentRemainingDistance)
{ // Condition met. Now check condition 2: Is it the closest hop to the current point? double distanceToCurrent = GetDistance2D(currentPoint, candidateHop);
if (distanceToCurrent < minDistanceToCurrent)
{ minDistanceToCurrent = distanceToCurrent; bestNextHop = candidateHop; } } }
if (bestNextHop.IsValid)
{ // A valid, descending hop was found. polySegment.Add(bestNextHop); currentPoint = bestNextHop; // Remove the hop point so it cannot be used again in this S_i to S_{i+1} segment availableHops.Remove(bestNextHop); } else
{ // No valid hop found that moves closer to the destination. Connect directly. break;
// Final connection to destination polySegment.Add(destinationPoint); outputPolylines.Add(polySegment);
// --- STAGE 3: Generate Data Output (Flat List, Sorted by Path Sequence) ---
List<string> dataList = new List<string>();
// The order of elements added to the list reflects the generated path sequence (finalPath) foreach (var pathPoint in finalPath)
{ // Now only adding the path string, e.g., “{0;0}” dataList.Add(pathPoint.DataString);
// --- STAGE 4: Assign Outputs ---
OutputPolylines = outputPolylines; // Flattened list of Polylines
Data = dataList; // FLAT list of original path strings, ordered by sequence
AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, $”Successfully generated {outputPolylines.Count} Polylines using constrained Greedy Descent via {HopPoints.Count} hop points. Pathing sequence found for {finalPath.Count} points. Data output as a flat list of original paths, ordered by path sequence.”);
K+"&9(%"?"$#&1$*)0/")&;,&%+"&/"--0-'$&'0%*2'%'&1$*/"##& ."$"&/'$$9")&6*$.'$)&'#&0(9%&9)"(%969"$#&6*$&%+"�#"R0"(%& $"'##"2;-,&.*$>6-*.=&"#%';-9#+9(?&'&#+'$")&9()"I9(?&#,#%"2& ;"%.""(&%"$$9%*$9'-&'--*/'%9*(&'()&0$;'(&'??$"?'%9*(@&S,& $"0#9(?&%+"&#'2"&)9#/$"%"&-';"-#&'/$*##&;*%+&1$*/")0$"#=& %+"&1$*`"/%&2'9(%'9(#&/*(%9(09%,&;"%.""(&%+"&-*?9/&%+'%& )9#%$9;0%"#&#,#%"2#&'%&%+"&-'()#/'1"&#/'-"&'()&%+"&-*?9/& %+'%&/*21*#"#'%9'-&0(9%#&'%&%+"&'$/+9%"/%0$'-&#/'-"@& O9%+9(&%+9#&/*(:"(%9*(=&%+"&69$#%&1'%+&9(%"?"$&"(/*)"#&%+"& 1$*?$'22"&6'29-,g&D&)"#9?('%"#&/9#%"$(&0(9%#=&3&+*0#9(?& 0(9%#=&F&'?$9/0-%0$'-&0(9%#=&'()&E&/*()"(#'%9*(&6'$2&0(9%#@& K+"&#"/*()&1'%+&9(%"?"$"/969"#&:"$%9/'-&1*#9%9*(&.9%+9(&%+"& #"/%9*(=&.+"$"&4&/*$$"#1*()#&%*�%"$$'("'('/"=&<&%*& ?$*0()&-":"-'/"=&'()&D&%*&*:"$?$*0()'/"@&K+"&%+9$)& 9(%"?"$&)"69("#&%+"&9(%"$('-&%,1*-*?9/'-&/'%"?*$,&*6&"'/+& 1$*?$'22"&6'29-,=&"(';-9(?&"'/+&#,#%"2&%*&;"�)9:9)")& 9(%*&60(/%9*('-&/*21*("(%#&)0$9(?&$"'##"2;-,@&_*$&/9#%"$(#=& /'%"?*$,&4&)"(*%"#&*1"('/"#=&<&/*220('-'/"#&'%& ?$*0()&-":"-=&D&/*220('-'/"#&'%�%"$$'("'(&-":"-=&'()& 3&.'%"$&#%*$'?"@&_*$&+*0#9(?=&/'%"?*$,&4&)"(*%"#&1$9:'%"& R0'$%"$#=&<&10;-9/&R0'$%"$#=&'()&D&%+"&/*()"(#'%9*(&%*."$@& _*$&'?$9/0-%0$"=&/'%"?*$,&4&)"(*%"#&10$969/'%9*(&1**-#=&<& .+"'%&1-'(%'%9*(#=&'()&D&1'-2&1-'(%'%9*(#@&_*$&/*()"(#'%9*(& 6'$2#=&/'%"?*$,&4&)"(*%"#&/*()"(#'%9*(&%*."$#@&_9('--,=&%+"& 6*0$%+&'()&-'#%&9(%"?"$&$"/*$)#&%+"&9(#%'(/"&(02;"$&.9%+9(& "'/+&%,1*-*?9/'-&/'%"?*$,=&'--*.9(?&20-%91-"&*//0$$"(/"#&*6& %+"&#'2"'/"&%,1"&%*&;"&%$'/>")=&#"-"/%")=&'()&'##"2;-")& .9%+*0%&'2;9?09%,@
53.613545 30.914241 38.902702 21.605755
{3;0;0;21} 52.667191 31.921713 40.335165 19.20192
{3;0;0;22} 52.875635
Qualitative Metrics, Post-Algebraic Synthesis
1st Settlement
Spaces
{2;0;0;0} 53.779401 32.584696 46.875691 25.379069
{2;0;2;0} 62.611671 27.528077 47.945082 13.749577
{2;0;2;1} 61.865304 28.068962 47.019084 13.715357
{2;0;2;2} 61.843285 28.385807 45.268541 12.499791
{2;0;3;0} 50.077043 22.491826 99.383826 15.816391
{2;0;3;1} 51.984174 22.166043 96.927478 21.511496
{2;0;3;2} 52.310551 22.400493 97.233362 31.879826
{2;1;0;0} 55.713739 31.336739 51.292 31.509096
{2;1;0;1} 55.713739 31.336739 51.292 31.509096
{2;1;0;2} 52.142188 29.919435 53.399565 30.994067
{2;1;1;0} 49.655227 28.283585 45.869942 2.179061
{2;1;1;1} 49.631988 27.206696 47.617081 22.044368
{2;1;1;2} 50.219826 28.183227 43.964802 9.430794
{3;0;0;0} 51.959375 31.79234 39.652775 8.703412
{3;0;0;1} 53.497255 30.316919 40.912447 15.519282
{3;0;0;2} 52.618768 31.568696 38.107623 17.54739
{3;0;0;3} 54.172498 31.736925 35.222182 18.351945
{3;0;0;4} 53.065083 31.767486 38.834166 17.827943
{3;0;0;5} 54.254591 31.426383 36.821443 13.391077
{3;0;0;6} 51.351449 31.575295 40.429082 20.286184
{3;0;0;7} 53.445862 31.092913 37.243232 15.891065
{3;0;0;8} 53.673087 31.697748 36.361322 10.251388
{3;0;0;9} 51.867438 31.403652 39.784936 17.317398
{3;0;0;10} 52.38637 31.329554 39.564641 14.092449
{3;0;0;11} 53.809471 31.132819 38.878623 14.607038
{3;0;0;12} 52.821913 31.331022 39.99 12.417497
{3;0;0;13} 53.702708 30.581292 42.092099 11.103138
{3;0;0;14} 54.354976 31.912377 33.878589 16.540763
{3;0;0;15} 52.515374 32.003217 38.280957 18.8888
{3;0;0;16} 53.407357 30.797583 39.652974 21.506266
{3;0;0;17} 51.567902 30.814587 42.715348 16.052507
{3;0;0;18} 55.30999 30.679082 40.931903 13.80686
{3;0;0;19} 53.414174 31.794796 37.788548 17.315165
{3;0;0;20} 53.613545 30.914241 38.902702 21.605755
{3;0;0;21} 52.667191 31.921713 40.335165 19.20192
{3;0;0;22} 52.875635 31.067229 39.743919 22.10677
{3;0;0;23} 54.676443 31.204809 38.573948 8.770887
{3;0;0;24}
{3;0;0;26}
{3;0;0;27} 54.91219
{3;0;0;28}
{3;0;0;29}
{3;0;0;30}
{3;0;0;31}
{3;0;0;32}
{3;0;0;33}
{3;0;0;37}
{3;0;0;38} {3;0;0;39}
{3;1;1;2} 54.753424
{3;1;1;3}
{3;1;1;4}
{3;1;1;5}
{3;1;1;6}
{3;1;1;7}
{3;1;1;8} {3;1;1;9}
{3;1;1;16}
{3;1;1;19}
!'#,#,#,$% &'("+))+* '$(+)""+" &"(&))-*+ "$(,&'.&
!'#,#,#,,% &'(.,*"'' '$($&'"-* &"(,","+* ",("*$$.'
!'#,#,#,"% &+($"$$&" '$("$$$&" &'(."",*, ,.(-)*"-"
!'#,#,#,'% &"(-,.&&) '$($,$)-' &"(+&""$* "$(,-+*$+
!'#,#,#,+% &'(+.&'." "*(''$+++ &&(&.''"+ ,'(')*...
!'#,#,#,&% &'("*"$"" '$('.)'') &'(+'.)'* "$()$+*'&
!'#,#,#,.% &"(+&*"*. ',(,"*."- &,(.).".* ,.(,**,'&
6&*7!%**0%/%8*
!'#,#,#,)% &,(-'&+&& '$($)'*.- &'("-$.+- ,-(&*&""-
!"#$%& '$$()&*+$& ,-%./#0 1)/+2+*3 4+&+5+0+*3
!'#,#,#,-% &'(+-,-+- '$(,&.)'* &+('-+.*. ,)(-''*-&
!"#$%& '$$()&*+$& ,-%./#0 1)/+2+*3 4+&+5+0+*3
!"#$#$#$% &'())*+$, '"(&-+.*. +.(-)&.*, "&(')*$.*
!'#,#,#,*%
!"#$#"#$% ."(.,,.), ")(&"-$)) +)(*+&$-" ,'()+*&))
!'#,#,#"$% &'($&+$&
!'#,#,#",%
!"#$#"#,% .,(-.&'$+ "-($.-*." +)($,*$-+ ,'(),&'&)
!'#,#,#""%
!"#$#"#"% .,(-+'"-& "-('-&-$) +&(".-&+, ,"(+**)*,
!'#,#,#"'% &,(--$$.& '$('"',.' &'(*+"'$+ "$(-$*,"
!"#$#'#$% &$($))$+' ""(+*,-". **('-'-". ,&(-,.'*,
!"#$#'#,% &,(*-+,)+ ""(,..$+' *.(*")+)- ",(&,,+*.
!'#,#,#"+% &+('+""+) "*(),"')& &,('-*--. ",(-,*$+)
!'#,#,#"&% &+(,'*,)* "*(",.+'& &"(,).*.. ""()+),),
!"#$#'#"% &"(',$&&, ""(+$$+*' *)("'''." ',(-)*-".
!"#,#$#$% &&(),')'* ',(''.)'* &,("*" ',(&$*$*.
!'#,#,#".% &"(.-'&"" "*()&-*$) &'()',$-, ,)(.+-"+
!'#,#,#")% &+($$$+ '$("-'+ &"(*$..)-
!"#,#$#,% &&(),')'* ',(''.)'* &,("*" ',(&$*$*.
!"#,#$#"% &"(,+",-- "*(*,*+'& &'('**&.& '$(**+$.)
!'#,#,#"-%
!'#,#,#"*% ,*($*")-+
!"#,#,#$% +*(.&&"") "-("-'&-& +&(-.**+" "(,)*$.,
!'#,#,#'$% &+(&&).,. "*(*',-,* &,($."&"" ,*())$".)
!"#,#,#,% +*(.',*-- ")("$..*. +)(.,)$-, ""($++'.-
!'#,#,#',% &"(&*)*.- '$(.*''*, &'(*'&$$+ ,)(".,")'
!"#,#,#"% &$(",*-". "-(,-'"") +'(*.+-$" *(+'$)*+
!'#,#,#'"% &,(-,.',' '$(&&))+- &'(,"+*'* ,*(**)*.
!'#$#$#$% &,(*&*')& ',()*"'+ '*(.&"))& -()$'+,"
!'#,#,#''% &+('$"" "*(-&+.-) &,(--'+)- ",($''$,*
!'#$#$#,% &'(+*)"&& '$(',.*,* +$(*,"++) ,&(&,*"-"
!'#$#$#"% &"(.,-).- ',(&.-.*. '-(,$)."' ,)(&+)'*
!'#,#,#'+% &+(,-. *(&,),&
!'#$#$#'% &+(,)"+*- ',()'.*"& '&(""",-" ,-('&,*+&
!'#,#,#'&% &"(*&+," "$($.-$'
!'#$#$#+% &'($.&$-' ',().)+-. '-(-'+,.. ,)(-")*+'
!'#,#,#'.% &"(**&+)
!'#$#$#&% &+("&+&*, ',(+".'-' '.(-",++' ,'('*,$))
!'#,#,#')% &"(-*)-'* "*(,$'*+ &+(-."'&& ,)(')+",)
!'#,#,#'-% &'("-,.'+ "*(-$)-&, &,(*,,*-- ,+('."+$"
!'#$#$#.% &,('&,++* ',(&)&"*& +$(+"*$-" "$("-.,-+
!'#,#,#'*% &'()+,'-+ '$(,-'+-. &"(*,)',* ,.(&)"-.&
!'#$#$#)% &'(++&-." ',($*"*,' ')("+'"'" ,&(-*,$.&
!"#$#$#$% "&'"())*& ++',$)$(- &+',++(.- "('"+))""
!'#$#$#-% &'(.)'$-) ',(.*))+- '.('.,'"" ,$("&,'--
!"#$#$#-% ")'($$",. +*'""",)) &*'$--,-+ "&'&+.,+(
!'#$#$#*% &,(-.)+'- ',(+$'.&" '*()-+*'. ,)(',)'*-
!'#$#$#,$% &"('-.') ',('"*&&+ '*(&.+.+, ,+($*"++*
!"#$#$#+% "&'*.,$)+ ++',&*$"* &$'"$.)(" ($'+.*,*(
!'#$#$#,,% &'(-$*+), ',(,'"-,* '-(-)-."' ,+(.$)$'-
!"#$#$#*% "&'"-*,) ++'(,&*, &-')$,.* (,'--.*
!"#$#$#"% "&',.&.&. +*'"*"(,) ,&',,+"), (*'("*-),
!"#$#$#(% ",'-*.&-* +*'($+,,+ &+').$$-+ (+',$"(--
!"#$#$#.% ",'*)"+, ++'*,)$"* &('*+(,)" ($'-.$.+
!'#$#$#,"% &"(-",*,' ',('',$"" '*(** ,"(+,)+*) !'#$#$#,'% &'()$")$- '$(&-,"*" +"($*"$** ,,(,$','!'#$#$#,+% &+('&+*). ',(*,"')) ''(-)-&-* ,.(&+$).'
!"#$#$#)% "&'*,**.( +*'--".-) &-'*-*)$" ")',.(".*
!'#$#$#,&% &"(&,&')+ '"($$'",) '-("-$*&) ,-(----
!"#$#$#,% ")'.*+&** ++'))).," &"'+$$(.& (-'.((*(+
!'#$#$#,.% &'(+$)'&) '$()*)&-' '*(.&"*)+ ",(&$."..
!"#$#$#&% ")',".+- +"'.,,,)) ,.'++,*.+ "&',$*.&"
!'#$#$#,)% &,(&.)*$" '$(-,+&-) +"(),&'+- ,.($&"&$)
!"#$#$#-$% "&'(&*$-- +*'(*)(.( ,&'.-()-) "('*"((,*
!'#$#$#,-% &&('$*** '$(.)*$-" +$(*',*$' ,'(-$.-.
!"#$#$#--% "&'""$(.& +*'(,."-- &-'($"$&( (+')*$.$-
!'#$#$#,*% &'(+,+,)+ ',()*+)*. ')()--&+- ,)(',&,.&
!"#$#$#-+% ",'((&))+ +-'",-"-* &.'&"&*", (*'.-*-**
!"#$#$#-*% "&'+.("$+ ++'((+,, &-',*$&*( (,'-*"&(
!'#$#$#"$% &'(.,'&+& '$(*,+"+, '-(*$")$" ",(.$&)&& !'#$#$#",% &"(..),*, ',(*",),' +$(''&,.& ,*("$,*"
!"#$#$#-"% ",'.&+"*( +*'*"*+-) &+'-&" (-',*+*"*
!'#$#$#""% &"(-)&.'& ',($.)""* '*()+'*,* ""(,$.))
!"#$#$#-(% ",'+"").) +*'$*&()* &$'&*++,( (('&"*,((
!'#$#$#"'% &+(.).++' ',("$+-$* '-(&)'*+- -())$--)
!"#$#$#-.% ")',(+(-. +*'.*))"( &+'-+$)(, (*',)(*$"
!'#$#$#"+% &"(.'-+. ',(,,---" +,("*-*'" ,.(*'")--
!"#$#$#-)% ",'-),+,* ++'&""(,) &"',)*$+& "&'+,$-&*
!'#$#$#"&% &,(,*+)"& ',()-".,- +$(*$&+' ,*()"$-..
!"#$#$#-,% ",'",*$&. +*'(.$(&) &-')((&* ")'&(.+-"
!'#$#$#".% &"(,"'*$. '$(+&*"$+ +"($$&$) ,.()+,,.
!"#$#$#-&% "&'&(*-.* +*',+)*&- ,.'&,,(,) "$',&..".
!'#$#$#")% &+(*,",* ',(,.."-& ')(.+''$+ ,.('.)*'&
!"#$#$#+$% ",'$-.-." ++')+*(.( &*'+.*+$, ",'-.&+)(
!'#$#$#"-% &'(*").-- ',(.$*.)+ ')(&"$$+' ,,(+"&-+"
!'#$#$#"*% &,(),),," ',($&'+.. +,(-)*+"* "$(+,$&.'
!"#$#$#+-% "&'..)&-* ++')(..&. &-'.*-.+) "$'&)","(
!"#$#$#++% "&'.+"$+& ++',")&"+ &-')+-(+) ()'"(--("
!'#$#$#'$% &"(-','-' '$(**"-)) +$($,'",) ",($.++'.
!"#$#$#-$% "&'(&*$-- +*'(*)(.( ,&'.-()-) "('*"((,* !"#$#$#--% "&'""$(.& +*'(,."-- &-'($"$&( (+')*$.$!"#$#$#-+% ",'((&))+ +-'",-"-* &.'&"&*", (*'.-*-** !"#$#$#-*% "&'+.("$+ ++'((+,, &-',*$&*( (,'-*"&( !"#$#$#-"% ",'.&+"*( +*'*"*+-) &+'-&" (-',*+*"* !"#$#$#-(% ",'+"").) +*'$*&()* &$'&*++,( (('&"*,(( !"#$#$#-.% ")',(+(-. +*'.*))"( &+'-+$)(, (*',)(*$" !"#$#$#-)% ",'-),+,* ++'&""(,) &"',)*$+& "&'+,$-&* !"#$#$#-,% ",'",*$&. +*'(.$(&) &-')((&* ")'&(.+-" !"#$#$#-&% "&'&(*-.* +*',+)*&- ,.'&,,(,) "$',&..". !"#$#$#+$% ",'$-.-." ++')+*(.( &*'+.*+$, ",'-.&+)( !"#$#$#+-% "&'..)&-* ++')(..&. &-'.*-.+) "$'&)","( !"#$#$#++% "&'.+"$+& ++',")&"+ &-')+-(+) ()'"(--(" !"#$#$#+*% ",',(,*", +*'$***++ &+'-"((,* (.'&&$",& !"#$#-#$% "+'".(()( +"'.*+&.. ,"'"("*", ",',(&,++ !"#$#-#-% "+')"("-- +.'$.$,"- ,-'+,$,$+ *"'$$"(&& !"#$#-#+% "+'&+)"-. +('(&-(" ,*'$+&"), "*'&($.(, !"#$#-#*% "-'&)()+( +(',*)$(- ,*'.*+"$. *+'"-&(". !"#$#-#"% "-'.-+."( +.'*,$+$* ,*'(+-..) *('-(+$+. !"#$#+#$% "$'-$(&& +)'+&.&$, )"'"&(+)( "&'-))&*. !"#$#+#-% *,'+++&-& +,',&+$+( )*'-.*$., "*',*&+(( !"#$#+#+% *&')()-(+ +)'"&$*) )-',*$)*& ")'$,$-,* !"#$#+#*% *,'"-.(&- +)'*+&)&- )"'*",).( "&'$$.,+!"#$#+#"% *.',+)(*. +,'+$.+(" )"')-*+$* "+'$..+&" !(#$#$#$% (,'+&.)(& "-'"$,$$, (.'+(&.&+ +&'-&,*-!(#$#$#-% ()')-,&), "-'$(*+*& (,'&,$+.- +)',,*+), !(#$#$#+% (.',+*"*( "$'(.$)- .+'...*", +&'-()&)" !(#$#$#*% (.')..",+ "-'-&)$&& ((',++))( *-'+.,-&& !(#$#$#"% (,'$*(."" "-'+*,+.- (,',$.,) +)'.)"("!(#$#$#(% (,'$-."," "$'."*-., .$'&*.**( ++'."($)!(#$#$#)% (,'.(-($* "$'+"),-" (&'--&),& +)'$(*&+,
!"#$#$#$% &'())*+$, '"(&-+.*. +.(-)&.*, "&(')*$.* !"#$#"#$% ."(.,,.), ")(&"-$)) +)(*+&$-" ,'()+*&))
!"#$#"#,% .,(-.&'$+ "-($.-*." +)($,*$-+ ,'(),&'&) !"#$#"#"% .,(-+'"-& "-('-&-$) +&(".-&+, ,"(+**)*, !"#$#'#$% &$($))$+' ""(+*,-". **('-'-". ,&(-,.'*, !"#$#'#,% &,(*-+,)+ ""(,..$+' *.(*")+)- ",(&,,+*. !"#$#'#"% &"(',$&&, ""(+$$+*' *)("'''." ',(-)*-". !"#,#$#$% &&(),')'* ',(''.)'* &,("*" ',(&$*$*. !"#,#$#,% &&(),')'* ',(''.)'* &,("*" ',(&$*$*. !"#,#$#"% &"(,+",-- "*(*,*+'& &'('**&.& '$(**+$.) !"#,#,#$% +*(.&&"") "-("-'&-& +&(-.**+" "(,)*$., !"#,#,#,% +*(.',*-- ")("$..*. +)(.,)$-, ""($++'.!"#,#,#"% &$(",*-". "-(,-'"") +'(*.+-$" *(+'$)*+ !'#$#$#$% &,(*&*')& ',()*"'+ '*(.&"))& -()$'+," !'#$#$#,% &'(+*)"&& '$(',.*,* +$(*,"++) ,&(&,*"-" !'#$#$#"% &"(.,-).- ',(&.-.*. '-(,$)."' ,)(&+)'* !'#$#$#'% &+(,)"+*- ',()'.*"& '&(""",-" ,-('&,*+& !'#$#$#+% &'($.&$-' ',().)+-. '-(-'+,.. ,)(-")*+' !'#$#$#&% &+("&+&*, ',(+".'-' '.(-",++' ,'('*,$)) !'#$#$#.% &,('&,++* ',(&)&"*& +$(+"*$-" "$("-.,-+ !'#$#$#)% &'(++&-." ',($*"*,' ')("+'"'" ,&(-*,$.&
!'#$#$#-% &'(.)'$-) ',(.*))+- '.('.,'"" ,$("&,'-!'#$#$#*% &,(-.)+'- ',(+$'.&" '*()-+*'. ,)(',)'*!'#$#$#,$% &"('-.') ',('"*&&+ '*(&.+.+, ,+($*"++*
!'#$#$#,,% &'(-$*+), ',(,'"-,* '-(-)-."' ,+(.$)$'-
!'#$#$#,"% &"(-",*,' ,"(+,)+*)
!'#$#$#,'% &'()$")$- ,,(,$','!'#$#$#,+% &+('&+*). ,.(&+$).'
!'#$#$#,&% &"(&,&')+ ,-(----
!'#$#$#,.% &'(+$)'&) ",(&$."..
!'#$#$#,)% &,(&.)*$" ,.($&"&$)
K"21"$'%0$" ['%"&*6&]029)9%,&7I/+'(?" <#%&A##"2;-'?"
!'#$#$#,-% &&('$*** ,'(-$.-.
!'#$#$#,*% &'(+,+,)+ ',()*+)*. ')()--&+- ,)(',&,.&
!'#$#$#"$% &'(.,'&+& ",(.$&)&& !'#$#$#",% &"(..),*, ,*("$,*"
!'#$#$#""% &"(-)&.'& ""(,$.))
!'#$#$#"&% &,(,*+)"& ,*()"$-.. !'#$#$#".% &"(,"'*$. '$(+&*"$+ +"($$&$) ,.()+,,. !'#$#$#")% &+(*,",* ',(,.."-& ')(.+''$+ ,.('.)*'& !'#$#$#"-% &'(*").-- ',(.$*.)+ ')(&"$$+' ,,(+"&-+" !'#$#$#"*% &,(),),," ',($&'+.. +,(-)*+"* "$(+,$&.' !'#$#$#'$% &"(-','-' '$(**"-)) +$($,'",) ",($.++'. 6&*7!%**0%/%8*
!'#$#$#"'% &+(.).++' -())$--)
!'#$#$#"+% ,.(*'")--
4 < 3D&*U DC&*U
2nd Settlement
Spaces
{2;0;0;0} 53.296964 31.376158 49.850466 37.793483
{2;0;2;0} 61.968 28.671143 44.374124 13.980465
{2;0;2;1} 64.252534 29.088932 44.536522 14.253563
{2;0;2;2} 61.94427 27.392974 46.379896 15.278663
{2;0;3;0} 52.089522 22.135957 97.316696 21.525878
{2;0;3;1} 52.003522 22.164565 96.990783 21.514609
{2;0;3;2} 52.136826 22.110304 97.516 21.530922
{2;1;0;0} 50.744447 30.587205 52.826857 30.585431
{2;1;0;1} 55.713739 31.336739 51.292 31.509096
{2;1;0;2} 54.648 31.491072 48.516986 22.404574
{2;1;1;0} 48.665411 28.223797 45.01429 13.835579
{2;1;1;1} 48.644313 28.426904 50.618626 12.072668
{2;1;1;2} 50.511971 28.230145 45.946087 9.888461
{3;0;0;0} 53.597778 30.099855 39.733411 25.362645
{3;0;0;1} 53.812127 32.385184 34.865445 11.948957
{3;0;0;2} 52.775178 31.335676 39.393787 21.231244
{3;0;0;3} 53.451873 31.351472 40.602274 14.660864
{3;0;0;4} 52.601 31.746678 38.948522 12.645431
{3;0;0;5} 52.605236 31.19705 41.037205 14.113165
{3;0;0;6} 51.855059 31.694996 38.44253 20.564304
{3;0;0;7} 53.584506 30.912095 39.21015 14.521399
{3;0;0;8} 52.713478 31.429488 40.241778 16.190775
{3;0;0;9} 54.33914 30.702068 41.383343 13.971453
{3;0;0;10} 51.877226 31.784087 39.528591 18.353089
{3;0;0;11} 52.981252 32.072377 37.003362 18.600597
{3;0;0;12} 52.80208 31.808862 39.797971 11.424901
{3;0;0;13} 52.418826 31.399457 38.586855 17.004046
{3;0;0;14} 53.679514 31.690312 36.182928 13.728825
{3;0;0;15} 53.156734 31.200106 41.300444 20.35525
{3;0;0;16} 53.69153 30.020374 41.776487 20.69808
{3;0;0;17} 53.371491 31.05323 43.243627 14.298643
{3;0;0;18} 54.328861 31.914096 38.294661 8.729765
{3;0;0;19} 53.26268 30.578277 39.897581 23.725507
{3;0;0;20} 53.435771 31.577557 35.481012 18.908778
{3;0;0;21} 52.724094 30.193826 41.052551 20.986728
{3;0;0;22} 53.399171 30.610803 40.185926 24.812749
{3;0;0;23} 52.927507 32.670043 35.463928
{3;0;0;24}
{3;0;0;27}
2nd Settlement
{3;0;0;36} {3;0;0;37}
{3;0;0;12}
{3;1;1;5} 53.885866 {3;1;1;6}
{3;1;1;7} {3;1;1;8}
!'#,#,#,"% &'("'&+.* '$($*&&. &$(-$+,$, ,-(-,,)"&
!'#,#,#,'% &'(*.&'&) ")()).'+. &+(,)"$+' ,&(,+',.'
!'#,#,#,+% &"(&*,,$) '$(..+.+, &"(*"' ,.()")*-&
!'#,#,#,&% &'(''-""* ")(.&,$)* &'(+,,'"" ,&(.","*'
!'#,#,#,*% &+()"&+)' '$(+$+&"" &,(+$&*&" "$(*)-.$)
!'#,#,#,-% &'()',$*& ")(&+,*+, &+(."&*-+ ,+(&*.$''
!'#,#,#,.% &'(+"&)", '$($",'.' &"())"$+- ,*(+*..,)
!"#$#$#.+% "-'-*-.$* )+'.($$- *.'.,&$"+ ,)'*".-(-
!"#$#$#."% "&',($*)- )"'$&+",* -('-$$.,, ,)'(.(&*"
6728!%**0%/%7*
!'#,#,#,)% &'(.-$'*+ '$($**.- &'(-&",-+ ,&('$+&."
6728!%**0%/%7*
!'#,#,#"$% &+(+"+)"" ")(&,$"$) &"(+&"-.' ,+("'**+"
!"#$%& '$$()&*+$& ,-%./#0 1)/+2+*3 4+&+5+0+*3
!'#,#,#",% +.(.",+"
!"#$#$#$% &'(")*)*+ ',('-*,&. +)(.&$+** '-(-)'+.'
!'#,#,#""% &,(&"&.'' '$()$*)'* &"(-+,,-- ,.(..&"*"
!"#$#"#$% *,()*. ".(*-,,+' ++('-+,"+ ,'().$+*&
!'#,#,#"'% &'("$$)$+ ")('.'++' &&("*'),' ,+(.+*.,-
!"#$#"#,% *+("&"&'+ ")($..)'" ++(&'*&"" ,+("&'&*'
!'#,#,#"+% &+(-"."+' ")()$$&&- &,('),",- ,,()','&'
!"#$#"#"% *,()++"- "-(')")-+ +*('-).)* ,&("-.**'
!"#$#'#$% &"($.)&"" ""(,'&)&- )-(',**)* ",(&"&.-.
!'#,#,#"&%
!'#,#,#"*% &&(',$,+& ")('*&"-& &'(-+--.- ,+(&.$.-
!"#$#'#,% &"($$'&"" ""(,*+&*& )*())$-.' ",(&,+*$)
!"#$#'#"% &"(,'*."* ""(,,$'$+ )-(&,* ",(&'$)""
!'#,#,#"-% &'('*,.- '$(",,")' &'(,,*'+. ,-(.')*&+
!'#,#,#".% &'()$$&$" '$('+&".& &'(+-)""- ,-(-.+&*+
!"#,#$#$% &$(-++++- '$(&.-"$& &"(."*.&- '$(&.&+',
!'#,#,#")% &"('*''-+
!"#,#$#,% &&(-,'-') ',(''*-') &,(")" ',(&$)$)*
!'#,#,#'$% &'(),.--" ")()+-".' &&(*',*&" ,&(""")'&
!"#,#$#"% &+(*+. ',(+),$-" +.(&,*).* ""(+$+&-+
!'#,#,#',% &+(&+'+,, ")($&","* &"('$.&)) "$()"&))
!"#,#,#$% +.(**&+,, ".(""'-)- +&($,+") ,'(.'&&-)
!"#,#,#,% +.(*++',' ".(+"*)$+ &$(*,.*"* ,"($-"**.
!'#,#,#'"% &"(.-&'." '$($)$,.+ &"(*,+-++ ,)(,$,$'+
!'#,#,#''% ,-($)"-*"
!"#,#,#"% &$(&,,)-, ".("'$,+& +&()+*$.- )(...+*,
!'#,#,#'+% &'(",'-$* '$("*-.* &"(+$$)& ,*(&)&$.&
!'#$#$#$% &'(&)---. '$($)).&& ')(-''+,, "&('*"*+&
!'#,#,#'&% &'(&&"*)* '$(*"&",- &,(&'&* ,"(-,+,..
!'#$#$#,% &'(.,","- '"('.&,.+ '+(.*&++& ,,()+.)&-
!'#$#$#"% &"(--&,-. ',(''&*-* ')(')'-.- ",("',"++
!'#,#,#'*% &+($.).$+ '$('.$.'- &$(),&*-+ ,.()'$'-
!'#$#$#'% &'(+&,.-' ',('&,+-" +$(*$""-+ ,+(**$.*+
!'#,#,#'-%
!'#$#$#+% &"(*$, ',(-+**-. '.()+.&"" ,"(*+&+',
!'#,#,#'.% &+($*)&+" '$(*&.)$, +.(**.**+ ,-()&)''+
!'#$#$#&% &"(*$&"'* ',(,)-$& +,($'-"$& ,+(,,',*&
!'#,#,#')% &'(*.)).' '$(.$).,- &"(-"")') ,)(".)$,"
!'#$#$#*% &,(.&&$&) ',(*)+))* '.(++"&' "$(&*+'$+
!"#$#$#$% "&'"()(&* )+'&,+")* -*'*"+&$& ,)'($,.).
!"#$#$#.% "-'&*-,+* )+'$.++.+ *$'***"&- "&'+$&+(,
!'#$#$#-% &'(&.+&$* '$(),"$)& ')(",$,& ,+(&",'))
!"#$#$#)% "-'$,(&-+ ).'.&.&. .$+'.-*+*. "$'"$$")*
!'#$#$#.% &"(-,'+-. ',(+")+.. +$("+,--. ,*(,)$--&
!"#$#$#+% "-'-+-+*, ))'(+$$.( *)'**,+) ,*'&*$(+&
!'#$#$#)% &+(''),+ '$(-$"$*. +,('.''+' ,'()-,+&'
!'#$#$#,$% &,(.--""* ',(-.+$.- ')(&".&), ,.('&'$.)
!"#$#$#"% "*'$,*." ))'+$+&-& *+'"($*)- ($'-&.-."
!'#$#$#,,% &"().,"&" '"($-"'-- '-($$''*" ,.(*$$&)-
!"#$#$#,% "*'*),$"+ ))'(&-.", *+'((*"-- ,$'"*-"(-
!'#$#$#,"% &"(.$"$. ',(.$..*" ')(-)-)-, ,,(+"+)$,
!"#$#$#(% "*'*.*",) )+'"&""&- *$',-,)-& ,+',(,,&
!'#$#$#,'% &"(+,.."* ',('))+&- '.(&.*.&& ,-($$+$+*
!"#$#$#&% "-',$$$. )+'"..$)" *.'+",".. ,.')&*(*,
!'#$#$#,+% &'(*-)&,+ ',(*)$'," '*(,.")". ,'(-".."&
!"#$#$#-% "-'($-$"+ )"'.-+$+. -*'.,$+)+ "&'*),)$"
!"#$#$#*% "*'&,&,* ))'-**," *$'-*,(&& ,"'(&*)+
!'#$#$#,&% &'(,&*-'+ ',("$$,$* +,('$$+++ "$('&&"&
!"#$#$#.$% "-'.$*&(. ))'*$+), "*'(",")"
!'#$#$#,*% &'(*),&' '$($"$'-+ +,(--*+.- "$(*).$.
!"#$#$#..% "-',$**&( ))'*,-,", *"')$-(.& ,.'$&-""*
!'#$#$#,-% &'('-,+), ',($&'"' +'("+'*"- ,+(").*+'
!'#$#$#,.% &+('"..*, ',(),+$)* '.(")+**, .(-")-*&
!"#$#$#.)% "-'+$+."" )+',-$*.( *.'"&.&** ,+'*))*-)
!'#$#$#,)% &'("*"*. '$(&-."-- ')(.)-&., "'(-"&&$-
!"#$#$#.+% "-'-*-.$* )+'.($$- *.'.,&$"+ ,)'*".-(-
!'#$#$#"$% &'(+'&--, ',(&--&&- '&(+.,$," ,.()$.--.
!"#$#$#."%
!'#$#$#",% &"(-"+$)+ '$(,)'."* +,($&"&&, "$().*-".
!"#$#$#.,% "*'+()*"- )+'&"+$&- --'-++&$" ,$'$&&+*,
!'#$#$#""% &'(')),-, '$(*,$.$' +$(,.&)"* "+(.,"-+)
!"#$#$#.(% "-'&")-,, ).'*-*-** **')() ,$'*&.,()
!"#$#$#.&%
!'#$#$#"'% &"()"-&$- '"(*-$$+' '&(+*')". ,+(-&+*+"
!"#$#$#.-% "-'(,(.+ *&'-&")*
!'#$#$#"+% &+($.-$.- '"($)-.'& '-(,'&'), ,$(.-*&')
!"#$#$#.*% "*'()&(., ).'-(-,,* *"'*))(,- ,,'&,"(&.
!'#$#$#"&% &'(+"*--+ ',()'"'"" '.(,-.&-+ ,+(*&-)&'
!'#$#$#"*% &"().,*+' ',(++.'+. '.(&'&$-. ,-(-+,.--
!"#$#$#)$% "-')-+*( )+'$)*)(, *$'))$&)& ,-'-)",(-
!'#$#$#"-% &+("&$$"& ',(","$," +$()""$," ,&(&$".""
!"#$#$#).%
!'#$#$#".% &'(.**,*' '$(),")'& +,($.+&+' ,'(),*-*-
!"#$#$#))%
!'#$#$#")% &'(*-**'+ ',(.-" '.(*').-* ,)(&"*,-+
!"#$#$#)+% "*')&*,"+ ))'($&&+* *+'-"(,)) ,)',.**+&
!'#$#$#'$% &'(+"."'" ',(-")$,+ ')('*$-"& "$($)**
!"#$#.#$% ".'.+*+$" )-'..()(. &,'"(,+&" .*'*$)-")
!"#$#.#.% ")'+"&.+
!'#$#$#',% &'($)'$-. '$('"*'), +$(,&+""* "+(&+$*,*
!"#$%& '$$()&*+$& ,-%./#0 1)/+2+*3 4+&+5+0+*3 !"#$#$#$% &'(")*)*+ ',('-*,&. +)(.&$+** '-(-)'+.' !"#$#"#$% *,()*. ".(*-,,+' ++('-+,"+ ,'().$+*& !"#$#"#,% *+("&"&'+ ")($..)'" ++(&'*&"" ,+("&'&*'
!"#$#"#"% *,()++"- "-(')")-+ +*('-).)* ,&("-.**'
!"#$#'#$% &"($.)&"" ""(,'&)&- )-(',**)* ",(&"&.-.
!"#$#'#,% &"($$'&"" ""(,*+&*& )*())$-.' ",(&,+*$)
!"#$#'#"% &"(,'*."* ""(,,$'$+ )-(&,* ",(&'$)"" !"#,#$#$% &$(-++++- '$(&.-"$& &"(."*.&- '$(&.&+', !"#,#$#,% &&(-,'-') ',(''*-') &,(")" ',(&$)$)* !"#,#$#"% &+(*+. ',(+),$-" +.(&,*).* ""(+$+&-+ !"#,#,#$% +.(**&+,, ".(""'-)- +&($,+") ,'(.'&&-) !"#,#,#,% +.(*++',' ".(+"*)$+ &$(*,.*"* ,"($-"**. !"#,#,#"% &$(&,,)-, ".("'$,+& +&()+*$.- )(...+*, !'#$#$#$% &'(&)---. '$($)).&& ')(-''+,, "&('*"*+& !'#$#$#,% &'(.,","- '"('.&,.+ '+(.*&++& ,,()+.)&!'#$#$#"% &"(--&,-. ',(''&*-* ')(')'-.- ",("',"++ !'#$#$#'% &'(+&,.-' ',('&,+-" +$(*$""-+ ,+(**$.*+
!'#$#$#+% &"(*$, ',(-+**-. '.()+.&"" ,"(*+&+',
!'#$#$#&% &"(*$&"'* ',(,)-$& +,($'-"$& ,+(,,',*&
!'#$#$#*% &,(.&&$&) ',(*)+))* '.(++"&' "$(&*+'$+
!"#$#$#.,% "*'+()*"- )+'&"+$&- --'-++&$" ,$'$&&+*, !"#$#$#.(% "-'&")-,, ).'*-*-** **')() ,$'*&.,() !"#$#$#.&% "-'&+.(). )+'-"(+(" --')$**", ,&'+&*)-, !"#$#$#.-% "-'(,(.+ ))'$&-+$" *&'-&")* ,.'$.(.*& !"#$#$#.*% "*'()&(., ).'-(-,,* *"'*))(,- ,,'&,"(&. !"#$#$#)$% "-')-+*( )+'$)*)(, *$'))$&)& ,-'-)",(!"#$#$#).% "-'&""$.( )+'$)-)(. *.',+&$.) "-'-*"-"" !"#$#$#))% "-'.*).$* )+'(($)** -*'*".$.. ,-'+-*-,!"#$#$#)+% "*')&*,"+ ))'($&&+* *+'-"(,)) ,)',.**+& !"#$#.#$% ".'.+*+$" )-'..()(. &,'"(,+&" .*'*$)-") !"#$#.#.% ")'+"&.+ )"'-&$((& -"'.)+,*" ",'))*))( !"#$#.#)% ")'&$,.&* ),',&.*-. -"'"--*+& ")'+)+*(. !"#$#.#+% "$'&()-** )('-&-,)) -"')$$,-* +*'&,")*!"#$#.#"% "$',+).+, )('**$-** &*'$&+(++ )*')$+$-" !"#$#)#$% +&'&&"-,, )-',-,$,- &)'+."&-+ +*'($)+(" !"#$#)#.% +*'((*($* )&'$"$-*. &)',-,.+ ,$'$.*" !"#$#)#)% +-',"$,+. )-'&-("*+ &.'-(*+"+ +-'-$-"&& !"#$#)#+% +*'.$$)+, )('&$..,& &,',+-"+, "*'-.$"&& !"#$#)#"% +-'.),(&) )-'..*,$, &"'+,,&.) "+')(-)$* !,#$#$#$% ,&'$)$+". "$'.""+*. ,*'*.*,,. +&',*,$&. !,#$#$#.% ,('+"+"", ".'"*))&" ,*'+,(($* +)'$,*",( !,#$#$#)% ,-'.&,$.) "$'*."*". ,&'&",$-+ ),'(-*+,!,#$#$#+% ,&'--&,&) ".',$$*+, ,&'.*.&," )+',.,")( !,#$#$#"% ,&'"+")). "$'.--&&, (.'.,."& +.'$."*-!,#$#$#,% ,('&*-"+, ".'&,(-& ,(',$-+)" )"'+(),$. !,#$#$#(% ,,'"-,$-+ ".'+,"$&. ,&'.,($)" ),'.-+-(" !,#$#$#&% ,&'",,*$( ".',*"+++ ,&'(*$$." )+'*$*,(,
D()&A##"2;-'?"
!'#$#$#-% &'(&.+&$* '$(),"$)& ')(",$,& ,+(&",')) !'#$#$#.% &"(-,'+-. ',(+")+.. +$("+,--. ,*(,)$--&
['%"&*6&b9#0'-&U+'(?"
!'#$#$#)% ,'()-,+&'
!'#$#$#,$% &,(.--""* ,.('&'$.)
!'#$#$#,,% &"().,"&" ,.(*$$&)-
!'#$#$#,"% ,,(+"+)$,
!'#$#$#,'% &"(+,.."* ,-($$+$+*
!'#$#$#,+% &'(*-)&,+ ,'(-".."&
!'#$#$#,&% &'(,&*-'+ "$('&&"&
!'#$#$#,*% "$(*).$.
!'#$#$#,-% &'('-,+), ',($&'"' +'("+'*"- ,+(").*+'
Q*0()&T":"-#
!'#$#$#,.% &+('"..*, .(-")-*&
!'#$#$#,)% &'("*"*. "'(-"&&$-
!'#$#$#"$% &'(+'&--, ,.()$.--.
!'#$#$#",% &"(-"+$)+ "$().*-".
!'#$#$#""% &'(')),-, "+(.,"-+)
!'#$#$#"'% &"()"-&$- ,+(-&+*+"
!'#$#$#"+% &+($.-$.- ,$(.-*&')
!'#$#$#"&% &'(+"*--+ ,+(*&-)&' !'#$#$#"*% &"().,*+' ,-(-+,.-!'#$#$#"-% &+("&$$"& ',(","$," +$()""$," ,&(&$"."" !'#$#$#".% &'(.**,*' '$(),")'& +,($.+&+' ,'(),*-*!'#$#$#")% &'(*-**'+ ',(.-" '.(*').-* ,)(&"*,-+ !'#$#$#'$% &'(+"."'" ',(-")$,+ ')('*$-"& "$($)**
!'#$#$#',% &'($)'$-. '$('"*'), +$(,&+""* "+(&+$*,*
3rd Settlement
Spaces
{2;0;0;0} 53.121984 32.776848 51.271685 32.43263
{2;0;2;0} 63.092242 27.48034 50.406196 10.051595
{2;0;2;1} 62.133016 28.817554 43.937989 13.589342
{2;0;2;2} 62.341401 28.757597 42.600628 9.565746
{2;0;3;0} 52.162101 22.629964 93.554203 18.745928
{2;0;3;1} 52.464158 22.674266 94.952609 27.332326
{2;0;3;2} 52.161522 22.169022 97.474348 21.541957
{2;1;0;0} 51.741304 30.548587 53.908587 33.8155
{2;1;0;1} 54.98 31.536558 49.303188 21.907739
{2;1;0;2} 51.189739 29.129826 60.271652 37.3446
{2;1;1;0} 48.000829 29.227745 44.240489 9.827079
{2;1;1;1} 49.075947 28.620078 45.39646 7.430304
{2;1;1;2} 50.650851 28.371322 47.452899 2.343141
{3;0;0;0} 53.978659 31.862705 37.392899 14.469814
{3;0;0;1} 53.716341 31.850423 41.146473 16.461957
{3;0;0;2} 54.935609 30.408348 42.222348 17.070222
{3;0;0;3} 53.132971 31.112853 40.03192 20.671841
{3;0;0;4} 54.248804 30.731537 39.666957 19.084461
{3;0;0;5} 52.472516 31.48559 41.67795 20.642068
{3;0;0;6} 54.265309 32.615878 33.909197 7.310365
{3;0;0;7} 55.640772 31.21488 38.031435 11.086846
{3;0;0;8} 52.902391 31.148496 41.058152 13.868058
{3;0;0;9} 53.192585 31.871606 38.963623 18.146635
{3;0;0;10} 53.001587 31.623522 39.132783 17.153117
{3;0;0;11} 51.797188 31.663179 40.996957 20.099326
{3;0;0;12} 53.757192 31.494058 40.433841 15.893937
{3;0;0;13} 54.31333 31.764506 37.039051 19.428706
{3;0;0;14} 52.945388 31.442733 43.872547 16.51054
{3;0;0;15} 53.935573 30.215791 41.537194 23.991814
{3;0;0;16} 54.105148 31.512292 39.440158 17.80387
{3;0;0;17} 52.40088 31.430761 41.653304 14.405287
{3;0;0;18} 53.132475 31.610761 40.442107 15.923666
{3;0;0;19} 53.042399 31.424355 39.705275 14.979454
{3;0;0;20} 55.366014 31.376449 41.926667 16.375685
{3;0;0;21} 50.997351 32.211984 41.198315 15.312606
{3;0;0;22} 53.165443 31.576012 40.562375 15.837247
{3;0;0;23} 53.503217 31.752906 38.468116 12.967151
{3;0;0;24} 53.90003 31.325534 36.536838 16.970391
{3;0;0;25} 53.60784 31.013913 39.385652 22.42719
{3;0;0;26} 53.594076 32.093065 38.26213 14.158941
53.503217 31.752906 38.468116 12.967151
{3;0;0;24} 53.90003 31.325534 36.536838 16.970391
{3;0;0;25}
3rd Settlement
53.755842 31.517192 40.450833 15.880808
{3;0;0;33} 54.698745 31.270366 37.027787 11.913484
52.527438
{3;1;1;0}
53.281413 30.079728 54.651413 16.464707 {3;1;1;3} 53.528437 30.357595 55.276359 17.186111
{3;1;1;4} 53.317935 30.602707
{3;0;0;13} 54.31333
{3;1;1;9} 52.925512 30.20455 55.715901 17.238727
{3;1;1;10} 52.705093 30.220745 53.075528 21.225354
{3;1;1;11}
6.27!%**0%/%8*
!"#$%& '$$()&*+$& ,-%./#0 1)/+2+*3 4+&+5+0+*3
!"#$#$#$% &'()")*+, '"(--.+,+ &)("-).+& '"(,'".'
!"#$#"#$% .'($*""," "-(,+$', &$(,$.)*. )$($&)&*&
!'#)#)#)$% &"(-$&$*' '$(""$-,& &'($-&&"+ ")(""&'&, !'#)#)#))% &,(&&*+*) "*(&")&-. &,($.$-*- )&(,-*$+ !'#)#)#)"% &'(+".&+- '$(&+,&)) &)())-)' )&("'&+,+ !'#)#)#)'% &&($*++& "*()"&).' &,($$.".+ "'(*-'.-. !'#)#)#),% &'(',$"-- '$("+""*" &,()$+.*. ).(-*--)!'#)#)#)&% &'(*&",+, '$(&$+,$) &'(&"*,,) "$(',*"'' !'#)#)#).% &'(+,,+." '$(.+",,) &"(.,".,+ )+(,.+&$. !'#)#)#)-% &,(&-"-+- "*(+&'&-- &"(.'&"&- ")(),&*-, !'#)#)#)+% &'(*)""). "*(&$.""* &"('&&*+- ")(,"&)'" !'#)#)#)*% &,(-"+*", '$(".+-+' &)(.&",-+ )+($,".&!'#)#)#"$% &'(&+"+&. '$($,)*.. &'($-&"*. ).(&$'-&*
!"#$#"#)% ."()''$). "+(+)-&&, ,'(*'-*+* )'(&+*',"
!"#$#"#"% ."(',),$) "+(-&-&*- ,"(.$$."+ *(&.&-,.
!"#$#'#$% &"().")$) ""(."**., *'(&&,"$' )+(-,&*"+
!'#)#)#")% &'($'+--* '$(--""'" &"($**'') )'(-.,+"+ !'#)#)#""% &,(,**&"' '$(",$$+, &$(*,',)) )'().-,&+ !'#)#)#"'% &'(,+&'+ '$($-)$*+ &,(+)$*)' )&($'.-,+
!'#)#)#",% &,(&"'--' '$(""$+- &.($$)))+ )-(")*'.
!"#$#'#)% &"(,.,)&+ ""(.-,".. *,(*&".$* "-(''"'".
!'#)#)#"&% &'(-&+-"' "+(-+$.&" &&()+)'-- ""(-.,,."
!"#$#'#"% &"().)&"" ""().*$"" *-(,-,',+ ")(&,)*&-
!'#)#)#".% &"()+''") '$(.,,*., &,()-",)& ),(,$-+."
!"#)#$#$% &)(-,)'$, '$(&,+&+- &'(*$+&+- ''(+)&&
!"#)#$#)% &,(*+ ')(&'.&&+ ,*('$')++ ")(*$--'*
!'#)#)#"-% &'(")+... "*(&,.,+" &,(*$'"$" )*('+)'-&
!"#)#$#"% &)()+*-'* "*()"*+". .$("-).&" '-(',,.
!'#)#)#"+% &&('.$&.+ "*(''-&'. &"(",$,+' )*(.$"..*
!"#)#)#$% ,+($$$+"* "*(""--,& ,,(",$,+* *(+"-$-*
!'#)#)#"*% &,(&.)+', '$(,$'"++ &,(--++&* )-($,),'+
!"#)#)#)% ,*($-&*,- "+(."$$-+ ,&('*.,. -(,'$'$,
!'#)#)#'$% &,(,&).$' "*(*,*.'+ &$(-,-") ).(*)-+'-
!'#)#)#')% &'(,.**.* '$(+,$$+& &$(*)-+++ )&(+-$-+,
!"#)#)#"% &$(.&$+&) "+('-)'"" ,-(,&"+** "(','),)
!'#$#$#$% &'(*-+.&* ')(+."-$& '-('*"+** ),(,.*+),
!'#$#$#)% &'(-).',) ')(+&$,"' ,)(),.,-' ).(,.)*&-
!'#$#$#"% &,(*'&.$* '$(,$+',+ ,"("""',+ )-($-$"""
!'#$#$#'% &'()'"*-) ')())"+&' ,$($')*" "$(.-)+,)
!'#$#$#,% &,(",++$, '$(-')&'- '*(...*&- )*($+,,.)
!'#$#$#&% &"(,-"&). ')(,+&&* ,)(.--*& "$(.,"$.+
!'#$#$#.% &,(".&'$* '"(.)&+-+ ''(*$*)*- -(')$'.&
!'#$#$#-% &&(.,$--" ')("),++ '+($'),'& ))($+.+,.
!'#)#)#'"% &,(""&,)- "*(&"$$.' &'(&'.*" ).(.*''*' !'#)#)#''% &'(-"-)** '$(",.*-' &)('+".$* )'($,$.+) !'#)#)#',% &,(*$"$.& '$()$'&)) &"()*,+- )+(&&++!'#)#)#'&% &'(&)''+' '$(,&&"$, &'(,-)&"" )-("&'$). !'#)#)#'.% &'(*)-&' "+(+",,+. &'(***",* "-("'.'*& !'#)#)#'-% &'(&'&,)* '$('.+.++ &'('""$& ).(.-'',& !'#)#)#'+% &,(++'&+- '$("+,$*, &,(.$& "$(*.&$-. !'#)#)#'*% &'(*)',," '$($-,-"" &&(+$&&&. )'(*'-,.*
!"#$#$#)$% ",'.)-*., **'-.(,(( -)')*$.& .)'.,"*-!"#$#$#))% ",'.")+*" **'&*.*,, -*'&".&) ..'..&"$+ !"#$#$#)*% ",'&*)&+- **'-&,+-) -+'++)(,* ..',*()+!"#$#$#)+% "&'*,).-- *+'$""*.. -+'$+,*(, .$',&))*, !"#$#$#)"% ",'(""$-* *+'+"+))+ -*')*-*.. "-')+(+$!"#$#$#).% "-',$-.-( *"'$("*&( &('.".-(+ "&'-+$.** !"#$#$#)(% "-'".*($- **'&$($** -.'(.,($- ."'&--+." !"#$#$#),% "&'$($,() **'"*.+-- -"'(&,$(. .&'(++)$, !"#$#$#)&% "-').)")+ *)'&$$"&+ -,'.--,) .,',,)-&+ !"#$#$#)-% ",'()".(. **'$$,.(. -,'+(&"+. ",')()(+ !"#$#$#*$% "-'(.*-,& *+'-$",-+ -)'$&&($- .$'(*++*( !"#$#$#*)% "&')-&.$* *+'$**,), -+'*(.$*" ..'$+**.) !"#$#$#**% "-'-"+&.- *"'$)(+&( &('-(+",& .*'-*(("!"#$#$#*+% "-'*-$+.+ *+'$)+$.+ -*'-*-(," .$'(&$.& !"#$#)#$% "$'&(,((+ *.'--"-(" &.'.-"&)- ")'"&$++. !"#$#)#)% ")'*&)-(, *('*")""( &"'+),($- +&'-",&(. !"#$#)#*% "+'*-&&+* *.'.*","* &+'(.$."+ +,')+$-"( !"#$#)#+% "$'&"$*), *&'))-,+( ,.'")($&, +$'-+(+)" !"#$#)#"% "+',*+.*& *,'(**)+" ,('+*,*,+ +*'($,,&!"#$#*#$% +-'(.++." *(',$&$.- ,*'))-"") .)')&("&& !"#$#*#)% +&'-."*,. *,'&(()", ,$',*)&&" +,',")+$" !"#$#*#*% +-'$""+$" *&'(,&&*( ,+'(("($- ""'&.&*() !"#$#*#+% +-'*)&$+ *&',"*(+( (-'-,+(-( +('&"+".) !"#$#*#"% +-',$,&)" *,'-$,"). ,"'."&(", "$'&+&&"& !.#$#$#$%
!'#$#$#+% &"(*$"'*) ')(),+,*. ,)($&+)&" )'(+.+$&+
!'#$#$#*% &'()*"&+& ')(+-).$. '+(*.'."' )+(),..'&
!'#$#$#)$% &'($$)&+- ')(."'&"" '*()'"-+' )-()&'))-
!"#$#$#$% "&'(")&"& *+'$,(&&) -"'+(-,+* .+'$(&(*!"#$#$#)% "&'),*$)) **'++*.(& -('$$(+.- .)')&,)(( !"#$#$#*% "-'+$.$-& *)'-(&)-( -('"+"+$" .('*(*)(+
!"#$#$#+% "-'$$.*+, **'(.$$&- -.'$++.)& .+'*),."-
!'#$#$#))% &)(-*-)++ ')(..')-* ,$(**.*&- "$($**'".
!"#$#$#"% ",',-*,&) *"',*",)- &('"-)""- "(',(&&,
!"#$#$#.% ",'&-$**& **'&".,*& -*'"+-.** ..')-&"$-
!"#$#$#(% "-',($&" **'(,.(&* -.'$.-&$* .+')(*&$(
!"#$#$#,% "&'+$--. **'(.+($" -"',(.")& ..'""$)-)
!"#$#$#&% "&',("&)- *+'.(,,,* -$')&-,) ".'-.-&((
!'#$#$#)"% &'(-&-)*" ')(,*,$&+ ,$(,''+,) )&(+*'*'!'#$#$#)'% &,(')''' ')(-.,&$. '-($'*$&) )*(,"+-$. !'#$#$#),% &"(*,&'++ ')(,,"-'' ,'(+-"&,- ).(&)$&, !'#$#$#)&% &'(*'&&-' '$(")&-*) ,)(&'-)*, "'(**)+), !'#$#$#).% &,()$&),+ ')(&)""*" '*(,,$)&+ )-(+$'+-
!"#$#$#-% "&'*.+)$* **'-$.+-+ -*'$,,(*. .*'+,)."+
!"#$#$#)$% ",'.)-*., **'-.(,(( -)')*$.& .)'.,"*--
!'#$#$#)-% &"(,$$++ ')(,'$-.) ,)(.&''$, ),(,$&"+!'#$#$#)+% &'()'",-& ')(.)$-.) ,$(,,")$- )&(*"'...
!"#$#$#))% ",'.")+*" **'&*.*,, -*'&".&) ..'..&"$+
!'#$#$#)*% &'($,"'** ')(,",'&& '*(-$&"-& ),(*-*,&,
!'#$#$#"$% &&('..$), ')('-.,,* ,)(*"...- ).('-&.+&
!"#$#$#)*% ",'&*)&+- **'-&,+-) -+'++)(,* ..',*()+-
!"#$#$#)+% "&'*,).-- *+'$""*.. -+'$+,*(, .$',&))*,
!'#$#$#")% &$(**-'&) '"("))*+, ,)()*+')& )&(')".$.
!'#$#$#""% &'().&,,' ')(&-.$)" ,$(&."'-& )&(+'-",-
!"#$#$#)"% ",'(""$-* *+'+"+))+ -*')*-*.. "-')+(+$-
!"#$#$#).% "-',$-.-( *"'$("*&( &('.".-(+ "&'-+$.**
!'#$#$#"'% &'(&$'")- ')(-&"*$. '+(,.+)). )"(*.-)&)
!'#$#$#",% &'(*$$$' ')('"&&', '.(&'.+'+ ).(*-$'*)
!"#$#$#)(% "-'".*($- **'&$($** -.'(.,($- ."'&--+."
!'#$#$#"&% &'(.$-+, ')($)'*)' '*('+&.&" ""(,"-)*
!"#$#$#),% "&'$($,() **'"*.+-- -"'(&,$(. .&'(++)$,
!'#$#$#".% &'(&*,$-. '"($*'$.& '+(".")' ),()&+*,)
!"#$#$#)&% "-').)")+ *)'&$$"&+ -,'.--,) .,',,)-&+
!'#$#$#"-% &'(,-$*++ ')(,$-''" '*(-."")' )&(+$&*+,
!"#$#$#)-% ",'()".(. **'$$,.(. -,'+(&"+. ",')()(+
!"#$#$#*$% "-'(.*-,& *+'-$",-+ -)'$&&($- .$'(*++*(
!'#$#$#"+% &'($"")$) '$(+)$-"& ,)(*,.$+- ),(*")$''
!"#$#$#*)% "&')-&.$* *+'$**,), -+'*(.$*" ..'$+**.)
!'#$#$#"*% &'($..-'* '$(.).+)- ,$(-.$.&" ",(.*,,+.
!"#$#$#**% "-'-"+&.- *"'$)(+&( &('-(+",& .*'-*(("-
!'#$#$#'$% &'('*&.- '$(+)'+)' ,)(-$,.'+ )&(*.-*')
3$)&A##"2;-'?"
b9#9;9-9%,&T":"-#
DF&5
<F&5 ['%"&*6&K+"$2'-&U+'(?"
!'#$#$#",% &'(*$$$' ).(*-$'*) !'#$#$#"&% &'(.$-+, ""(,"-)* !'#$#$#".% &'(&*,$-. ),()&+*,) !'#$#$#"-% &'(,-$*++ )&(+$&*+, !'#$#$#"+% &'($"")$) '$(+)$-"& ,)(*,.$+- ),(*")$'' !'#$#$#"*% &'($..-'* '$(.).+)- ,$(-.$.&" ",(.*,,+. !'#$#$#'$% &'('*&.- '$(+)'+)' ,)(-$,.'+ )&(*.-*') 6.27!%**0%/%8*
!"#$%& '$$()&*+$& ,-%./#0 1)/+2+*3 4+&+5+0+*3 !"#$#$#$% &'()")*+, '"(--.+,+ &)("-).+& '"(,'".' !"#$#"#$% .'($*""," "-(,+$', &$(,$.)*. )$($&)&*& !"#$#"#)% ."()''$). "+(+)-&&, ,'(*'-*+* )'(&+*'," !"#$#"#"% ."(',),$) "+(-&-&*- ,"(.$$."+ *(&.&-,. !"#$#'#$% &"().")$) ""(."**., *'(&&,"$' )+(-,&*"+ !"#$#'#)% &"(,.,)&+ ""(.-,".. *,(*&".$* "-(''"'". !"#$#'#"% &"().)&"" ""().*$"" *-(,-,',+ ")(&,)*&!"#)#$#$% &)(-,)'$, '$(&,+&+- &'(*$+&+- ''(+)&& !"#)#$#)% &,(*+ ')(&'.&&+ ,*('$')++ ")(*$--'* !"#)#$#"% &)()+*-'* "*()"*+". .$("-).&" '-(',,. !"#)#)#$% ,+($$$+"* "*(""--,& ,,(",$,+* *(+"-$-* !"#)#)#)% ,*($-&*,- "+(."$$-+ ,&('*.,. -(,'$'$, !"#)#)#"% &$(.&$+&) "+('-)'"" ,-(,&"+** "(','),) !'#$#$#$% &'(*-+.&* ')(+."-$& '-('*"+** ),(,.*+), !'#$#$#)% &'(-).',) ')(+&$,"' ,)(),.,-' ).(,.)*&!'#$#$#"% &,(*'&.$* '$(,$+',+ ,"("""',+ )-($-$""" !'#$#$#'% &'()'"*-) ')())"+&' ,$($')*" "$(.-)+,) !'#$#$#,% &,(",++$, '$(-')&'- '*(...*&- )*($+,,.) !'#$#$#&% &"(,-"&). ')(,+&&* ,)(.--*& "$(.,"$.+ !'#$#$#.% &,(".&'$* '"(.)&+-+ ''(*$*)*- -(')$'.& !'#$#$#-% &&(.,$--" ')("),++ '+($'),'& ))($+.+,. !'#$#$#+% &"(*$"'*) ')(),+,*. ,)($&+)&" )'(+.+$&+ !'#$#$#*% &'()*"&+& ')(+-).$. '+(*.'."' )+(),..'& !'#$#$#)$% &'($$)&+- '*()'"-+' )-()&'))!'#$#$#))% &)(-*-)++ ,$(**.*&- "$($**'". !'#$#$#)"% &'(-&-)*" ,$(,''+,) )&(+*'*'!'#$#$#)'% &,(')''' '-($'*$&) )*(,"+-$. !'#$#$#),% &"(*,&'++ ,'(+-"&,- ).(&)$&, !'#$#$#)&% &'(*'&&-' ,)(&'-)*, "'(**)+), !'#$#$#).% &,()$&),+ '*(,,$)&+ )-(+$'+!'#$#$#)-% &"(,$$++ ,)(.&''$, ),(,$&"+!'#$#$#)+% &'()'",-& ')(.)$-.) ,$(,,")$- )&(*"'... !'#$#$#)*% &'($,"'** ),(*-*,&, !'#$#$#"$% &&('..$), ).('-&.+& !'#$#$#")% &$(**-'&) )&(')".$. !'#$#$#""% &'().&,,' )&(+'-",!'#$#$#"'% &'(&$'")- )"(*.-)&)
!.#$#$#)% .&'-.((,( ")',,&,,, .('$*$)". *)')&+(&, !.#$#$#*% .('.$""$& ")'.&..(& .-'&$.,"- *&'(+),,+ .-'*(-"., "*'$&.)"- .(',.-&-) *.'-)*+,* !.#$#$#.% .&'*$,,- "$'*$-$+" .-'-(()&" +('*(,**!.#$#$#(% .,'-.(+$" "$',-).+, .&'-,&+&. *,')+)(+* !.#$#$#,% .('-&.*(, ")',.*.,- ..'"..*), *)'&.),-)
4th Settlement
Spaces
{2;0;0;0} 52.222478 31.488455 48.969654 39.89404
{2;0;2;0} 62.131844 28.230472 44.670295 11.151566
{2;0;2;1} 62.249444 28.681106 42.277219 11.383483
{2;0;2;2} 61.848653 28.554297 46.950737 13.194625
{2;0;3;0} 52.132035 22.346354 94.680159 25.918927
{2;0;3;1} 52.323053 22.016018 98.28708 21.551558
{2;0;3;2} 52.106416 22.133496 97.374336 21.52846
{2;1;0;0} 55.71469 31.336593 51.295398 31.510142
{2;1;0;1} 52.363115 31.641876 47.437133 25.433798
{2;1;0;2} 51.355204 29.623097 56.959823 32.705699
{2;1;1;0} 52.370265 29.834867 42.302743 3.864419
{2;1;1;1} 48.942478 27.538504 48.454212 12.871579
{2;1;1;2} 49.960206 28.145054 43.244612 12.457851
{3;0;0;0} 53.603208 30.864381 41.007611 16.980133
{3;0;0;1} 52.492647 31.752662 39.834705 18.486027
{3;0;0;2} 53.332083 30.704445 40.557835 21.292761
{3;0;0;3} 52.986645 30.661283 40.532537 21.335645
{3;0;0;4} 51.843995 31.285512 40.645664 18.257413
{3;0;0;5} 52.283797 31.691126 38.872743 13.524412
{3;0;0;6} 54.93281 31.566427 36.185664 13.035226
{3;0;0;7} 52.868391 31.272687 40.683347 18.890087
{3;0;0;8} 52.791394 31.925863 40.073739 19.243768
{3;0;0;9} 52.598713 31.824704 37.019197 16.381381
{3;0;0;10} 53.099475 31.367952 37.11737 18.244272
{3;0;0;11} 53.778616 30.36901 41.73749 16.17968
{3;0;0;12} 54.062708 31.076699 39.607257 16.352869
{3;0;0;13} 53.423846 30.91679 37.898294 17.078941
{3;0;0;14} 54.068044 30.975212 38.603912 16.607754
{3;0;0;15} 53.87377 31.580531 40.108814 10.419115
{3;0;0;16} 54.22115 30.490216 41.351721 14.571876
{3;0;0;17} 52.816372 31.71378 37.477939 16.973192
{3;0;0;18} 51.976622 32.088702 40.64028 16.492357
{3;0;0;19} 52.074795 31.38181 41.71794 16.103633
{3;0;0;20} 52.00823 31.367168 41.599204 13.23808
{3;0;0;21} 53.397712 32.068925 37.304893 15.481324
{3;0;0;22} 54.054091 31.255786 38.091695 18.311969
{3;0;0;23} 53.659501 32.233701 38.315398 14.482206
{3;0;0;24} 54.403374 31.770166 34.659912 14.126058
{3;0;0;25} 51.838855 31.741198 37.911481
{3;0;0;26} 52.846675
{3;0;0;8}
{3;0;0;17} 52.816372 31.71378 37.477939 16.973192
54.667894 30.16115 51.609593 21.569823
{3;0;0;18} 51.976622 32.088702 40.64028 16.492357
{3;0;0;19} 52.074795
{3;1;1;11} 52.413516 30.661078 52.782301 19.679731 {3;1;1;12} 53.321077
!+#,#,#,$% &('..)*-( +$',.,,& &,'.$-&-+ ",'&.-*"+
!+#,#,#,,% &"'(,+&,. +$'..,$)* &"')*"+$, ,-'.)-)+,
!+#,#,#,"% &+'+",$)) +$'-,$*$( (*'*+.".* ,&')--*).
!+#,#,#,+% &"'.*&.&& +$'+*$(.- &"'.&"**& ,-',"),.+
!+#,#,#,(% &('*&(-&. "-'.--*(& &"',$)"&) "+'$*),."
!+#,#,#,&% &('$$-,) "-'-)-+-" &&'$+&"", ,&'""..-&
!+#,#,#,.% &"',*&). +$'&-"-$. &+'&+&-&- ,)')$+(.*
!"#$#$#.$% "('*&&"+" ))'&&+-.+ ,.'&+" -*'+*()".
!"#$#$#..% ",'""$."& )+'+..")+ ,+'*$("$& -$'-*)&*
!"#$#$#.)% "&')+&&*+ )"'-+)(&) (&'+--"*+ "&',))().
6*-7!%**0%/%8*
!+#,#,#,)% &"')&.&&- +$'"..--, &+'-+,"** ,)'*).,""
6.27!%**0%/%8*
!+#,#,#,*% &('+*$&+, +$'$-,+(& &+'.****& ",'.*$&+*
!"#$%& '$$()&*+$& ,-%./#0 1)/+2+*3 4+&+5+0+*3
!"#$#$#$% &"'"""()* +,'(**(&& (*'-.-.&( +-'*-($(
!+#,#,#,-% &('$,,.,, "-'((+"+- &"'*,$+&( "&'+.&.)(
!+#,#,#"$% &+'&").) +$',(*-*" &,'*()*() ,*')-&)&)
!"#$#"#$% ."',+,*(( "*'"+$()" (('.)$"-& ,,',&,&..
!"#$#"#,% ."'"(-((( "*'.*,,$. ("'"))",- ,,'+*+(*+
!+#,#,#",% &"'&"*.&. +$'.-*),+ &+',$*-(. ,)',-&,+
!+#,#,#""% &+'+&$+"( +$'"++$&* &"'*&-"++ ,"'*)"+*)
!"#$#"#"% .,'*(*.&+ "*'&&("-) (.'-&$)+) ,+',-(."&
!"#$#+#$% &"',+"$+& ""'+(.+&( -('.*$,&- "&'-,*-")
!+#,#,#"+% &('(,$$&- "-')+$"&. &"'),+,&. ,-'-"*&+-
!+#,#,#"(% &+'&+*.$* "-',"("* &"'-&(*&, ""'((++),
!"#$#+#,% &"'+"+$&+ ""'$,.$,* -*'"*)$* ",'&&,&&*
!+#,#,#"&% &+'*,,))- +$'(&(,-& &,'&)+"$( ,+',-.+.&
!"#$#+#"% &"',$.(,. ""',++(-. -)'+)(++. ",'&"*(.
!"#,#$#$% &&'),(.- +,'++.&-+ &,'"-&+-* +,'&,$,("
!+#,#,#".% &"'+&+$) +$'"".+-" &,'-.-)", ,*')()-.)
!+#,#,#")% &+'--&,,* +$'$.("$( &"'*$(",* ,*',*,$&+
!"#,#$#,% &"'+.+,,& +,'.(,*). ()'(+),++ "&'(++)-*
!+#,#,#"*% &"'".*(*, +$'$*)"$& &+',"-$&. ,*'+)$*-)
!"#,#$#"% &,'+&&"$( "-'."+$-) &.'-&-*"+ +"')$&.--
!+#,#,#"-% &('*(*.)+ +$'&$").) ()'$*-&(, ,"'(,*)-&
!"#,#,#$% &"'+)$".& "-'*+(*.) ("'+$")(+ +'*.((,-
!+#,#,#+$% &"'&).)". +$'(*..)+ &,'+-+$-) ,&'*)$.+
!"#,#,#,% (*'-("()* ")'&+*&$( (*'(&("," ,"'*),&)-
!+#,#,#+,% &"'.,(-(- +$'"+)")) &$'"+"($+ "$'$.-$*"
!"#,#,#"% (-'-.$"$. "*',(&$&( (+'"((.," ,"'(&)*&,
!+#,#,#+"% &('&"*-+* "-'(&-$), &"',)"*+" ,-'*,)&((
!+#$#$#$% &+'.$+"$* +$'*.(+*, (,'$$).,, ,.'-*$,++
!+#,#,#++% &+'(*+*") +$',($.+( &,'&"$.,- ,*')-(,",
!+#$#$#,% &"'(-".() +,')&".." +-'*+()$& ,*'(*.$")
!+#$#$#"% &+'++"$*+ +$')$(((& ($'&&)*+& ",'"-").,
!+#,#,#+(% &"'+--"-- +$'*$"+&& &+'(*,-() ,)',-.-+*
!+#$#$#+% &"'-*..(& +$'..,"*+ ($'&+"&+) ",'++&.(&
!+#,#,#+&% &(')+.&&. "-'"+(&(+ &+'))-*+* ,.'*(.)*"
!+#$#$#(% &,'*(+--& +,'"*&&," ($'.(&..( ,*'"&)(,+
!+#,#,#+.% &&')+-.(. "-'+$-&$) &,'**-""- ,.'$**"*+
!+#$#$#&% &"'"*+)-) +,'.-,,". +*'*)")(+ ,+'&"((,"
!+#,#,#+)% &+'",*&&, +$'(,&")) &+'(-*,,- ,)',.,.,+
!+#,#,#+*% &+'$..+(& +$'+**$$- &(',(&(,. ,)'...))+
!+#$#$#.% &('-+"*, +,'&..(") +.',*&..( ,+'$+&"".
!+#,#,#+-% &+',.,"," +$'"&.,$. &+'(&-&-+ ,*'+$,+&(
!+#$#$#)% &"'*.*+-, +,'")".*) ($'.*++() ,*'*-$$*)
!"#$#$#$% "&'(($"$) ))'**+,&" ,+'"-$+"* -*')++,$)
!+#$#$#*% &"')-,+-( +,'-"&*.+ ($'$)+)+- ,-'"(+).*
!"#$#$#.% "('$*&&-. ))'-&,()+ ,+'+&,(,& "&'$)""$"
!+#$#$#-% &"'&-*),+ +,'*"()$( +)'$,-,-) ,.'+*,+*,
!"#$#$#.+% ",',$+*,) )"'$-(""- (,'$")$,, -$'+*$-*. !"#$#$#."% ",',&$.$- )"'.(.*-& (-'()".-. ""'$*.)$!"#$#$#.-% "&'"&&.") )+'.(*-", ,.'$..+)& -*'.,)--) !"#$#$#.*% "('$--(-( )"'.$++$. (&'-&&(," "-'*("&)& !"#$#$#.&% ",'$-$"+. ))'$*$+"+ ,*')-"-.+ ",'&&(()& !"#$#$#.(% "('(*-$,& )+'$)&"(& ,.'&$$"$& -*',"*(,) !"#$#$#.,% ",'.*+-*, )+'.-.*.+ ,.'(+")+( "('()&"*, !"#$#$#)$% "&'-,((.) ).'*-)".- ,"'",)",. *$'",-&+& !"#$#$#).% "('-+*&.( )+'"+(($. ,.'&(++*+ -+'*++*". !"#$#$#))% "('-$&*)+ )+'),()*( ,)'---&&& "-',$.&!"#$#$#)+% "('.&*+. )+'.+-&*. ,)'.*)&&, "('"(*))!"#$#.#$% ")'$)(,$, )-')$+.,* (+'$+*(*+ ")'**.&(* !"#$#.#.% +,'++*-,+ )"'&,)- (,'"$,-.+ +('&$*-$" !"#$#.#)% ")'.-*-() )*'),$(+ (.'.+"("- +"'$-...+ !"#$#.#+% ")'(-).+& )"'*.*-(& (&',&+)+* "+'+.+)+* !"#$#.#"% "$'&+,+(, )-'-"&", (+'.&.+*( "+'+)&",!"#$#)#$% +(',+,,.) )('*,*$-+ &+'$(&,() ""'&,)+., !"#$#)#.% +,'."()$. )('"-+-*, &.')$,&*" "+'..*).!"#$#)#)% +(',.$&$( )&'(,*&. &)'),*($* ".'-*(,-" !"#$#)#+% +*'*,$,." )&'*++"+& &-'$),.&" +('&.&$-+ !"#$#)#"% +('**.$)" )('$-*&.+ &"'*+&"$( "$'-$,&$& !-#$#$#$% !-#$#$#.% -&'"".$+) "$',,*&.. -*',.--&- +)'+(+&", !-#$#$#)% -&'&--,), "$',)(&*. -,'-.&+&- +$'&,+*-) -('..)+&( "$'&-&&+) -*'($($-+ ),'"+.)". !-#$#$#"% -*'*-(+$" ".'.*&+&- --'$,""(" +$'-$*)++ !-#$#$#-% -('(.)"," "$'-,((, -,'*)*(." +)'-+-*( !-#$#$#*% -&'&-+*"* ".'$*,&& -('.-,(&* )&'*$*&+. !-#$#$#&%
!+#$#$#,$% &+'$--()& +,'+.)-&" +)',,)+) ,*'"((")"
!"#$#$#)% "('".(),+ ).'))$$&* ,,'.)+$(- --'.-&*-"
F%+&A##"2;-'?" ['%"&*6&]029)9%,&7I/+'(?"
!+#$#$#,,% &+'))*.,. +$'+.-$, (,')+)(- ,.',)-.*
!"#$#$#+% ",')&"+.& )"'&(($,) ("'.-+&(* -.'."(+.+
!+#$#$#,"% &('$.")$* +,'$)..-- +-'.$)"&) ,.'+&"*.-
!"#$#$#"% "('&$*(+* ))'$&*.$* ,)'"+,)"( ",',($)-)
!+#$#$#,+% &+'("+*(. +$'-,.)- +)'*-*"-( ,)'$)*-(,
!"#$#$#-% ",'+$$.*) )"',.*,"& ("'"&**$( -.'-+((&*
!"#$#$#*% ",'$($)+, ))'.+$&& ,-'+*+".* -)'))&"$,
!+#$#$#,(% &('$.*$(( +$'-)&"," +*'.$+-," ,.'.$))&(
!"#$#$#&% "&',"*"", ).'(--(,* ,"'--,$)& *)',,)*""
!+#$#$#,&% &+'*)+)) +,'&*$&+, ($',$**,( ,$'(,-,,&
!"#$#$#(% "(')$,&, ))'&"+-.( ,)'+)"&-& -"'*-&"),
!+#$#$#,.% &('"",,& +$'(-$",. (,'+&,)", ,('&),*).
!"#$#$#,% "('-(,+.& )+'&."*++ ,$',$+*&, -$'&*&(-&
!+#$#$#,)% &"'*,.+)" +,'),+)* +)'())-+- ,.'-)+,-"
!+#$#$#,*% &,'-).."" +"'$**)$" ($'.($"* ,.'(-"+&)
!"#$#$#.$% "('*&&"+" ))'&&+-.+ ,.'&+" -*'+*()".
4@<
!+#$#$#,-% &"'$)()-& +,'+*,*, (,'),)-( ,.',$+.++
!"#$#$#..% ",'""$."& )+'+..")+ ,+'*$("$& -$'-*)&*
4 ]029)9%,&T":"-#
!+#$#$#"$% &"'$$*"+ +,'+.),.* (,'&--"$( ,+'"+*$*
!"#$#$#.)% "&')+&&*+ )"'-+)(&) (&'+--"*+ "&',))().
!+#$#$#",% &+'+-))," +"'$.*-"& +)'+$(*-+ ,&'(*,+"(
!"#$#$#.+% ",',$+*,) )"'$-(""- (,'$")$,, -$'+*$-*.
!"#$#$#."% ",',&$.$- )"'.(.*-& (-'()".-. ""'$*.)$-
!+#$#$#""% &('$&($-, +,'"&&)*. +*'$-,.-& ,*'+,,-.-
!"#$#$#.-% "&'"&&.") )+'.(*-", ,.'$..+)& -*'.,)--)
!+#$#$#"+% &+'.&-&$, +"'"++)$, +*'+,&+-* ,('(*""$.
!"#$%& '$$()&*+$& ,-%./#0 1)/+2+*3 4+&+5+0+*3 !"#$#$#$% &'()")*+, '"(--.+,+ &)("-).+& '"(,'".' !"#$#"#$% .'($*""," "-(,+$', &$(,$.)*. )$($&)&*& !"#$#"#)% ."()''$). "+(+)-&&, ,'(*'-*+* )'(&+*'," !"#$#"#"% ."(',),$) "+(-&-&*- ,"(.$$."+ *(&.&-,. !"#$#'#$% &"().")$) ""(."**., *'(&&,"$' )+(-,&*"+ !"#$#'#)% &"(,.,)&+ ""(.-,".. *,(*&".$* "-(''"'". !"#$#'#"% &"().)&"" ""().*$"" *-(,-,',+ ")(&,)*&!"#)#$#$% &)(-,)'$, '$(&,+&+- &'(*$+&+- ''(+)&& !"#)#$#)% &,(*+ ')(&'.&&+ ,*('$')++ ")(*$--'* !"#)#$#"% &)()+*-'* "*()"*+". .$("-).&" '-(',,. !"#)#)#$% ,+($$$+"* "*(""--,& ,,(",$,+* *(+"-$-* !"#)#)#)% ,*($-&*,- "+(."$$-+ ,&('*.,. -(,'$'$, !"#)#)#"% &$(.&$+&) "+('-)'"" ,-(,&"+** "(','),) !'#$#$#$% &'(*-+.&* ')(+."-$& '-('*"+** ),(,.*+), !'#$#$#)% &'(-).',) ')(+&$,"' ,)(),.,-' ).(,.)*&!'#$#$#"% &,(*'&.$* '$(,$+',+ ,"("""',+ )-($-$""" !'#$#$#'% &'()'"*-) ')())"+&' ,$($')*" "$(.-)+,) !'#$#$#,% &,(",++$, '$(-')&'- '*(...*&- )*($+,,.) !'#$#$#&% &"(,-"&). ')(,+&&* ,)(.--*& "$(.,"$.+ !'#$#$#.% &,(".&'$* '"(.)&+-+ ''(*$*)*- -(')$'.& !'#$#$#-% &&(.,$--" ')("),++ '+($'),'& ))($+.+,. !'#$#$#+% &"(*$"'*) ')(),+,*. ,)($&+)&" )'(+.+$&+ !'#$#$#*% &'()*"&+& ')(+-).$. '+(*.'."' )+(),..'& !'#$#$#)$% &'($$)&+- ')(."'&"" '*()'"-+' )-()&'))!'#$#$#))% &)(-*-)++ "$($**'". !'#$#$#)"% &'(-&-)*" )&(+*'*'!'#$#$#)'% &,(')''' )*(,"+-$. !'#$#$#),% &"(*,&'++ ).(&)$&, !'#$#$#)&% &'(*'&&-' "'(**)+), !'#$#$#).% &,()$&),+ )-(+$'+!'#$#$#)-% &"(,$$++ ),(,$&"+!'#$#$#)+% &'()'",-& )&(*"'... !'#$#$#)*% &'($,"'** ),(*-*,&, !'#$#$#"$% &&('..$), ).('-&.+& !'#$#$#")% &$(**-'&) )&(')".$. !'#$#$#""% &'().&,,' )&(+'-",!'#$#$#"'% &'(&$'")- )"(*.-)&)
!"#$#$#.*% "('$--(-( )"'.$++$. (&'-&&(," "-'*("&)&
!+#$#$#"(% &('($++)( +,'))$,.. +('.&--," ,(',".$&*
!"#$#$#.&% ",'$-$"+. ))'$*$+"+ ,*')-"-.+ ",'&&(()&
!+#$#$#"&% &,'*+**&& +,')(,,-* +)'-,,(*, ,*'-*"&)&
!+#$#$#".% &"'*(..)& +,'$,.("" ($'"$,-() ,)'("$$,&
!"#$#$#.(% "('(*-$,& )+'$)&"(& ,.'&$$"$& -*',"*(,)
!+#$#$#")% &+'$*"(") +,'"+&)- +-'-*-.&- "+'*.+*.-
!+#$#$#"*% &,'*+())- +,')+.+.( ($',.",-* ,*'&*&,")
!"#$#$#.,% ",'.*+-*, )+'.-.*.+ ,.'(+")+( "('()&"*, !"#$#$#)$% "&'-,((.) ).'*-)".- ,"'",)",. *$'",-&+&
!+#$#$#"-% &"'&**&" +,'+",.(- ($')&,*". ,"'$($,&.
!"#$#$#).% "('-+*&.( )+'"+(($. ,.'&(++*+ -+'*++*".
!+#$#$#+$% &('+&$*,. +$'(".$-. +-'-(,)- ,-'&+.+",
!"#$#$#))% "('-$&*)+ )+'),()*( ,)'---&&& "-',$.&-
!'#$#$#",% &'(*$$$' ).(*-$'*) !'#$#$#"&% &'(.$-+, ""(,"-)*
!'#$#$#".% &'(&*,$-. ),()&+*,) !'#$#$#"-% &'(,-$*++ )&(+$&*+, !'#$#$#"+% &'($"")$) ),(*")$''
!'#$#$#"*% &'($..-'* '$(.).+)- ,$(-.$.&" ",(.*,,+.
!'#$#$#'$% &'('*&.- '$(+)'+)' ,)(-$,.'+ )&(*.-*')
Quality Distribution on Heatmap Description
K+"&%+9#&#/$91%&%$'(#-'%"#&)9#/$"%"'%9'-&R0'-9%,&#/*$"#& 9(%*&'&/*(%9(0*0#&#/'-'$&69"-)&'/$*##&'�$6'/"&)*2'9(=& '--*.9(?&1"$6*$2'(/"&:'-0"#&%*&;"&$"')&'#&'&+"'%2'1@&^%& $"/"9:"#&'&!'%'K$""&*6'%9'-&9(#%'(/"&/"(%$"1*9(%#&'()& '&1'$'--"-&!'%'K$""&*6&R0'-9%,&:'-0"#=&'-*(?#9)"&'&-9#%&*6& )*2'9(�$6'/"#&%+'%&)"69("&%+"&$"?9*(&*6&":'-0'%9*(@&_*$& "'/+&;$'(/+=&%+"&#/$91%&'##9?(#&'	(?-"&$"1$"#"(%'%9:"& R0'-9%,&:'-0"&%*&'--&1*9(%#&9(&%+'%&;$'(/+&;,&$"')9(?&%+"&69$#%& :'-0"&*6&%+"&/*$$"#1*()9(?&R0'-9%,&;$'(/+=&%+"(&6-'%%"(#&%+"& "(%9$"&)'%'#"%&9(%*&1'9$")&-9#%#&*6&1*9(%#&'()&%+"9$&'##*/9'%")& R0'-9%9"#@&^%&%+"(&":'-0'%"#&"'/+�$6'/"&9()"1"()"(%-,&;,& #'21-9(?&9%#&29)1*9(%=&%$"'%9(?&%+9#&1*9(%&'#&%+"�$6'/"8#& $"1$"#"(%'%9:"&-*/'%9*(&6*$&9(%"$1*-'%9*(@&_$*2&%+9#&#'21-"& -*/'%9*(=&%+"&#/$91%&/*210%"#&)9#%'(/"#&%*&'--'%9'-&9(#%'(/"& /"(%$"1*9(%#&'()&#"-"/%#&*(-,&%+"&%+$""&("'$"#%&/*(%$9;0%*$#=& -929%9(?&%+"&9(6-0"(/"&#"%&%*&-*/'-&("9?+;*0$+**)&/*()9%9*(#& $'%+"$&%+'(&%+"&60--&1*9(%&69"-)@&K+"�$6'/"&:'-0"&9#&/'-/0-'%")& '#&'(&9(:"$#"H)9#%'(/"&."9?+%")&':"$'?"&*6&%+"#"&%+$""& R0'-9%,&:'-0"#=&0#9(?&''--&"1#9-*(&%*&':*9)	(?0-'$9%9"#& '%&("'$HJ"$*&)9#%'(/"#@&K+"&*0%10%&9#&'&-9#%&*6&#/'-'$&:'-0"#=& *("&1"$�$6'/"=&.+9/+&/'(&;"&:9#0'-9#")&'#&'&+"'%2'1& %*&)"#/$9;"&+*.&-*/'-9#")&R0'-9%,&/*(/"(%$'%9*(#&)9#%$9;0%"& '/$*##&%+"&)*2'9(@
Quality Distribution on Heatmap C#
kk&Z$'##+*11"$&Q/$91%&^(#%'(/" €$"?9*(&\#9(?# 0#9(?&Q,#%"2a 0#9(?&Q,#%"2@T9(Ra 0#9(?&Q,#%"2@U*--"/%9*(#a 0#9(?&Q,#%"2@U*--"/%9*(#@Z"("$9/a 0#9(?&Q,#%"2@!$'.9(?a 0#9(?&[+9(*a 0#9(?&[+9(*@Z"*2"%$,a 0#9(?&Z$'##+*11"$a 0#9(?&Z$'##+*11"$@l"$("-a 0#9(?&Z$'##+*11"$@l"$("-@!'%'a 0#9(?&Z$'##+*11"$@l"$("-@K,1"#a €"()$"?9*( 10;-9/&/-'##&Q/$91%t^(#%'(/"&g&Z]tQ/$91%^(#%'(/" &&:*9)&[0(Q/$91%f &&&&!'%'K$""Yc*9(%3)~'/"#= &&&&!'%'K$""Y)*0;-"~&R0'-9%9"#= &&&&T9#%YQ0$6'/"~&)*2'9(= &&&&$"6&*;`"/%&AW &&
&&&&T9#%Y)*0;-"~�$6'/"b'-0"#&Å&(".&T9#%Y)*0;-"~fWa &&&&/*(#%&)*0;-"&"1#&Å&4@444<a &&&&96&f#1'/"#&ÅÅ&(0--&ƒƒ&R0'-9%9"#&ÅÅ&(0--&ƒƒ&)*2'9(&ÅÅ&(0--W &&&&
&&&&&&A&Å�$6'/"b'-0"#a &&&&&&$"%0$(a &&&&‚
&&&&kk&HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH &&&&kk&S09-)&6-'%%"(")&-9#%&*6&f1*9(%=&R0'-9%,W &&&&kk&HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH &&&&T9#%Yc*9(%3)~&'--c*9(%#&Å&(".&T9#%Yc*9(%3)~fWa &&&&T9#%Y)*0;-"~&'--m0'-9%9"#&Å&(".&T9#%Y)*0;-"~fWa
&&&&6*$"'/+&fZ]tc'%+&1'%+&9('/"#@c'%+#W &&&& &&&&&&T9#%Yc*9(%3)~&1%#&Å'/"#@S$'(/+f1'%+Wa &&&&&&96&f1%#&ÅÅ&(0--&ƒƒ&1%#@U*0(%&ÅÅ&4W &&&&&&&&/*(%9(0"a &&&&&&T9#%Y)*0;-"~&R#&Å&R0'-9%9"#@S$'(/+f1'%+Wa &&&&&&)*0;-"&;$'(/+m0'-9%,&Å&4@4a &&&&&&96&fR#&„Å&(0--&qq&R#@U*0(%&~&4W &&&&&&&&;$'(/+m0'-9%,&Å&R#u4va &&&&&&"-#"
AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, “Missing or empty quality branch for path “ + path + “. Using 0.”);
foreach (Point3d p in pts) { allPoints.Add(p); allQualities.Add(branchQuality); }
} if (allPoints.Count == 0)
{ A = surfaceValues; return; }
// --------------------------------------------------
// Compute influence for each surface // Only the 3 nearest points are used // -------------------------------------------------for (int sIndex = 0; sIndex < domain.Count; sIndex++) { Surface srf = domain[sIndex];
if (srf == null) { surfaceValues.Add(0.0); continue; }
double u = srf.Domain(0).Mid; double v = srf.Domain(1).Mid;
Point3d C; try { C = srf.PointAt(u, v); } catch { surfaceValues.Add(0.0); continue; }
// ---- Find distances to all points ---List<Tuple<double, double>> distQualList = new List<Tuple<double, double>>();
for (int i = 0; i < allPoints.Count; i++) { double d = C.DistanceTo(allPoints[i]); distQualList.Add(new Tuple<double, double>(d, allQualities[i])); }
// ---- Sort by distance ---var nearest3 = distQualList.OrderBy(t => t.Item1).Take(3).
ToList(); if (nearest3.Count == 0) { surfaceValues.Add(0.0); continue; }
// ---- Weighted average over the 3 closest points ---double weightedSum = 0.0; double weightTotal = 0.0;
foreach (var pair in nearest3) { double d = pair.Item1; double q = pair.Item2; double w = 1.0 / (d + eps);
weightedSum += q * w; weightTotal += w; }
double val = (weightTotal > 0.0) ? (weightedSum / weightTotal) : 0.0; surfaceValues.Add(val); }
A = surfaceValues; } }
Heatmap Overlap of Main Quality Optimisation
!"#$7NG'&6*'866+EJ:)#+d'D9E";"*4')1;']0P'<+EL+,)*9,+'H+/*"016
!"#$7NK'71;'866+EJ:)#+d'8//096*"/'?0E@0,*')1;']0P'I"6"J":"*4'B)*+6
!"#$7NN'=,;'866+EJ:)#+d'I"6"J":"*4'-1[+:0L+6')1;']0P'D+)*'U+*,"/6
!"#$7NO'A*2'866+EJ:)#+d'D9E";"*4'?0,,";0,'!0,E)*"016
BIBLIOGRAPHY
Abdalla, Ahmed, Till Stellmacher, and Mathias Becker. 2022. “Trends and Prospects of Change in Wheat Self-Sufficiency in Egypt.” Agriculture 13 (1): 7. https://doi.org/10.3390/agriculture13010007
Al Asali, M. Wesam. 2022. “Vaulting Cultures in the Modern Middle East.” ANTA: Archives of New Traditional Architecture 3 (Spring): 88–95.
Alabsi, Akram Ahmed Noman, Yue Wu, Auwalu Faisal Koko, Khaled Mohammed Alshareem, and Roknizadeh Hamed. 2021. “Towards Climate Adaptation in Cities: Indicators of the Sustainable Climate-Adaptive Urban Fabric of Traditional Cities in West Asia.” Applied Sciences 11 (21): 10428. https://doi.org/10.3390/app112110428
Allard, Jean-Pierre, and Noureddine Atalla. 2009. Propagation of Sound in Porous Media: Modelling Sound Absorbing Materials. 2nd ed. Chichester: Wiley.
Bagasi, Abdullah Abdulhameed, John Kaiser Calautit, and Abdullah Saeed Karban. 2021. “Evaluation of the Integration of the Traditional Architectural Element Mashrabiya into the Ventilation Strategy for Buildings in Hot Climates.” Energies 14 (3): 530. https://doi.org/10.3390/en14030530
Bagheri, Pouyan, Ivan Gratchev, and Maksym Rybachuk. 2023. “Effects of Xanthan Gum Biopolymer on Soil Mechanical Properties.” Applied Sciences 13 (2). https://doi.org/10.3390/app13020887
Bassily, Eman Faiez Maher, and Tamer Refaat. 2021. “The Features and Characteristics of Desert Societies in Spontaneous Oasis Architecture: A Case Study of Al-Bawiti Low Surface, Bahariya Oasis.” International Journal of Applied Science and Research 4 (5): 268–87.
Beazley, Elisabeth, and Michael Harverson. 1982. Living with the Desert: Working Buildings of the Iranian Plateau. Warminster: Aris & Phillips.
Benedikt, Michael. 1979. “To Take Hold of Space: Isovists and Isovist Fields.” Environment and Planning B: Planning and Design 6 (1): 47–65.
Block, Philippe, and John Ochsendorf. 2007. “Thrust Network Analysis: A New Methodology for Three-Dimensional Equilibrium.” International Journal of Solids and Structures 44 (16): 4342–58.
Block Research Group, eds. 2017. Beyond Bending: Reimagining Compression Shells. Munich: DETAIL. https://doi. org/10.11129/9783955533915
Brzyski, Przemysław, Zbigniew Suchorab, and Grzegorz Łagód. 2021. “The Influence of Casein Protein Admixture on Pore Size Distribution and Mechanical Properties of Lime-Metakaolin Paste.” Buildings 11 (11). https://doi.org/10.3390/ buildings11110530
Cox, Trevor J., and Peter D’Antonio. 2009. Acoustic Absorbers and Diffusers: Theory, Design and Application. 2nd ed. Boca Raton, FL: CRC Press.
Damluji, Salma Samar, and Viola Bertini. 2018. Hassan Fathy: Earth & Utopia. London: Laurence King Publishing.
Das, Bhumika, and Soumya S. Singha. 2024. “Strategies for Mitigating Water Scarcity in Arid and Semi-Arid Regions: Case Study.” Journal of Technology 12 (6): 785–98.
de Vries, Andries Jan, Moshe Armon, Klaus Klingmüller, Raphael Portmann, Matthias Röthlisberger, and Daniela I. V. Domeisen. 2024. “Breaking Rossby Waves Drive Extreme Precipitation in the World’s Arid Regions.” Preprint, February 2024.
Elnaggar, Abdelhamid. 2014. “Environmental Sensitivity to Desertification in Bahariya Oasis, Egypt.” Egyptian Soil Sci. Soc. J. (ESSSJ) 16.
Elnaggar, Abdelhamid, Kh El-Hamdi, Abdelaziz Belal, and Mohamed Kafrawy. 2013. “Soil Classification of Bahariya Oasis Using Remote Sensing and GIS Techniques.” Journal of Soil Science and Agricultural Engineering, Mansoura University 4 (September): 921–47. https://doi.org/10.21608/jssae.2013.52488
Fathy, Hassan. 1973. Architecture for the Poor: An Experiment in Rural Egypt. Chicago: University of Chicago Press.
———. 1986. Natural Energy and Vernacular Architecture: Principles and Examples with Reference to Hot Arid Climates. Chicago: University of Chicago Press.
Filippi, Francesca De. 2006. Traditional Architecture in the Dakhleh Oasis, Egypt: Space, Form and Building Systems.
Gao, Xuejie, and Filippo Giorgi. 2008. “Increased Aridity in the Mediterranean Region under Greenhouse Gas Forcing Estimated from High Resolution Simulations with a Regional Climate Model.” Global and Planetary Change 62 (June): 195–209. https:// doi.org/10.1016/j.gloplacha.2008.02.002
Gobinath, Ravindran, Isaac Ibukun Akinwumi, Olaniyi Diran Afolayan, et al. 2020. “Banana Fibre-Reinforcement of a Soil Stabilised with Sodium Silicate.” Silicon 12 (2): 357–63. https://doi.org/10.1007/s12633-019-00124-6
Grigoriadis, Kostas, ed. 2016. Mixed Matters: A Multi-Material Design Compendium. Berlin: Jovis.
Haaf, W. 1984. “Solar Chimneys: Part II: Preliminary Test Results from the Manzanares Pilot Plant.” International Journal of Solar Energy 2 (2): 141–61.
Hamdan, Ali, and Rashad Sawires. 2011. “Hydrogeological Studies on the Nubian Sandstone Aquifer in El-Bahariya Oasis, Western Desert, Egypt.” Arabian Journal of Geosciences 6 (May). https://doi.org/10.1007/s12517-011-0439-8
Hamidian, Ali, Mehdi Ghorbani, Mahsa Abdolshahnejad, and Aziz Abdolshahnejad. 2015. “Qanat, Traditional Eco-Technology for Irrigation and Water Management.” Agriculture and Agricultural Science Procedia 4: 119–25. https://doi.org/10.1016/j. aaspro.2015.03.014
Hannouch, A. 2019. “Acoustics in Earth Architecture: Modelling the Sonic Performance of Vaulted Clay Structures.” Building Acoustics 26 (1): 45–60.
Hillier, Bill, and Julienne Hanson. 1984. The Social Logic of Space. Cambridge: Cambridge University Press.
International Electrotechnical Commission. 2013. IEC 61672-1: Electroacoustics—Sound Level Meters—Part 1: Specifications. Geneva: IEC.
Izadpanahi, Somayeh, Leila Farahani, and Reza Nikpey. 2021. “Green Shading and Outdoor Thermal Comfort in Arid Climates: A Parametric Analysis of Vegetation Patterns.” Energy and Buildings 231: 110592.
Kang, Jian, and Brigitte Schulte-Fortkamp. 2016. Soundscape and the Built Environment. Boca Raton, FL: CRC Press.
Klemm, O., et al. 2012. “Fog as a Fresh-Water Resource: Overview and Perspectives.” Ambio 41 (3): 221–34.
Krisst, R. 1983. “Solar Chimney for Power Generation.” Applied Energy 13 (2): 83–100.
Lawrence, M. 2005. “The Relationship Between Relative Humidity and the Dew Point Temperature in Moist Air: A Simple Conversion and Applications.” Bulletin of the American Meteorological Society 86 (2): 225–34.
Lee, Jong-Kook, Jee-Eun Lee, Seong-Cheol Park, et al. 2015. “A Study on Water-Repellent Effectiveness of Natural Oil-Applied Soil as a Building Material.” Open Journal of Civil Engineering 5 (January): 139–48. https://doi.org/10.4236/ojce.2015.51014
Li, Yang, et al. 2025. “Optimising Evaporative Cooling for Passive Thermal Comfort in Arid Urban Landscapes.” Sustainable Cities and Society 102: 104665.
Lighthill, M. J. 1952. “On Sound Generated Aerodynamically. I. General Theory.” Proceedings of the Royal Society of London. Series A 211 (1107): 564–87.
Manning, J. G. n.d. Water, Irrigation and Their Connection to State Power in Egypt.
Margolis, Liat, Aziza Chaouni, and Rahul Mehrotra, eds. 2014. Out of Water: Design Solutions for Arid Regions. Baden: Lars Müller Publishers.
Minke, Gernot. 2006. Building with Earth. Basel: Birkhäuser. https://doi.org/10.1007/3-7643-7873-5
Moghazy, Noha H., and Jagath J. Kaluarachchi. 2020a. “Assessment of Groundwater Resources in Siwa Oasis, Western Desert, Egypt.” Alexandria Engineering Journal 59 (1): 149–63. https://doi.org/10.1016/j.aej.2019.12.018
———. 2020b. “Sustainable Agriculture Development in the Western Desert of Egypt: A Case Study on Crop Production, Profit, and Uncertainty in the Siwa Region.” Sustainability 12 (16): 6568. https://doi.org/10.3390/su12166568
Mohamed, Ahmed, Ezzat Ahmed, Fahad Alshehri, and Ahmed Abdelrady. 2022. “The Groundwater Flow Behavior and the Recharge in the Nubian Sandstone Aquifer System during the Wet and Arid Periods.” Sustainability 14 (11): 6823. https://doi. org/10.3390/su14116823
Mohamed, Amr, Ali Ali, and Ahmed Abd El-Ghany. 2017. “Irrigation Water Management of Date Palm under El-Baharia Oasis Conditions.” Egyptian Journal of Soil Science 57 (4): 469–84. https://doi.org/10.21608/ejss.2017.1609.1123
Mora-Ruiz, Viviana, Jonathan Soto-Paz, Shady Attia, and Cristian Mejía-Parada. 2025. “Sustainable Earthen Construction: A Meta-Analytical Review of Environmental, Mechanical, and Thermal Performance.” Buildings 15 (6): 918. https://doi. org/10.3390/buildings15060918
Nasla, S., K. Gueraoui, Mohammed Cherraj, et al. 2021. “An Experimental Study of the Effect of Pine Needles and Straw Fibres on the Mechanical Behaviour and Thermal Conductivity of Adobe Earth Blocks with Chemical Analysis.” JP Journal of Heat and Mass Transfer 23 (June). https://doi.org/10.17654/HM023010035
Rabeh, Taha, Said Bedair, and Mohamed Abdel Zaher. 2018. “Structural Control of Hydrogeological Aquifers in the Bahariya Oasis, Western Desert, Egypt.” Geosciences Journal 22 (1): 145–54. https://doi.org/10.1007/s12303-016-0072-3
Rawat, Sanket, Paul Saliba, Peter C. Estephan, Farhan Ahmad, and Yixia Zhang. 2024. “Mechanical Performance of Hybrid FibreReinforced Magnesium Oxychloride Cement Based Composites at Ambient and Elevated Temperature.” Buildings 14 (1): 270. https://doi.org/10.3390/buildings14010270
Sahebzadeh, Sadra, Abolfazl Heidari, Hamed Kamelnia, and Abolfazl Baghbani. 2017. “Sustainability Features of Iran’s Vernacular Architecture: A Comparative Study between the Architecture of Hot–Arid and Hot–Arid–Windy Regions.” Sustainability 9 (5): 749. https://doi.org/10.3390/su9050749
Savioja, Lauri, and U. Peter Svensson. 2015. “Overview of Geometrical Room Acoustic Modeling Techniques.” The Journal of the Acoustical Society of America 138 (2): 708–30. https://doi.org/10.1121/1.4926438
Schafer, R. Murray. 1977. The Soundscape: Our Sonic Environment and the Tuning of the World. Rochester: Destiny Books.
Schlaich, J., R. Bergermann, W. Schiel, and G. Weinrebe. 1995. “Design of Commercial Solar Updraft Tower Systems—Utilisation of Solar Induced Convective Flows for Power Generation.” Journal of Solar Energy Engineering 127 (1): 117–24.
Shakibamanesh, Amir. 2017. “Assessing the Value of Qanat System of Yazd in Promoting Urban Climate Resilience.” International Journal of Architectural and Environmental Engineering 11 (1): 113–24.
Torelli, Giacomo, Mar Giménez Fernández, and Janet M. Lees. 2020. “Functionally Graded Concrete: Design Objectives, Production Techniques and Analysis Methods for Layered and Continuously Graded Elements.” Construction and Building Materials 242 (May): 118040. https://doi.org/10.1016/j.conbuildmat.2020.118040
.
Yenice, Yagmur, and Daekwon Park. 2019. “V-INCA: Designing a Smart Geometric Configuration for Dry-Masonry Wall.” Proceedings of the 39th Annual Conference of the Association for Computer Aided Design in Architecture (ACADIA).
Yu, Rongjin, and Pavel Kabele. 2019. “Functionally Graded Concrete: A Review of Materials, Production Methods, and Structural Applications.” Cement and Concrete Composites 104: 103–22. https://doi.org/10.1016/j.cemconcomp.2019.103122
.
LIST OF FIGURES
Fig.01 Water Extraction in the Bahariya Oasis; Photographed by GUIZIOU Franck
Fig.02 Agriculture Fields in The Bahariya Oasis; Photographed by NASA Earth Observatory
Fig.03 Aridity Index Classification; Created by Author; According to the Map Published by the UN Environmental Programme
Fig.04 Risk of Human Induced Desertification; Created by Author; According to the Map Published by the US Department of Agriculture
Fig.05 Water Scarcity Vulnerabilty Classification; Created by Author; According to the projections of the IWMI for 2050 (increase in temperature 2.8-4.6 °C by 2100)
Fig.06 Simplified Global Ground Water Resources; Created by Author; adapted from UNESCO–IAH groundwater atlas
Fig.07 Simplified Global Ground Water Resources; Created by Author; adapted from UNESCO–IAH groundwater atlas
Fig.08 Areial View of Cairo, Egypt; Photographed by James-L-Stanfield
Fig.09 Populated land in Egypt; Created by Author; Adapted from Google Earth Pro Data
Fig.10 Water Collection Practice at a Communal Source (Created by the Author)
Fig.11 Water Consumption and Resources in Egypt; Created by Author; According to data obtained from the Egyptian Central Agency for Public Mobilisation and Statistics (CAPMAS)
Fig.12 Egypt’s Map Highlighting Existing Oases and Major Cities; Created by Author; Adapted from Google Earth Pro Data
Fig.13 Boundries of the Nubian Sandstone Aquifer; Created by Author; Modified from Thorweihe (1990)
Fig.14 Map of The Bahariya Oasis Highlighting Aquifer Qualities; Created by Author; According to data obtained from Rabea (2018)
Fig.15 The Economic Structure of Bahariya Oasis; Created by Author; based on data from Central Agency for Public Mobilisation and Statistics (CAPMAS), 2022
Fig.16 The English Volcanic Mountains, Bahariya; Extracted from Flickr; Photographed by Unknown
Fig.17 Al-Bawitie Village, Bahariya; Extracted from Encyclopedia Britannica; Photographed by Unknown
Fig.18 Camping Sites along the Salt Mountains, Bahariya; Extracted by TripAdvisor; Photographed by Unknown
Fig.19 Settlement Analysis Map; Created by Author; Adapted from Google Earth Pro Data
Fig.20 Monthly Average Temperature and Humidity in Bahariya Oasis; Created by Author; based on data from the Egyptian Meteorological Authority
Fig.21 Predominant Wind Vector Direction Over the Bahariya Oasis; Created by Author, referencing Wind Map Data Service. Accessed [2025]. https://www.windy.com
Fig.22 Sand Storm over Agriculture Fields, Egypt; Extracted from natureunfolding.wordpress.com; Photographed by D Varro
Fig.23 Sand Storm over Al-Bawitie Village, Bahariya; Extracted from sawti.com; Photographed by Unknown
Fig.24 Effect of Sandstorms on Urban Landscape; Cairo, Egypt; Extracted from byozarab.media; Photographed by Unknown
Fig.25 Khamseen Wind Vector Direction Over the Bahariya Oasis; Created by Author, referencing Wind Map Data Service. Accessed [2025]. https://www.windy.com
Fig.26 Surface Water Within Low Terrain Areas, Bahariya; Extracted from marsaalamtours.com; Photographed by Unknown
Fig.27 Mountain Valleys in Bahariya; Photographed by “Egypt Travel Gate”
Fig.28 The White Desert; Salt Mountains in Bahariya; Extracted from viator.com; Photographed by Unknown
Fig.29 Topography Analysis on QGIS Mesh of Bahariya’s Landscape; Created by author based on the NASA SRTM DEM (30 m resolution, 2000)
Fig.30 Run-Off Analysis on QGIS Mesh of Bahariya’s Landscape; Created by author based on the NASA SRTM DEM (30 m resolution, 2000)
Fig.31 Concavity Analysis on QGIS Mesh of Bahariya’s Landscape; Created by author based on the NASA SRTM DEM (30 m resolution, 2000)
Fig.32 Al-Bawitie Society (Created by the Author)
Fig.33 Al-Bawitie Plantations (Created by the Author)
Fig.34 Consolidated Map Data (Created by the Author)
Fig.35 Redrawn plan of Hassan Fathy’s “Hasan Rashad House, Tanta, Egypt.”; Created by author based on Steele, An Architecture for People: The Complete Works of Hassan Fathy (1997)
Fig.36 New Gourna Village in Luxor, Egypt; extracted from researchgate.net; Photographed by Unknown; Source: Wael A Yousuf, The challenge of sustainability in developing countries and the adaptation of heritage-inspired architecture in context
Fig.37 New Baris Village in New Valley, Egypt; extracted from researchgate.net; Photographed by Unknown; Source: Ayah Ramadan, Towards Low Energy Buildings through a Prototype of Desert Rural House in Alwadii Algadid in Egypt
Fig.38 New Gourna Village in Luxor, Egypt; Created by author based on the site plan by Hassan Fathy, ca. 1946–52; Digital Collections, The American University in Cairo
Fig.39 New Baris Village in New Valley, Egypt; Created by author based on the site plan by Hassan Fathy, 1967; MIT Libraries
Visual Collections
Fig.40 A Close-up of Houses in Yazd, Iran; Extracted from Encyclopedia Britannica; Photographed by Unknown
Fig.41 Aerial View of Yazd, Iran; Extracted from istockphoto.com; Photographed by zanskar
Fig.42 Narrow, Covered Alleyways in Yazd, Iran; Extracted from researchgate.net; Photographed by Unknown; Source: Ahad Mohammadi et al., The most suitable walking route for tourism through the historical-cultural fabric of Yazd City
Fig.43 Urban Analysis of Yazd, Iran; Created by the author based on Google Earth Pro imagery
Fig.43 A Study of the Ab-Anbar System (Created by the Author)
Fig.44 An Ab-anbar in the Central Desert City of Naeen, Iran; extracted from researchgate.net; Photographed by Unknown; Source: Fatemeh Afsahhosseini, The impact of Iran’s urban heritage on sustainability, climate change and carbon zero
Fig.45 A Qanat Interior; Extracted from flickr.com; Photographer Unknown
Fig.46 The Canals of A Persian Aqueduct System in Iran; Extracted from orienttrips.com; Photographed by Unknown
Fig.47 Qanat System: Water Distribution from Aquifer to Household; Created by author based on descriptions and diagrams of Ab-Anbar cistern and qanat systems in Iran
Fig.48 Wadi-Hanifeh Water Distribution Project by Thomson Consultants (Created by the Author)
Fig.49 Vena 1 Project by ORE, Copper-Alloy Water Condensation System (Created by the Author)
Fig.50 Schematic Diagram of Dow To Earth Cistern System; Created by author, adapted from Out of Water (2015)
Fig.51 Schematic Diagraming of Cyclical Water Systems; Created by author, adapted from Out of Water (2015)
Fig.52 Wooden Lattice Screens (Mahsrabiyas); Extracted from x.com/MuslimCulture; Photographed by Waheed Sobhi
Fig.53 House in Dakheh Oasis, Egypt; Extracted from flickr.com; Photographed by Unknown
Fig.54 Floor Plans for a House in Dakhleh Oasis; Created by author based on field plans in Traditional Architecture in the Dakhleh Oasis, Egypt: Space, Form and Building Systems (2011)
Fig.55 Hassan Fathy’s Vaulted Structures, New Baris; Extracted from sensesatlas.com; Photographed by Unknown
Fig.56 Wind towers in Yazd, Iran.; Extracted from flickr.com; Photographed by Krzysztof Nitj’ Sefni
Fig.57 Hassan Fathy’s Domed Housing, New Gourna; Extracted from see.news; Photographed by Ahmed Yasser
Fig.58 Section of Shavadan, Iran (Created by the Author)
Fig.59 Section of Wind Tower, Iran; Created by author based on descriptions and diagrams of Shavdans and Wind Towers in Iran
Fig.60 Section of Hassan Fathy’s Housing, New Gourna; Created by author based on Steele, An Architecture for People: The Complete Works of Hassan Fathy (1997)
Fig.61 Opening in Vaulted Structures, Photographer Unknown
Fig.62 Basilica Cistern, Instabul, Türkiye; Photographed by Ross Tanner
Fig.63 Design Strategies (Created by the Author)
Fig.63 Anatomy and nomenclature of centering; Created by author; adapted from Auroville Earth Institute. Building with arches, vaults and domes (1996)
Fig.64 Digital Elevation Model of Bahariya Oasis (Created by author)
Fig.65 Aquifer Analysis Through Pedective Modelling (Created by author)
Fig.66 Cellular Automata Organization of a 1200 People Settlement (Created by author)
Fig.67 Primary Water Network Generated through Shortest Walk (Created by author)
Fig.67 V-INCA Block Family Generated From A Four-Unit Configurable Mould; Created by author; adapted from V-INCA: Designing a Smart Geometric Configuration for Dry-Masonry Wall
Fig.68 Rhino Ecologic Model of an Agriculture Plot (Created by author)
Fig.69 Vault equilibrium simulation with Kangaroo dynamic relaxation. (Created by author)
Fig.70 TNA for overall form, horizontal forces, and vertical forces (Created by author)
Fig.72 Compression Testing of Sample Block Under Applied Weights (Created by author)
Fig.73 CFD Analysis of Atmospheric Water Haevesting Tower (Created by author)
Fig.74 Lady Bug Simulation of Incident Radiation on Housing Plot (Created by author)
Fig.75 Karamba 3D Deflection Analysis on Vaulted Roof System (Created by author)
Fig.76 Examples of Generated Housing Typologies through Wallacie (Created by author)
Fig.77 HoneyBee Simulations with EnergyPlus for indoor air temperature (Created by the Author)
Fig.78 HoneyBee Simulations with EnergyPlus for indoor air temperature (Created by the Author)
Fig.79 Pachyderm Acoustic Simulation (Created by the Author)
Fig.80 Examples of Visual Analysis Using Isovists (Created by the Author)
Fig.81 Voxelised Geometries Arranged by the Algebraic Synthesis (Created by the Author)
Fig.82 Settlement Qualitative Values Used as Benchmarks in Multi-Objective Optimisation (Created by the Author)
Fig.82 Thermal Testing Of Block Samples Using Hot Plate Setup (Created by author)
Fig.83 Design Problem and Hypothesis Diagram (Created by the Author)
Fig.84 Projection of Architectural Units from Rule-Based Aggregation (Created by the Author)
Fig.85 Urban Discontinuities (Created by the Author)
Fig.86 Unit Clashes (Created by the Author)
Fig.87 Clash Catalogue (Created by the Author)
Fig.88 Abstraction and Identification Process (Created by the Author)
Fig.89 Condensation Farm Aggregate State (Created by the Author)
Fig.90 Condensation Tower Vertical Stratification (Created by the Author)
Fig.91 Condensation Farm Lateral Decomposition (Created by the Author)
Fig.92 Pedestrian and Water Networks of Condensation Towers (Created by the Author)
Fig.93 Cistern Aggregate State (Created by the Author)
Fig.94 Cistern Vertical Stratification (Created by the Author)
Fig.95 Lateral Decomposition (Created by the Author)
Fig.96 Water Storage Segment (Created by the Author)
Fig.96 Grid Division of Proposed Site for Development (Created by author)
Fig.97 Communal Space Segment (Created by the Author)
Fig.98 Public Space Segment (Created by the Author)
Fig.99 Residential Cluster Aggregate State (Created by the Author)
Fig.99 Cellular Automata Horizontal Placement Rules (Created by author)
Fig.100 Residential Cluster Lateral Decomposition (Created by the Author)
Fig.101 Final Aggregation of Units based on Stated Rules (Created by author)
Fig.101 Residential Cluster Vertical Stratification (Created by the Author)
Fig.102 Courtyard Typology Encoding Process (Created by the Author)
Fig.103 Emergence of Shaded Alley (Created by the Author)
Fig.104 Agriculture Unit Aggregate State (Created by the Author)
Fig.105 Agriculture Unit Vertical Decomposition (Created by the Author)
Fig.106 Condensation Pools’ Path and Water Networks (Created by the Author)
Fig.107 Agriculture Vertical Stratification (Created by the Author)
Fig.108 Agriculture Progressive Elevation Patterns (Created by the Author)
Fig.109 Abstraction Summary (Created by the Author)
Fig.110 Intrinsic and Transmissive Qualities (Created by the Author)
Fig.111 Thermal Categorisation (Created by the Author)
Fig.112 Humidity Categorisation (Created by the Author)
Fig.113 Accoustic Categorisation (Created by the Author)
Fig.114 Visual Categorisation (Created by the Author)
Fig.115 Overall Qualitative Assesment (Created by the Author)
Fig.116 Neighbourhood Scale (Created by the Author)
Fig.117 Typological Instances Per Unit (Created by the Author)
Fig.118 Spatial Strata (Created by the Author)
Fig.119 Clustering Patterns (Created by the Author)
Fig.119 Thermal conductivity of candidate stabilised-earth mixes; Created by the author, based on physical tests
Fig.120 Condensation Tower Strata Occupation (Created by the Author)
Fig.121 Spaces Vertical Projection Constraints (Created by the Author)
Fig.122 Example of Residual Public Spaces from Abstraction (Created by the Author)
Fig.123 Agricultural Field and Garden Patterns (Created by the Author)
Fig.124 Path Networks and Their Algebraic Operations (Created by the Author)
Fig.125 Qualitative Calculations in Aggregate State (Created by the Author)
Fig.126 Qualitative Maps of Original Assembly (Created by the Author)
Fig.127 Origianl Assembly Synthesised State (Created by the Author)
Fig.128 1st Assemblage HeatMaps (Created by the Author)
Fig.129 1st Assemblage Masterplan (Created by the Author)
Fig.130 Qualitative Maps of 2nd Assemblage (Created by the Author)
Fig.131 2nd Assemblage Masterplan (Created by the Author)
Fig.132 Qualitative Maps of 3rd Assemblage (Created by the Author)
Fig.133 3rd Assemblage Masterplan (Created by the Author)
Fig.133 Erection sequence for a dry-joint vault. Created by the author
Fig.134 Qualitative Maps of 4th Assemblage (Created by the Author)
Fig.135 4th Assemblage Masterplan (Created by the Author)
Fig.136 Reassembly Process (Created by the Author)
Fig.136 Housing Unit Visualiation (Created by author)
Fig.137 Axonometric View of the Four Assemblages (Created by the Author)
Fig.138 Architectural Translation of Abstracted Spatial Instances (Created by the Author)
Fig.139 Communal Space Vertical Arrangement (Created by the Author)
Fig.140 Vertical Limitations of Public Spaces (Created by the Author)
Fig.141 Communal and Public Space Section (Created by the Author)
Fig.142 Water Storage Recesion Logic (Created by the Author)
Fig.143 Terrace System Configurations (Created by the Author)
Fig.144 Cistern and Ground-Level Path Networks Section (Created by the Author)
Fig.145 Minimised Exposed Pedestrian Area (Created by the Author)
Fig.146 Ground Level Path Subterranean Footprint (Created by the Author)
Fig.147 Ground-Level and Water Network Section (Created by the Author)
Fig.148 Garden Formation fron Agriculture Planning (Created by the Author)
Fig.149 Water-Subterranean Path Crossover (Created by the Author)
Fig.150 Agricultural Plot Section (Created by the Author)
Fig.151 Settlement Segments (Created by the Author)
Fig.152 Mashrabiya Shades in Residential Courtyard (Created by the Author)
Fig.153 1st Assemblage: Housing CLuster Floorplan (Created by the Author)
Fig.154 Residential Units along Purification Pools and Agricultural Plots (Created by the Author)
Fig.155 Shaded Residential Entrances (Created by the Author)
Fig.156 1st Assemblage: Section (Created by the Author)
Fig.157 Collonade Systems on Water Networks (Created by the Author)
Fig.158 2nd Assemblage: Garden Formations amongst Residential Clusters (Created by the Author)
Fig.159 Pahts along Condensation Towers (Created by the Author)
Fig.160 Sealed Paths and Gardens (Created by the Author)
Fig.161 2nd Assemblage: Section (Created by the Author)
Fig.162 Public Space Market (Created by the Author)
Fig.163 3rd Assemblage: Public Space Floorplan (Created by the Author)
Fig.164 Public Space Subterranean View (Created by the Author)
Fig.165 Public Space View from Ground-Level (Created by the Author)
Fig.166 3rd Assemblage: Section (Created by the Author)
Fig.167 Exposed Water Pools (Created by the Author)
Fig.168 4th Assemblage: Cistern Floorplan (Created by the Author)
Fig.169 Condensation Pools (Created by the Author)
Fig.170 Agricultural Plots Ascending to the Ground Level (Created by the Author)
Fig.171 4th Assemblage: Section (Created by the Author)
Fig.172 1st Assemblage View (Created by the Author)
Fig.173 4th Assemblage View (Created by the Author)
Fig.174 3rd Assemblage View (Created by the Author)
Fig.175 Clash Matrix (Created by the Author)
Fig.176 Material Samples (Created by author)
Fig.177 Topographical Map of Bahariya Oasis (Created by author)
Fig.178 Section of Bahariya Oasis Soil Layers (Created by author)
Fig.179 Magnetic Sounding Station Points and Well Locations Within The Oasis (Created by author)
Fig.180 3D Visualisation Of The Predictive Model Output For Aquifer Depth And Accessibility (Created by author)
Fig.181 Aquifer Accessibilty Gradient Map (Created by author)
Fig.182 Aquifer Depth Gradient Map (Created by author)
Fig.183 Soil Quality Gradient Map (Created by author)
Fig.184 Site Integration Gradient Map (Created by author)
Fig.185 Weighted Criteria Gradient Map (Created by author)
Fig.186 Site Selection Map Showing Optimal Expansion Locations And Selected Settlement Site (Created by author)
Fig.187 Grid Division of Selected Site with Optimal Well Loca- (Created by the Author)
Fig.188 Allocation of Resources and Consumption to Architectural Unit (Created by the Author)
Fig.189 Cellular Automata Vertical Placement Rules (Created by author)
Fig.190 Settlement of 1200 People (Created by author)
Fig.191 Primary Water Network of Generated Settlement (Created by author)
Fig.192 Road Networks (Created by author)
Fig.193 Axonmetric Diagram of Road Network (Created by author)
Fig.194 Water Network (Created by author)
Fig.195 Axonmetric Diagram of Water Network (Created by author)
Fig.196 Material Samples (Created by author)
Fig.197 Mud Brick Buildings in Siwa Oasis, Egypt (Created by the Author)
Fig.198 Brickmaking in the Village of New Gourna; photographed by Aga Khan Trust for Culture. “The Mud Brick Manual,” EastEast. CC BY-NC 4.0
Fig.199 Mud-brick Drying Field; photographed by Earth Architecture, “Gaza Mud Brick Houses as Inverted Tunnels,” 30 July 2009
Fig.200 Excavated Mud-Brick cells, Tal Ganoub Qasr al-’Aguz, Bahariya Oasis; photographed by Egyptian Ministry of Tourism and Antiquities (MoTA), press release, 13 March 2021. © MoTA
Fig.201 Material Systems in Bahariya Oasis: Vernacular Mud Brick vs. Imported Concrete; Techniques, Composition, and Properties; Created by author; data compiled from Minke (2006), Houben and Guillaud (1994), Walker et al. (2020), Mehta and Monteiro (2014), Neville (2011), and Hammond and Jones (2011)
Fig.202 Comparative Taxonomy of Earthen and Masonry Vault–dome Typologies; Created by author; based on Vaulting Cultures in the Modern Middle East (2022)
Fig.203 Anatomy and Nomenclature of a Masonry Arch; Created by author; adapted from Auroville Earth Institute. Building with arches, vaults and domes (1996)
Fig.204 Vertical Functional Gradation for Earthen Masonry; Created by author; adapted from Koizumi, “The Concept of FGM.” Ceramic Transactions: Functionally Gradient Materials (1993)
Fig.205 Functionally Graded Strategies For Earthen Composites Under Bending; Created by author; adapted from Koizumi, “The Concept of FGM.” Ceramic Transactions: Functionally Gradient Materials (1993)
Fig.206 V-INCA Four-Unit Mould, Casting Sequence For 1:2 Prototypes; photographed by Unknown
Fig.207 Earth Material Building Cycle - A Closed-Loop Workflow For Cast Earthen Masonry; Created by author; based on… Fig.208 Excavation-led circular resource model. Created by the author
Fig.209 On-site fabrication hub for earthen FGM blocks. Created by the author
Fig.210 Constituent palette and pairing matrix for graded earthen composites; Photographed by the author
Fig.211 Material Research workflow; Created by the author
Fig.212 Initial screening of stabiliser systems; Photographed by the author
Fig.213 Volumetric shrinkage after 7-day air curing of Exp.; Photographed by the author
Fig.214 Volumetric shrinkage (%) at day-7 for six formulations; Created by the author, based on physical tests
Fig.215 Hand-press compression set-up; Photographed by the author
Fig.216 Compressive strength (kN/cm²) for the initial six formulations; Created by the author, based on physical tests
Fig.217 Parametric mix matrix for graded earthen composites; Photographed by the author
Fig.218 Experimental setup and qualitative visualisation; Photographed by the author
Fig.220 Water submersion test; Photographed by the author
Fig.221 Water absorption (%) after 1-h and 24-h submersion; Created by the author, based on physical tests
Fig.222 Hand-press compression set-up; Photographed by the author
Fig.223 Compressive strength (kN/cm²) for all the formulations; Created by the author, based on physical tests
Fig.224 Proposed Material; Created by the author, based on physical experiments
Fig.225 Material Samples (Created by author)
Fig.226 Thrust Network Analysis of a funicular vault under variant boundary conditions. Created by the author using RhinoVault
Fig.227 Discrete arch under self-weight: thrust-line verification. Created by the author using Kangaroo
Fig.228 Interlocking voussoir family and tiling logic for a graded vault; Created by the author
Fig.229 Dry interlocking earthen units: joint engagement test. Photographed by the author
Fig.230 Stacked graded-earthen prototype: dry interlocking under vertical load; Photographed by the author
Fig.231 Reusable modular formwork set for casting graded interlocking blocks; Created by the author
Fig.232 Quarter-scale vault prototype on centring; Photographed by the author
Fig.233 Inclined roof-panel prototype with dry interlocking units; Photographed by the author
Fig.234 Solar Updraft Tower Mechanism Diagram (Created by author)
Fig.235 Condensation and Water Yield Calculations (Created by author)
Fig.236 Proposed Atmospheric Harvesting System (Created by author)
Fig.237 Intial Tower Morphology Development (Created by author)
Fig.238 CFD Preliminary Test (Created by author)
Fig.239 Parameters and Objectives Set for Optimization of Proposed Tower (Created by author)
Fig.240 A Selection of Pareto Front Phenotypes (Created by author)
Fig.241 Selected Morphology (Created by author)
Fig.242 CFD Analysis on Selected Morphology (Created by author)
Fig.243 Schematic Plan and Section for Condensation Farm (Created by author)
Fig.244 Programmatic Distribution for Cistern Units (Created by author)
Fig.245 Varying Design Parameters for Cistern Units (Created by author)
Fig.246 Objectives Set for the Optimisation of Cistern Units (Created by author)
Fig.247 A Selection of Pareto Front Phenotypes for Cistern Units (Created by author)
Fig.248 Selected Morphology for Cistern Units (Created by author)
Fig.249 Evaluation of Vault Deflection Using Karamba 3D (Created by author)
Fig.250 CFD Simulation longitudinal section run on North-West winds (Created by author)
Fig.251 CFD Simulation cross section run on North-West winds (Created by author)
Fig.252 Construction Sequence for Vaults (Created by author)
Fig.253 Parameters for Mashrabiyas Variation (Created by author)
Fig.254 Selected Facade (Created by author)
Fig.255 Optimisation Parameters for Mashrabiyas (Created by author)
Fig.256 Floor Plans for Optimised Cistern Morphology (Created by author)
Fig.257 3D Section Through Selected Cistern Morphology (Created by author)
Fig.258 Programmatic Distribution and Massin Logic for Housing Clusters (Created by the Author)
Fig.259 Design Parameters for Housing Clusters (Created by author)
Fig.260 Optimisation Objectives for Housing Clusters (Created by author)
Fig.261 Pareto Front Solutions for Housing Clusters (Created by author)
Fig.262 Selected Phenotype for Housng Cluster (Created by author)
Fig.263 CFD Simulation Plan View (Created by author)
Fig.264 Incident Radiation Simulatin (Created by the Author)
Fig.265 Direct Sun Hours Simulation (Created by the Author)
Fig.266 Floor Plans for Optimised Housing Cluster Typology (Created by author)
Fig.267 3D Section of Selected Housing Cluster (Created by author)
Fig.268 Section of Urban Plan Illustrating Water Filteration Network (Created by the Author)
Fig.269 3D Section of Proposed Agriculture Plot (Created by author)
Fig.270 Design Parameters for Agriculture Units (Created by author)
Fig.271 Optimisation Objectives for Agriculture Units (Created by author)
Fig.272 Section for Agriculture Plot (Created by author)
Fig. 273 Visualizations of sound pressure levels predicted at receiver points using raybased energy propagation at different time intervals (t = 0ms and t = 1/2t). (Created by the Author)
Fig. 274 Isovist diagrams visualizing directional access and occlusion for representative observer positions in units like House Unit, Cistern, Condensation Tower, and Communal Spaces. (Created by the Author)
Fig.275 1st Assemblage: Humidity and Low Temperature Sections (Created by the Author)
Fig.276 2nd Assemblage: Accoustic Comfort and Low Visibility Rates (Created by the Author)
Fig.277 3rd Assemblage: Visibility Envelopes and Low Heat Metrics (Created by the Author)
Fig.278 4th Assemblage: Humidity Corridor Formations (Created by the Author)