Can voronoi division of space be used to optimise programatic volumes, structure and the distribution of facilities.
WHAT AM I TRYING TO ACHIEVE . . .
 Optimising volumes of space using on Voronoi cells  based on patronage usage and waiting times
 Standard construction method using a kitset of modular parts
 Distribution of the required facilities based on an overriding logic  optimised based on patronage usage and waiting times
 Site specific solutions tapered to all parameters  topology, environmental factors etc
Modular Transport Shelters / Stations / Hubs

This experiment is based on culling Voronoi cells using a container and maximum volume slider.
1. Voronoi Structure Defined 2. Define Site Topography 3. Define Site Boundary 4. Optimise Volume The idea is that the available space on a site is defined. This will then cull any cells which are not contained in this boundary. The second operation is to find the volume of space needed using a slider. Galapogos (evolutionary solver) could be used to find the optimum number and arrangement of cells. 
Topogrpahy
For the definition to work on any site, it has to interpret the gradient of the site. The first step is to adjust the cells based on a given topography. The second and more complex step is to create floor level plates. In order to calculate these, the centre nucleus of each cells has to be calculated. This point then needs to be translated into the closest point of the surface. These unique points can then be used as a reference to section each cell at a specific point relative to surface below producing the floor plates show below.
Area Optimisation
This experiment uses voronoi cells to specify boundaries of programme. The definition will create one cell for each programme required in which a desired percentage of total area.
For example you might state; standing area 30% seating are 20%, toilets 10%, ATMS, 5%, Info 20% and Bike Racks 15%.
The evolutionary solver will then try to optimise each volume based on these target percentages.
For example you might state; standing area 30% seating are 20%, toilets 10%, ATMS, 5%, Info 20% and Bike Racks 15%.
The evolutionary solver will then try to optimise each volume based on these target percentages.
Populating
This operation aims to "populate" the cells with "programme."
Each of the boundary boxes contain a cell are populated with points. Using a culling process, the points are then tested if they are contained within the boundaries of their parent cells. Using a tolerance, the points and then analysed further on their relationship to their neighbouring points. If this operation deems these points too close together, one is culled however the value of that points is increased as it now represents 2(+) points. A cylinder has been applied to each point to represent a point of programme (seating, ATM's, info stations, bike racks etc. The cylinder size is dependant on the tolerance of culling described above.
Each of the boundary boxes contain a cell are populated with points. Using a culling process, the points are then tested if they are contained within the boundaries of their parent cells. Using a tolerance, the points and then analysed further on their relationship to their neighbouring points. If this operation deems these points too close together, one is culled however the value of that points is increased as it now represents 2(+) points. A cylinder has been applied to each point to represent a point of programme (seating, ATM's, info stations, bike racks etc. The cylinder size is dependant on the tolerance of culling described above.
Culling Hierarchy
Sub Structure / Facade Panels
This is very much a superficial experiment working with translating a voronoi pattern onto surfaces, (the façade panels). The total volume is populated and a 3D voronoi diagram is created. Where the surfaces intersect the total voronoi, a curve is translated onto the panel.
OPTIMISATION SIMULATION

With the latest feedback I decided to rethink my approach of optimisation, my use of the voronoi and any other possible processes to achieve 'better' results.
The rhetorical question was asked, "what is the advantage of using a voronoi diagram for architectural planning". The underlying advantage which stands out over a typical orthogonal system is its ability to cater to organic forms. The idea of using smaller cells as "inful" to propagate programme between programatically 'awkward' spaces was a valid line of thought but I wasn't convinced what is exactly how I wanted to implement this research. I decided to take a step back and look at what I was fundamentally trying to do with how my previous methodology had failed in mind. Essentially what I was trying to achieve is arranging hypothetical "programme" within a boundary. With my mind set on using voronoi cells I quickly found their limitations which prevented me from progressing somewhat. Through sketching the logic I was trying to achieve, I found myself representing voronoi cells through circles before creating a voronoi diagram by connecting their radi to create the cells. It was this subconscious methodology which sparked a rethink to my logic of optimisation. I began by looking into circle packing  wiki  In geometry, circle packing is the study of the arrangement of circles (of equal or varying sizes) on a given surface such that no overlapping occurs and so that all circles touch another. The associated "packing density", η, of an arrangement is the proportion of the surface covered by the circles. After some research into the fundamental logic of circle packing I reentered grasshopper with a new agenda. It occurred perhaps iterative optimisation using Galapagos might not be the key and I turned my attention to Kangaroo, a live physics simulation.
First I began by calculating the arrangement of a group of given circles based on there sizes. As the simulation ran, the circles were drawn to a anchor point and arranged themselves based on collisions with each other. While this arranged the circles somewhat, there was no consideration to a boundary. To achieve this, I first began by assigning a target boundary and creating an pull force, forcing the particles towards the boundary curve. I then put a slightly larger force drawing pushing the particles inwards. With these two forces, the particles recognise a given boundary and the circles arrange themselves.
With the particles arranged, I then applied a voronoi division which is a more efficient division of space compared to the packed circles. A metaball algorithm is then applied to approximate the external boundary using the initial cell weights. This proves to be a significantly more effective method than culling cells which are not contained within the boundary leaving jagged edges whereas the metaball technique leaves a nice curvilinear approximation.
While the algorithm is relatively effective in packing the cells, there is little control over how they are arranged. This will be an area in which I will aim to further control over. My first idea was to create a supplementary internal curve in which in cells are attracted to. The logic behind this is that the smaller cells have a tendency to occupy the internal regions whiles the larger cells radiate outwards. By creating a parametrically driven offset of the original curve with a more dominant force, how the cells are arranged can be altered. 
METABALL
Using Metaballs to create organic form
In this range of experiments I looked into using metaballs to create organic forms. How the definition works is that curves are analysed and divided equally. Where more points are clustered (as the lines diverge together) larger charges are created. As an experiment, I applied my louvre definition to the contours giving the form more substance. The method creates interesting forms but I am unsure if this is the form finding path I would like to pursue. 


CATENARY MESH RELAXATION
In physcis and geometry, a catenary is the curve that an idealized hanging chain or cable assumes under its own weight when supported only at its ends.
FormFinding
The form emerged out of a digital formfinding process based on the classic techniques developed by Antonio Guadi and Frei Otto, among others. Using Grasshopper and the physics engine Kangaroo, the form selforganizes into the catenarylike thrust surfaces that are aligned with the structural vectors and allow for minimal structural depths.
In physcis and geometry, a catenary is the curve that an idealized hanging chain or cable assumes under its own weight when supported only at its ends.
FormFinding
The form emerged out of a digital formfinding process based on the classic techniques developed by Antonio Guadi and Frei Otto, among others. Using Grasshopper and the physics engine Kangaroo, the form selforganizes into the catenarylike thrust surfaces that are aligned with the structural vectors and allow for minimal structural depths.



Mesh Distribution
The metaball form creates a completely ununified mesh. Using this mesh which is significantly more dense with vertices around the edges , effects the form that is created under the physics simulation. As the screen shots above show the circles are much larger in the centre and much more dense around the edges. Although this is actually visually quite appealing, I wanted to experiment with a more unified mesh for structural reasons and also the possibility of paneling with standard forms. This definition, takes a given mesh and stretches it to a curve as shown in the video providing a much more evenly spread mesh. 
Stress + Deformation
This analysis aims to determine the areas under the most amount of stress. Being a tension based structure, the edges where catenarey cables would run are obviously under the most amount of tension, and also where the panel are significantly deformed or deviate from the standard shape. Most of the stress across the rest of the form is relatively uniform and by relaxing the mesh post simulation, the deformation of the panels are significantly reduced. 
Powered by