

Postgraduate Thesis Issued on January 11, 2024 | London, United Kingdom
Programme: Architectural Intelligence for New Cities (Phase I)
Urban Simulation and Gamification, Architectural Design Innovation & Computational Geometry
Type: Academic - Group Work
Tutors: Dr. Shajay Bhooshan (shajayb@aaschool.ac.uk), Dr. Theodore Spyropoulos (spyropoulos_th@aaschool.ac.uk), Henry Louth (henry-david.louth@aaschool.ac.uk), Ariadna Lopez (ariadna.lopez@aaschool.ac.uk)
Role: Planning, concept design and development, drafting and modeling in detail & individual study as well as rendering and post-production
Software Used: Autodesk Maya, Rhino 7, Grasshopper, V-Ray, Unity, Unreal Engine, Blender, Karamba, Houdini, Twinmotion
In the evolution of society, cities stand as pivotal hubs driving progress, demanding continuous design innovation to captivate inhabitants and foster vibrant urban living. The motivation behind design research for Meta Cities revolves around crafting a blueprint to promote cities’ growth through high-density infill developments by creating socially engaging urban spaces. This blueprint essentially serves as a prototype for city expansion, integrating innovative design frameworks to redefine urban forms.
Generative urbanism improves city networks for efficiency and connectivity. At the urban level, it optimizes travel distance and land use. At the district level, it tests different urban block layouts. At the building level, it uses space syntax to create efficient modular designs based on architectural needs.
Southend-on-Sea
The
The Superimposition
Overlaying
The Layers
Schematic view of layers of
At the urban scale, a generative approach to urban design was taken, and multiple strategies for urban expansion were proposed. These strategies were tested in 13 satellite cities of London. The outcomes were then compared based on the urban context and characteristics of each city.
Expansion of Existing Fabric: Growth around existing areas, filling gaps between satellite cities. Expansion Along Transportation Routes: Development along transportation routes and existing roads. Transit-Oriented Development: Large-scale projects around public transport stations, connecting to metaLondon. Focusing on City’s Primary Attraction: Expansions centered on the city’s unique identity, making each satellite city a “hub.”
Through studying self-organizing agent-based networks in proposed satellite cities, the concept of multilayer urbanism was developed. This allows the network to extend beyond the 2D urban fabric, with multiple transportation nodes and phased development for each layer.
Algorithmic Logic
In the game-based simulation, residential revenue is influenced by proximity to amenities, scenic views, and daylight. Commercial revenue depends on access to transit, storefront positioning, and
After the urban design research revealed that diverse and efficient land use directly influences citizen satisfaction, essential for a thriving city. This insight shapes design principles, resulting in mixed-use developments that maximize economic benefits for both the city and its residents. Here the continuous and informed interaction is the key.
A Bottom-Up Approach
The bottom-up approach offers flexibility and adaptability, allowing urban blocks to grow organically based on the community’s evolving needs and values. Each decision shapes the block’s character, reflecting a dynamic and responsive development process that aligns with residents’ changing priorities.
The game-based urban simulation involves four developers (residential, commercial, office, industrial) and one public representative. It encourages interaction based on investment returns and revenue. Players use trial and error to balance citizen and city interests, integrating public amenities to create a cohesive neighborhood. This platform helps stakeholders manage urban growth complexities, fostering a harmonious city.
During each turn,various metrics are calculated and reported, including land/voxel value, average direct sunlight exposure, height map, massing, budget & profits, and other essential info To help players analyze outcomes and make informed decisions.
The gamified emergent urbanism as a concept uses game elements like competition and rewards to engage communities in urban development. Involving four players—residential, industrial, commercial, and office sectors—it promotes community involvement and addresses urban challenges, fostering dynamic and connected urban areas.
Urban block growth in mixed-use TODs is shaped by three approaches: localization (self-contained communities), urbanization (dynamic, diverse environments), and community land auctions (affordable, inclusive development). These methods collectively influence urban block evolution. Each strategy was played out and analysed in the process.
The game outcomes that involved multiple players and stakeholders, which result in hyperprogrammed, high-density living spaces, then are translated into architectural elements based on specific rulesets. Exoskeletons for towers are created, and units or cells are replaced with designed spaces. This approach helps ensure the city’s resilience and vibrancy over time, benefiting both the city and its citizens.
Postgraduate Thesis Issued on January 11, 2024 | London, United Kingdom
Programme: Architectural Geometry & Parametric Design (Phase II)
Urban Simulation and Gamification, Architectural Design Innovation & Computational Geometry
Type: Academic - Group Work
Tutors: Dr. Shajay Bhooshan (shajayb@aaschool.ac.uk),
Dr. Theodore Spyropoulos (spyropoulos_th@aaschool.ac.uk), Henry Louth (henry-david.louth@aaschool.ac.uk), Ariadna Lopez (ariadna.lopez@aaschool.ac.uk)
Role: Planning, concept design and development, drafting and modeling in detail & individual study as well as rendering and post-production
Software Used: Autodesk Maya, Rhino 7, Grasshopper, V-Ray, Unity, Unreal Engine, Blender, Karamba, Houdini, Twinmotion
Ongoing simulations guide the tower’s program mix, which includes residential, commercial, retail, green spaces, innovation hubs, and cultural facilities, ensuring adaptability to evolving urban needs. The towers, available in sizes S, M, L, and XL, contribute to the city’s dynamic skyline. Each size adapts to the urban landscape. This adaptable systematic approach ensures responsiveness to changing trends and needs.
In the design process, integrating XS, S, M, L, and XL units in both residential and office sectors creates adaptable, dynamic landscapes. Small offices serve start-ups, while large complexes suit established firms. Residential options range from single-family homes to duplexes and triplexes. This system enhances flexibility and resilience, offering a catalog of units for users to choose from, fostering a vibrant, well-planned environment.
Cluster 7
Co-Working cluster featuring workstation tiles
Cluster 6
Co-Working cluster featuring meeting tiles
Cluster 5
Co-Working cluster featuring cafeteria tile
Cluster 3
Co-Working Cluster featuring collaboration tiles
Cluster 1
Co-Working cluster featuring lecture rooms
A comprehensive kit of tiles with proposed cluster configurations ensures versatile and adaptable interior urban environments. Adhering to game logic, this design responds dynamically to diverse urban program requirements and enables rapid physical realization.
using System; using System.Collections; using System.Collections. Generic; using UnityEngine; using UnityEngine.UIElements; using Random = UnityEngine. Random;
public class BoidsManager : MonoBehaviour { [Header(“Agents”)]
public GameObject agentPrefabs; public float agentSpeed= 5f;
private List<BoidsAgent> allAgents = new List<BoidsAgent>(); private List<GameObject> allAgentPrefabs = new List<GameObject>();
[Header(“Boundary”)]
public int worldX = 20; public int worldZ = 10; public float boundaryStrenght = 1f;
[Header(“Start : Coordinate”)]
public bool ifUsingCoordinate = true; public int agentCount = 10;
[Header(“Start : Image”)]
public bool ifUsingImage = false; public Texture2D seedImage; public int agentCountFromPixel = 1;
[Header(“Start : Random”)]
public bool ifUsingRandom = false;
public bool ifUsingRandomSeed = false; public int randomSeed = 10; public int randomAgentCount = 10;
[Header(“BOIDS Values”)]
public float neighbourBoundary = 3f; public float seperationDistance = 1f; public float seperationStrength = 1f; public float alignmentStrength = 1f; public float cohesionStrength = 1f;
[Header(“Attractors and Repellers”)] public GameObject attractors; public float attractorStrength = 0.1f; public float maxAttractorDistance = 3f; public float minAttractorDistance = 1f; public GameObject repellers; public float repellerStrength = 0.1f; public float maxRepellerDistance = 3f; public float minRepellerDistance = 1f;
[Header(“Object Trail”)] public bool ifObjetcTrailOn = false; public GameObject trailPrefab; public int trailInterval = 50; public float trailSize = 0.2f;
//----- we can use this list in other script, but [HideInInspector] is hiding values from inspector [HideInInspector] public List<Vector3> allAttractors = new List<Vector3>(); [HideInInspector] public List<float> allAttractorsRadius = new List<float>();
[HideInInspector] public List<Vector3> allRepellers = new List<Vector3>(); [HideInInspector] public List<float> allRepellersRadius = new List<float>(); void Start() { //------------- start position / start velocity setup if (ifUsingCoordinate) { UsingCoordinateStart(); } //-------------else if (ifUsingImage)
{ for (int i = 0; i < agentCountFromPixel; i++) { UsingImageStart(); } worldX = seedImage.width; worldZ = seedImage.height; }
//-------------else if (ifUsingRandom) { if (ifUsingRandomSeed) Random. InitState(randomSeed);
UsingRandomStart(); } //------------------------ Instantiate Agents for (int i = 0; i < allAgents.Count; i++) { BoidsAgent agent = allAgents[i]; GameObject newPrefab; newPrefab = Instantiate(agentPrefabs, agent.positionVec, Quaternion.identity, transform);
allAgentPrefabs. Add(newPrefab); }
UsingCoordinateStart() { for (int i = 0; i < agentCount; i++)
{ Vector3 pos = new Vector3(i, 0, worldZ); Vector3 vel = new Vector3(0, 0, -1);
BoidsAgent agent = new BoidsAgent(pos, vel); agent. boidsManager = this; allAgents. Add(agent); }
/* for (int i = 0; i < agentCount; i++) { Vector3 pos = new Vector3(i, 0, 0); Vector3 vel = new Vector3(0, 0, +1);
BoidsAgent agent = new BoidsAgent(pos, vel); agent. boidsManager = this; allAgents. Add(agent); } */ } //---------------------
private void UsingImageStart() { for (int i = 0; i < ImagePointList(seedImage). Count; i++)
{ Vector3 pos = ImagePointList(seedImage)[i]; Vector3 vel = new Vector3(0, 0, 0);
BoidsAgent agent = new BoidsAgent(pos, vel); agent. boidsManager = this; allAgents. Add(agent); } } private List<Vector3> ImagePointList (Texture2D _seedImage) { List<Vector3> points = new List<Vector3>(); Vector3 pixelPos = new Vector3(-worldX, 0, -worldZ); for (int i = 0; i < _seedImage.width; i++) { for (int j = 0; j < _seedImage.height; j++) { float
pixelGray = _seedImage. GetPixel(i, j).grayscale; if (pixelGray > 0.5f) { pixelPos.x = i; pixelPos.z = j; points. Add(pixelPos); } } }
return points; } //--------------------private void UsingRandomStart() { for (int i = 0; i < randomAgentCount; i++) { Vector3 pos = new Vector3(Random.Range(-worldX, worldX), 0, Random.Range(worldZ, worldZ)); Vector3 vel = new Vector3(Random.Range(0, 0.1f), 0, Random.Range(0, 0.1f));
BoidsAgent agent = new BoidsAgent(pos, vel); agent. boidsManager = this; allAgents. Add(agent); }
All data
void Update() { //----------- update Attractor and Repeller position UpdateAttRep();
Postgraduate Digital Workshop | December 6, 2023 | London, United Kingdom
Programme: Computational; Flocking and Crowd Algorithms
Type: Academic - Group Work
Team: Mattia Badiani (Italy), Shengying Tao (China), Ning Xu (China)
Tutors: Mustafa El Sayed (mustafa.el-sayed@aaschool.ac.uk), Hanjun Kim (hanjun.kim@soomeenhahm.com)
Role: Research and C# Code development, Complex System Design and Pattern Exploration
Software Used: Unity, Rhino 7, V-Ray, Visual Studio
Flocking is the natural behavior observed when a group of agents, or a flock, forage or fly together. The rules behind this behavior can be applied to other species, and in computer science, “flocking” extends beyond birds. This emergent behavior arises from simple individual rules without central coordination. The following pages detail the adapted and modified main rules, implemented in C# within Visual Studio, and executed in Unity for exploration purposes. The experiment is divided into 2D and 3D explorations, with multiple environments used in 3D research. Patterns emerged based on code changes, and parameters were filtered according to desired metrics. Settings
Approaching the tested volume in a vertical manner and observing new patterns and behaviors. The flock’s reaction to dense attractor and repeller pattern prevents vast branching through the volume.
Patterns in various depths of the volume from the surface to the bottom emerge according to a change of strength while a vertical wave of agents (the flock) faces the setting of attractors and repellers and dodges in the redefined boundaries.
Patterns emerged from the dodging behaviour of agents in a wider environment for horizontally moving flocks. Multiple forms of branching with various initial decisions of the flock affect the final outcome and outlook of the pattern.
Coordinates as Starting points Two planes moving with delay creating intertwined pattern.
Different group sizes as Starting points Four groups in different size accelerated according to flock size.
Neighbor-Based
Dividing the tunnel into three segments with different acceleration. Gray Planes representing increase in acceleration and white decrease in acceleration.
Distance-Based
Adding Acceleration (local) and observing the change of pattern and behavior (Global)
A color range indicating the agent’s speed based on position. Blue indicating slower agents and Red indicating the faster.
Initial Waterfall Pattern
on Walls
Pattern Resemblance
PS-01 (Veins) Less Separated Centralized Branching
PS-03 (Inverted Pyramids) Endpoint for Distributed Branching
PS-02 (Table) 5-Point Concentrated Branching
PS-05 (Multiple Hives) Cohesive Flocks Distributed Branching
PS-04 (Lines) Horizontal Alignment Distributed Branching
PV-01 (Dodged & Emerged) Flock high separation resulting a pattern emerged from individual behaviour of agents.
PV-02 (Symmetrical Behaviour) Similar to 2D pattern experiments, the flock creating curves avoiding the center.
Phase of Branching
Showing effects on the Final pattern and behavior
Segmenting the environment into pieces with different acceleration vectors based on distance.
Range of Neighbors Applied Maximum Range of Neighbors Applied
Waves and Branches
The Smaller the group (fewer Neighbors) the Faster. Having a min and max range, creating multiple waves based on the number of neighbors.
Branching from Within
The Larger the group (more Neighbors) the Faster. The corners with fewer neighbors and the center with more, causing different speeds in one flock.
Postgraduate Physical Workshop | November 8, 2023 | London, United Kingdom
Programme: Bi-stable structures & compliant mechanisms; Manufacturing techniques
Type: Academic - Group Work
Tutors: Nassia Inglessis (nassia.inglessis@aaschool.ac.uk)
Role: Part of design and fabrication team, Working with steel, brass & aluminum
Welding, folding and crease, CNC milling of metal sheets
Software Used: Rhino, Grasshopper, Houdini, AutoCad, Solidworks
The module’s anatomy facilitated its motion and resulting bi-stability. Comprising three upward-facing sectors and three downwardfacing sectors, all interconnected by transitional sectors, this design integrates movement and stability seamlessly. Initial tests and motions were observed while experimenting with polypropylene sheets
A bi-stable compliant mechanism module was tested for material behavior through folding, motion, and acoustics. Analysis revealed that modules with the largest travel point heights and significant angle diversions amplified motion the most. These were adopted for later stages, including off-centric iterations (P11-P12) and the regular switch used earlier.
Various materials, including zinc, steel, brass, aluminum, and copper with different thicknesses, were tested to optimize the click. Initial folds using metal zinc and glossy tinplate steel sheets (0.20mm) did not produce the expected motion. However, switching to a thinner frosted tinplate steel sheet (0.17mm) allowed for more refined folding and amplified the module’s motion.
P1, the original shape, translated easily into metal and maintained bi-stability. Adding sectors made it too rigid, while subtracting them weakened the motion. Wider sectors increased tension, complicating fabrication. P11 and P12 were easy to fabricate and achieved the desired switching motion, enhancing bistability with significant deflection and travel distance.
Horizontally attaching the modules creates a folding behavior. Connecting one module’s output to the next lifts the system up and down. Detaching the modules allows free motion, emphasizing the switching motion. Upward propagation is challenging and requires significant force.
Circular configuration is distinct, as the modules are assembled with mirrored components linked together. The modules are connected at their upward/downward joints, facing each other. This mirroring allows each component to switch and clap, adding accentuated acoustic characteristics. The modules are linked through their input sectors, achieving synchronized clapping and switching.
The final prototype tested parametric iterations in circular and arc configurations. P1 activation enabled P11 components to switch, but the middle ones remained static. Repeating the pattern (P12, P11, P1) balanced the system, allowing all components to switch and clap