Generative Algorithms in Architectural Space layout planning
Experimenting the Design of a Pavilion using Computational Approach
Mohamed Naeim A. Ibrahim
This research presents a collective approach to performing automated space layout planning; it explains the different aspects of space layout planning and techniques to achieve it. Previous researchers consider space as two-dimensional polygons or rectangles; The Research considers space as three-dimensional free-form components produced by generative design tools.It is exploring the underlined benefits of using evolutional approaches in generative optimised design solutions. It promotes using and mixing of pre-built libraries of computational tools in solving design problems.
Space Layout Planning – Genetic Algorithms – Free Form – Global
1 Figures Table:
3.1 Objects of study:
3.2 Academic Context:
4.1 Experiment 01: project programming
4.2 Experiment 02: spatial configuration
4.3 Experiment 03: space packing
5 Discussions and Evaluation:
5.1 Outputs and evaluation
6.2 Summary Statement:
8 Appendix: Scripting Methods
1 Figures Table:
Figure 1: Constraint structure, Constraint-Based Design, D. Donath and L. Gonzalez ……. 6
Figure 2: Constraints Based Space Planning: A Case Study, Ying-Chun, Hsu …….. 7
Figure 3: functional model and Topological solution, Separating Topology and Geometry in Space Planning, B. Medjdoub and B. Yannou ……………….. 7
Figure 4: Graphical User Interface, Optimizing Architectural Layout Design via Mixed Programming, K. Kamol and S. Krung………………… 8
Figure 5: Layouts produced, Evolutionary Approach to Generating Space Layout Topologies, J. Damski and J. Gero ………………………………………………….. 8
Figure 6: user interface, Genetic Algorithms in Support of Creative Architectural Design, E. Tomor and G. Franck ……………………………………………………………………………………………… 9
Figure 7: Spatial Character Diagram and implementation to Form, Form Development with Spatial Character, Y. Hsu, R. J. Krawczyk……………………….. 9
Figure 8: Assistant tool for topological relationships, Assistant tool for Architectural Layout Design by Genetic Algorithm, P. Nilkaew ………………………………………………………………. 10
Figure 9: Diagram and Example of interactive Optimization method, interactive optimization of Architectural layouts, J. Michalek, R. Choudhary and P. Papalambros ………………………. 10
Figure 10: Shape rule examples and implementation, Discursive Grammar for Customizing mass housing, J. P. Duarte ……………………………………………….. 11
Figure 11: samples of Topological Resolution and connection mechanism, Physically Based Modeling Techniques in Space Layout Planning, S. A. Arvin and D. H. House……………………………. 12
Figure 12: aggregation of spaces and implementation, G.P. + Unfolding Embryology in Automated Layout Planning, A. Doulgerakis………………………….. 12
Figure 13: sketches selected for spatial configuration ………………………… 15
Figure 14: Grasshopper code used to access Geometry embedded data ……………… 17
Figure 15: Python Code stored as translation, it’s used to read geometrical attributes and modify it, and it changes the leve l of space according to level attributes …………….. 17
Figure 16: form of topological relationships ……………. 18
Figure 17: Grasshopper code used to retrieve relationships Data-Structure between two spaces, these Data was imbedded by python Script …………………………… 19
Figure 18: this figure shows different generations of the process of detecting overlapping and reset position to adjacency configuration between the two spaces …………… 20
Figure 19: Approximate spatial configuration resulted by constraints satisfaction …….. 20
Figure 20: Slingshot! MYSQL Data-base system in Grasshopper with python, used to access, read and write project information and translations ………………………… 26
Figure 21: Local Code in Grasshopper used to import geometries, Collision Detector and Python Codes Interpreter. ……………… 26
Figure 22: Attributes Editor, Python code used to add data to geometries ………. 27
Figure 23: python code, it is a geometrical translation procedure used to reset leveling ………. 27
Figure 24: Topological Level Attributes Editor, Python Code Used to Feed Relationships Attributes between spaces. …………… 28
Figure 25: Adjacency editor, Python Code used to detect overlapping and set adjacency between pairs of spaces ………………….. 28
3.1 Objects of study: Space Layout Planning
Automating Space Layout Planning was investigated in this Research, it is defined as the process of finding the best spatial configuration(1) for building components, it is a propositional process concerned with location, size and other design preferences, which carefully place spaces in harmonic settings to meet project brief.
For the last three decades there were many attempts to automate space allocation and to implement it into practice; however, Architects still overcome design problems by traditional sketches(2) depending on implicit knowledge reasoning, counter to engineering design decisions, space allocation is mainly subjective or arbitrary decisions and not always seeks the most optimum solutions.
One of current research intentions in Computer aided design is to produce mass-customized architectural spaces(3); this tends to provide high quality architectural plans in affordable cost and high contextual performance besides satisfying other design factors.
Space layout planning problems tends to be over constrained and ill-defined(4), it means there is no single solution or there are many possible solutions; however, solutions are selected by ranking constrains satisfaction, design objectives conflict with each other, designer struggles to meet them all, he compromises some of them or sacrifices others, it is not always about optimum solution, sometimes solution selection depends on client’s preferences or designer’s style.
Automated Space layout planning approaches are varied in the way space structured or the way solution generated. Some are constructive in space positioning; they depend on priority for initially placed spaces. In other approaches, they are generative in positioning and relating systems, solutions generated at the same time; it is similar to evolutional approaches work in self-organizing systems.
Computed Space Allocation consists of two main forming problems, geometrical and topological constraints. Geometrical constraints represent quantitative and qualitative properties of spaces. Topological constraints determine qualities of relationships between spaces, these qualitative attributes influence spatial configuration, i.e. adjacency, connection and orientation; however, geometrical attributes determine space size, area, form and level.
1 J. J. Michalek R. Choudhary and P. Y. Papalambros, Architectural Layout Design Optimisation, Eng. Opt., 2002, PP. 461-484
2 B. Medjdoub and B. Yannou, Separating Topology and Geometry in Space Planning, Computer Aided Design 32, 2000, pp.39 -61.
3 J. P. Duarte, A Discursive Grammar for Customizing mass housing: the Case of Siza’s house at Malagueira, Automation in Construction 14, 2005, PP.265 – 275.
4 S. A. Arvin and D. H. House, Modeling Architectural Design: Objectives in Physically Based Space Planning, Automation in Construction 11, 2002, PP 213-225.
3.2 Academic Context: Literature Review
Since the 1960s there were many attempts to figure out ways to space layout planning(5), methods were classified in different ways, some of these related to the way spaces structured, i.e. one to one quadratic assignment for equal areas spaces(6), another example for space structuring, unequal areas assignment using grid-based plan block system. Moreover, there is a continual approach based on articulating the attributes of spaces geometry(7).
Furthermore, methods classified according to generative procedures, an i.e. constructive-placement method where activities initially set to spaces one by one; then, iterative improvement follows by exchanging assigned spaces until the system reach optimised solution. Finally, there are sophisticated procedures where evolutional methods applied.
More methods were explored later in achieving more efficient space allocation as these works will be summarised as below:
3.2.1 Constraint-Based planning, Donath and Gonzalez
There was Practice-oriented implementation in optimising housing design, that includes massing and site coverage, self-organized group of households was developed. In the research, it was argued architectural problem could be represented by its subsets of geometries which represent spatial components and related constraints which specify each subset interact with each other, it was explained elaborately the constraints types for the project. They were introduced normative constraints as fixed value constraints prescribed by planning regulations. They were
also demonstrated Intrinsic constraints which determined by the geometric nature of subsets. The interactive constraints were defined as parametric changing constraints. Finally, there were user constraints which are determined by user’s preferences.
Figure 1: Constraint structure, Constraint-Based Design, D. Donath and L. Gonzalez
5 A. Doulgerakis, Genetic Programming + Unfolding Embryology in Automated Layout Planning, U. C. L. Master Thesis, London, 2007. P. 15
6 Computational relative allocation of facilities techniques, Armur and Buffa 1964
7 Mitchell 1976
3.2.2 Constraints Based Space Planning: A Case Study, Ying-Chun, Hsu
It started by selecting best design tool, there were comprehensive comparison. There were developed program to detect site shape and size. A function was created for finding best location for the space, considering relationship between spaces.
Figure 2: Constraints Based Space Planning: A Case Study, Ying-Chun, Hsu,
3.2.3 Separating Topology and Geometry in Space Planning, B. Medjdoub and B. Yannou
This research depended on constraints programming, it used an approach to redefining the topological level of design by determining constraints. It proposed an initial reduction of variables and system close to architects design process. The heuristic computational approach was selected in finding consistent solutions. There were claimed that implementation was capable of avoiding complex practical layout problems. The implicit and explicit system of constraints was explained in details . Classes and editors were developed for different building components design. There were explained in detail their topological and geometrical level of solutions.
Figure 3: functional model and Topological solution, Separating Topology and Geometry in Space Planning, B. Medjdoub and B. Yannou
3.2.4 Optimizing Architectural Layout Design via Mixed Programming, K. Kamol and S. Krung
Mixed integer programming used as model in finding the best layout configuration. Linear programming is a mathematical method for determining a way to achieve best solution; it called mixed integer programming when unknown variables are not all to be integers. GUI called GNU, A linear programming kit were developed to solve architectural design tasks. It allows for optimum search space by controlling reduction constraints.
Figure 4: Graphical User Interface, Optimizing Architectural Layout Design via Mixed Programming, K. Kamol and S. Krung,
3.2.5 Evolutionary Approach to Generate Space Layout Topologies, J. Damski and J. Gero
In a house of seven spaces, it was implemented using an evolutional approach configuring the topological level of constraints; genetic algorithms were developed to generate a large number of solutions and compositions. Each generation was evaluated and ranked until the desired solution was achieved according to fitness value.
Figure 5: Layouts produced, Evolutionary Approach to Generating Space Layout Topologies, J. Damski and J. Gero,
3.2.6 Genetic Algorithms in Supporting Creative Design, E. Tomor and G. Franck
The use of artificial intelligence was selected as a possible method in solving
architectural design problems. Genetic Algorithms were introduced as a successful method in solving complex design problems in engineering; however, it was not proofed its efficiency in solving architectural design problems. Evolutional processes treat design variants as components compete to survive by mating or crossing and reproducing.
Figure 6: user interface, Genetic Algorithms in Support of Creative Architectural Design, E. Tomor and G. Franck,
3.2.7 Space Adjacency Behavior in Space Planning, Y. Hsu and R. J. Krawczyk
On this research, it was investigated functional issues affecting two-dimensional arrangements, besides gathering of spaces. The subjective personal preferences were explained as an importance factor of integration within space layout techniques. Adjacency, as described earlier, was not always following the optimum configuration. Spatial characteristics were studied which promote spaces interaction in a certain way. These characteristics gave space layout planning the potential to produce a mass out of a self-organizing system to help in developing building form.
3.2.8 Form Development with Spatial Character, Y. Hsu, R. J. Krawczyk
In a development for their researches, New methods of space layout planning were proposed by transforming two-Dimensional space diagrams into three Dimensional spaces stacking and massing. This method allows designer to visualize and experience space layout planning in three Dimensional ways, it gave designers opportunity to apply different type of geometries to represent spaces rather than rectangular blocks. spatial characteristics were also described in details which define relationships between spaces. i.e. it was claimed that, spaces group together,could lead each other, serves each other and be attracted to one another.
Figure 7: Spatial Character Diagram and implementation to Form, Form Development with Spatial Character, Y. Hsu, R. J. Krawczyk,
3.2.9 Assistant tool for Architectural Layout Design by Genetic Algorithm, P. Nilkaew
A method was developed for automating space layout planning using genetic algorithms;
the process involved both qualitative and quantitative analysis processes. The first process focused on the topological management of spaces. The second focused in alternating what was generated in the qualitative process to find optimised solution.
Figure 8: Assistant tool for topological relationships, Assistant tool for Architectural Layout Design by Genetic Algorithm, P. Nilkaew
3.2.10 Layout Design Optimization, J. Michalek, R. Choudhary and P. Papalambros
A model for optimizing space layout planning was created; it offers new approach to take advantage from the efficient gradient based algorithms. a mathematical model was developed to solve geometric problems, this model was integrated in later stage with a topological based decision model using heuristics methods. The geometric optimization concerned with finding the best size and location of space units by defining their constraints and objectives. local and global optimization techniques were developed. Finally, topological models were introduced for optimization, it perform generations and evaluations processes.
Figure 9: Diagram and Example of interactive Optimisation method, interactive optimisation of Architectural layouts, J. Michalek, R. Choudhary and P. Papalambros
3.2.11 A Discursive Grammar for Customizing mass housing: Case of Siza’s house, J. P.
It was a mass customization process based on CAAD and Production systems. A web-based modelling approach called discursive grammar. A design brief generation built on designer preference to produce optimised design solution. It was focusing on providing high-quality housing based on non-repetitive processes. Discursive grammar was implemented in three stages. First, a translation requirement was defined for creating a brief, it requires programming grammar for initiating it, then a formal compositional system was developed; it utilises design grammar and optimisation system. Finally, heuristics sets were used in selecting generation rules for each stage of problem-solving and constraining solution-ranges.
Figure 10: Shape rule examples and implementation, Discursive Grammar for Customizing mass housing, J. P. Duarte,
3.2.12 Modelling Objectives in Physically Based Space Planning, S. A. Arvin and D. H. House
physical based modeling was implemented in conceptual design processes; this
method is classified as a heuristic class of computation. it borrowed relating knowledge from the mechanical and physics metaphor. Topological relationships values, such as position and adjacency were applied as an interactive dynamic force of modifications. Physics of motion were implemented in space planning, it allows for responsive design solutions upon design interactions. Design objectives manipulated graphically and the plan was adaptive to motion response.
Figure 11: samples of Topological Resolution and connection mechanism, Physically Based Modeling Techniques in Space Layout Planning, S. A. Arvin and D. H. House
3.2.13 G.P. + Unfolding Embryology in Automated Layout Planning, A. Doulgerakis
In this one, it was argued that layout configuration could be driven by social and cultural generative forces. It was proposed using the power of Genetic algorithms and Genetic programming in solving the complexity of the conflicting criteria. It was explained in details the capabilities of evolutional systems and their selection and reproduction techniques. Layout constructed by subdividing of spaces.
Figure 12: aggregation of spaces and implementation, G.P. + Unfolding Embryology in Automated Layout Planning, A. Doulgerakis
Researchers tend to follow a single method to solve design problems. It is not appropriate to introduce a system or a single tool for solving Architectural design tasks, it requires composite and mix of new design approaches, it is also recommended to assemble a collection of CAD and computation tools, i.e. it is not achievable to select Shape Grammar or constraints based system in solving space layout planning problems, it is recommended to break down design process into several stages, then to select adaptive method to each stage.
This research experiments collection of methods in achieving reasonable and acceptable computed solutions. In this research three methods were investigated:
3.3.1 Explanation-based system(8):
Explanation learning system is a design computing method for adjusting design teaching mechanism to the system, searching and defining components are part of a design process. It is behaving the same way designer looks into Design references, i.e. Time Saver and Architect’s Data while builds knowledge and brief.
Real-world design aspects like social and economic factors are hardly embedded or simulated as the same way geometrical and topological constraints being done. It is recommended to retrieve prototypes expressing specific functions of Good Examples as Case-Based reasoning.
Explanation-Based Learning System recognised as an innovative design class, it’s used
when adapting complete prototype will not help in satisfying design requirements. It is the process of combining part or a function of the desired prototype with other prototypes, this process can lead to the creative design solution.
In this process, brief Programming is Data related to project information which defines preferred Prototypes characteristics, the system reduces possible examples which designer select from; Designer embeds characteristics into theses retrieved geometries and procedures.
3.3.2 Constraints Based Method(9):
Diagramming is a graphical approach of representing real-world Problems in abstracted level, Problems like architecture propositional knowledge. In this approach spaces are geometrically recognised, then structured with topological attributes organised in data structures; those contain propositional relationships unfold the Composition in a symbolical way. It’s known as object oriented approach. The system needs rules to manage and integrate spaces according to specific rules, these rules are the encoded architecture knowledge; these rules are a set of procedures test the satisfaction or conflict with Design goals. The Constraints based Design system emphasises better understanding of design reasoning. It explicates all designer intentions and ideas and allows for flexible articulation of it.
8 G. Schmitt,’ Classes of Design – Classes of Tools’ in M. McCullough W. J. Mitchell and P. Purcell ( ed.) The Electronic Design Studio: Architectural Knowledge and Media in the Computer Era, MIT Press, London, 1990, pp. 77-90.
9 S.M. Ervin, ‘Designing with Diagrams: A Role for Computing in Design Education and Exploration’ in M. McCullough W. J. Mitchell and P. Purcell (ed.) The Electronic Design Studio: Architectural Knowledge and Media in the Computer Era, MIT Press, London, 1990, pp. 107-122.
Constraints Satisfaction management(10) is on of procedural approaches to achieve space allocation upon other methods like additive and permutation approaches. It is elected when decision making depends on multi levels and hierarchies of design criteria. Managing constraints allow for overall priorities in solving conflicting constraints rather than solve all of them at once.
3.3.3 Evolutional approach: Genetic Algorithms(11)
This method is used to generate forms with unexpected characteristics. Where the knowledge source itself is not programmed either; however, It is a necessary for generating a novel solution. It is based on generation and testing exuberance alternatives, then narrowing the range of solutions according to fitness values, those values related to the process of harmonising form, function and context.
This research Methodology is considered Creative because the architecture components are not predefined as they retrieved through a selection procedure. The assembling process is also not expected as it works in hierarchical topologies.
Precedent outputs are the inputs of the Genetic algorithms process. The Genotype resulted by applying constraints-based modelling into spaces is the DNA of the Prototype; it contains the entire information of the desired building such as geometrical and topological relationships. The Successful phenotypes promote for a creation of new offspring out of the corresponding genotype through mating and mutation. New solutions generated out of the selected genotype.
10 Y. E. Kalay, Architecture’s New Media: Principles, Theories, and Methods of Computer-Aided Design , MIT Press, Cambridge MA, 2004, pp.241-253.
11 Y. E. Kalay, op. cit., pp.277-293.
Context of Experimentations:
The experiment is shaped in a form of a pavilion, a temporary events-and-expos building for entertainment and social activities. The spaces are considered as free-form spaces because of their functional purposes and other aesthetical and environmental considerations. It was planned to be in somewhere within Manchester.
Three dominant spaces were selected first because of their conflicting qualities; a dark room, a social living space and private workspace. Extra spaces were added because of their secondary roles such as entrance lobby and stores.
Figure 13: sketches selected for spatial configuration.
The project was built on three sub-experiments. The first stage was concerned with space programming, Information related to building context and functions were inserted. Geometrical characters were embedded into a pre-modelled geometrical representation of spaces. Next, a topological level of information was configured to define relationship settings between spaces, each level of a relationship was related to rules of actions; these actions were changing spaces location according to the relationships attributes. Finally, processes of forming and testing configuration were formulated to optimise solutions and generate alternatives.
Spaces were considered as separate halls and in some cases, it were intersected. Spaces had no straight walls edges which would be fused in the case of attachment and adjacency. Spaces form does not necessarily represent the free-form of the overall skin but it could be free-form spaces + skin, that is common because of today’s digital design capabilities. At at the same time it is not new. Organic architecture and modern architecture are full of examples related to open plans and fused spaces.
Spaces had free form geometry, rather than testing rectangular and polygons. In this research form was applied even before starting the planning process, space-form-creation was proposed to be designed and stored (databases) before assembling process starting point.
Circulation spaces were not a space in itself(previous projects considered it so), these were the remaining spaces between non-connected spaces. They were also the path drawn between spaces with access in between. These paths would be produced by attributes determination between spaces as accessibility value.
4.1 Experiment 01: project programming
Design activity is a cognitive process. It is depending on an architect imagination. Spaces geometrical shape captured in designer memory, together with its qualities and quantities. Memories retrieved at the moment sketches were drawn down; these memories are related to the type of building supposed to be designed, and these memories are not only three-dimensional, they are multi-dimensional, enriched with qualities related to time, context, smells, experiments and much other information captured by the designer senses.
4.1.2 Design Variables:
Project information, three-Dimensional geometries, spaces attributes.
188.8.131.52 Project information programming:
data were related to the system structure which indicates many initial components and procedures. Some of these data were used in the geometrical programming, others were used in arranging spaces, these data were readable by the system and usable in multiple stages.
Examples of embedded information were:
Building type: system selects corresponding spaces according to their building types, i.e. Residential or commercial.
Users: system selects best facilities for these types of users.
Order of organisation: system selects best setting for massing and clustering. This procedure is compulsory for forms which have no reference or outlining constraints, i.e. linear, radial or clustered organisation.
Site Preferences: system selects alternatives of locations or detects dimension of site
Circulation: system defines paths and widths.
184.108.40.206 Geometrical information programming:
It was related to project type corresponding spaces. Spaces were selected from a database. Retrieving criteria was associated with the type of previous embedded data in project information. Information adaptation is a varied kind of data, it could be building height or capacity of spaces.These Three-Dimensional geometries were selected according to their best fitness values.
Spaces were pre-designed alternatives, all were stored in databases as geometries; these databases were local or web-Based digital libraries. Configured spaces could be saved as geometries or procedures to generate the geometries. It could be designed by the designer, by a collaborative team member or by an anonymous web-based participant in social coding group. These spaces could be remodelled of recognised space in an architectural building. It would also be newly designed space.
Retrieved geometries were attribute-less, that means it needed to be fed by characteristics and specifications; these specifications will introduce the spaces to the system. It will also promote retrieving another kind of database information, this data were stored as-
-Procedures which promote actions. These actions would configure spaces in their best desired settings, regardless of their relationship to other spaces. Technicllly, It would orient spaces into better lighting capturing, or it would set spaces to Project zero level. Space characteristics will also correspond to later stages in shaping relationships with other spaces. Characters such as space-magnitude as group-maker, or serving-attitude or attraction-watcher or reaching-space.
Figure 14: Grasshopper code used to access Geometry embedded data.
Procedures applied to spaces were developed in separate groups. Some of them detect
geometry orientation. It recognise its collective expansion domain, then it orients the geometry to the preferred direction. Another procedure is to read space capacity information then measure geometry area and volume. Finally, it resize it according to the required number of users.
Figure 15: Python Code stored as translation, it’s used to read geometrical attributes and modify it, and it changes the level of space according to level attributes.
4.1.4 Relationship to next process
The design output of this stage is an input to next stage. Oriented spaces are an input to
space population process. Sizing and levelling spaces are important before programming their relationships.
4.2 Experiment 02: spatial configuration
The form was generated by it’s small components. The way these components related to each other influenced the whole form of the building. Spaces were related to each other by means of function, circulation paths and proximity.
Architecture spaces were associated to one another by different methods (12). Spaces may contain each other, interlock together, juxtaposed to each other ( adjacency) and finally, spaces might relate to a medium of spaces ( cluster).
Architecture spaces was arranged together to create the spatial configuration of the building form. The function could require a specific form of arrangements, such as site dimensions lighting level and access needs.
4.2.2 Design Variables:
Architectural Spaces, Project form of Organization
4.2.3 Type of Constraints:
In this part, constraints were encoded in a form of test and modify procedures between two spaces. Then it was built into a recursive optimisation code. These constraints could work in both directions, i.e. overlapping and non-overlapping, horizontal and vertical, or keep in or out. Topological constraints experimented here have a potential to be promising design tools as architectural CAD tools are not provided with topological tools. Constraints are explained as below:
Overlapping: It describes how space is required or not to be interlocked with another.
Accessibility: It describes if spaces are connected by means of circulation paths.
Proximity: it describes the connection between the spaces and distances in between.
Skin Constraint: It describes if spaces are forced by outline and setback from skin.
Orientation Constraints: It describes if space should be rotated to face another.
Figure 16: form of topological relationships
12 F. Ching. Architecture: Form Space and Order, 3rd ed. John Wiley, Hoboken 2007, pp183-283.
In this experiment, a process of considering forms of relationship between spaces was defined. These forms were saved in the database as text procedures called when it’s needed. It was applied between each two spaces with a relationship(Matrix). One procedure such as adjacency between two spaces works as follows; it performs a detection of collision and finds a way to avoid it. Another process concern with proximity, on the other hand, works as follows; it catches distances between spaces and compares it with preferable distance range. Then it performs moving until spaces connection is acceptable. There are also many other procedures.
After that, a process of embedding spaces relationships types and values were performed. In essence, Each space is related to another by more than one level of topologies, i.e. spaces could be adjacent to each other but at the same time, they might not be at the same level. A Recursive process of embedding relationship type or qualities was implemented. This process was allowing the designer to select his own type of qualities which he wanted it to be applied. These qualities are the Code which calls the previous database procedures, and it allows him to define domains and types of possible values, both can be numbers or texts. These multi-layered data is saved into physical geometries represented on a form of varied heights arches(my own principle). These arches have the same start and end points which are the geometries of spaces.
Figure 17: Grasshopper code used to retrieve relationships Data-Structure between two spaces, these Data was embedded by python Script
As a result of the previous processes, we have accomplished a kind of an information model. Resulted model consists of topological relationships and their corresponding translation procedures. A process of reading these data was implemented. The system considered spaces as binaries and puts them into a matrix of all possible pairs; it means that the system will test each space to all other spaces(except test space), and then it test the next space to all other spaces and vice versa until all spaces are tested. In numbers, if we have three spaces the system will perform six tests because each space will be tested against the other two. In each test, the system read the qualities between spaces and compare it to the corresponding translation procedures. It calls the procedure from the database and applies it to the two spaces. It will stop the recursive process of finding sub-solution once it finds one.
Figure 18: this figure shows different generations of the process of detecting overlapping and resets position to adjacency configuration between the two spaces.
Finally, after defining the way spaces relate to each other, a designer choose the way spaces configured, in a form of spatial configuration. That would be according to the initial project information, i.e. site outlines and circulation paths would govern the spread and clustering of spaces, whether in linear or radial patterns or with random clustering centralised around nodes. These spatial arrangements would need a procedure from the library of codes saved in the database.
4.2.5 Relationship to next process
The previous process was confronted with a major problem, in which the recursive process is lacking in the intelligence of a human being. Even with massive power of processing of computing machines, the problem is that the system will stop once it finds a solution(local one). But there are always other solutions(better ones). Another problem called multi-criterion problem emerged. Because of the large number of conflicting constraints which will result some times an precedented computing time, or in other cases not to find a satisfying solution at all. These problems were investigated in the 3rd experiment.
This process outputs would be spaces locations in regards to other spaces. It output the optimum circulation path as well(axis). But these results were challenged with optimization demand. Their approximate values produced usually needs more precised values. this means values might get maximized or minimized by optimization engine.
Figure 19: Approximate spatial configuration resulted by constraints satisfaction.
4.3 Experiment 03: space packing
Design solution resulted by computed solutions are usually unreliable, i.e. circulation spaces are not clear, alignments are not proper and angles between spaces are not acceptable. We need to develop algorithms which work better with many conflicting constraints(13). Some solutions need to be refused even if they met best fitness, others need to be selected because their similarity to successful solutions. Even if that means sacrifices some constraints satisfaction.
At some point of automation, we might need interactivity by allowing manual solutions where intelligence of human being works better beyond mechanical enumerations.
4.3.2 Design Variables:
Space population, optimization constraints.
In this part, the population of spaces from the previous stage were saved as genotype. It’s an approximated solution without précised dimensions or shapes. A program was written to create a permutation of all possible solutions(topology sets). Rather than trying to find only one fit solution, the system programmed to search new possible solutions out of the genotype with different parameters. Then it saves all of them in an array of solutions domain(memory/DNA). Sometimes the good solution is reproduce-able through the same genotype, sometimes it is needed to be articulated through evolution. Counter to population optimisation process, Evolutionary process try to find an average sum of fitness values by rank priorities and sacrifices some of them. In other cases, it will compromise satisfaction values because of the multi-objectivity of design goals.
The major problems of implementing evolutional approach solvers are their significant computing time. It’s considered slow in speed in terms of iteration time and reproducing of multiple generations. they are complicated processes, even with highly skilled Architect in computation. However, they are flexible in problems solving. Furthermore, it works well with ill-constrained problems (varied permutation domains).
Evolutional solver library within grasshopper canvas was selected to perform the sophisticated search for an optimised solution. The process starts by demonstrating Genes and their Domains, the system treated the solutions space as a multi-dimensional search field, it randomly surveys and populates the target zone by selection of values(14). Then, automatically and according to the hierarchy of fitness matching, solutions with high fitness values are ranked higher and therefore, the ones with lowest values are eliminated. All that solutions are only recognised as one generation(stage memory). Evolutionary fitness value defined as the ultimately compromised results out of conflicting forces. It can offspring more children solutions. Consequently, following generations would never be random scattering anymore. They limit their zone domain within the last survived solution zones then repeat the process constantly.
13 A. Doulgerakis, Genetic Programming + Unfolding Embryology in Automated Layout Planning, U. C. L. Master Thesis, London, 2007. pp. 883.
14 D. Rutten, Evolutionary Principles applied to Problem Solving, Advances in Architectural Geometry, Vienna, 2010, Website:
5 Discussion and Evaluation
Experimenting space layout planning for free-forms came up with interesting results:
First, the structure of the system is very complex and depends on complex algorithms. Project information programmed at the first stage is the process of interpreting the brief. The brief is a transcript which holds the entire implicit codes of the project. The codes which define the way spaces are organized, the components which take part in the process and the types of relationships between spaces. This theme of programming were not previously mention in researches of space layout planning.
Second, the process of retrieving geometries into design context benefited from the internet and communication protocols such as OSC and UDP. According to this, Spaces geometries become global participant, it allowed for open collaborative work. In essense, good designed projects archived in Architect’s Data and Architect’s Handbook can be remodelled in databases for referencing. Plane geometries can be converted into sophisticated information system. Design Data can be embedded into geometries and it could be read from too. Geometries are modified and manipulated using these data. This information system is similar to the building information system we use in CAD.
Counter to geometrical editing techniques, space allocation need different topological techniques corresponding to relationships(Graphs). However, Topological editing techniques are rarely investigated in the field of CAD developments. Fortunately, new Generative tools helped building these tools. Generay, it requires medium level of coding skills, these codes are the basic logics of testing and corresponding, i.e. calculating distance or detecting collision. and then to perform simple operations of moving, rotating, aligning or a combination of them together.
The process of testing is a compulsory for satisfying constraints and design goals. it depends on iteration and recursive processes. it could be built to test each component individually (Geometry) or to test pairs (topologies). Building one system of iteration is enough because its adaptability to contain different procedures by class modules in scripting.
It is hard to interpret all project programs from the architectural point of view because processes are not completely interpreted into mathematical and logical operations. These complex briefs need complex libraries contributed by a large community of designers.
Visual Programming Languages were used to simplify the process and make it possible for designers with medium skills; however, limited built libraries require scripting and Programming using Object Oriented Programming to solve complex iterations in many cases. This will be the biggest challenge of implementing these processes in practice.
Based on what I saw, It is predicted that the way a brief structured will be changed. That becase its vital to explain all the implicit processes which we usually consider a default. Architectural brief interpretation is a promising research field, specially for space layout planning. Programming a project will start with structuring the suppositions as a knowledge learning system.
In order to succeed in the field of space allocation, it is desirable to have common developed tools for initiating space planning, specially for topological operations. Unfortunately, most of the known tools are borrowed from text-processing and optimization tools.
At the moment, space layout planning is being neglected by architects and design professionals. that because of the computing challenges associated with it. Therefore, it is important to provide students and designers with high skills of programming and generative skills to have the field more investigated.
Evolutional systems used in form making will be developed further to handle conflicting constraints, fitness value type. Now a day, they only work with numbers. I guess permutating and optimizing topological procedures will be part of generative tools development in the near future.
Few decades ago, when space layout planning was first investigated and explored, it was not possible to be implemented widely because of the limitation of machines capabilities. However, in the future, and because of constantly enhanced processing power and the ease of programming led by open source libraries, it is likely to be well implemented.
To conclude, in the future, the development o spatial configurations and the human needs changing nature will require more optimum and precisely customized solutions for architecture. Therefore, space layout planning will become compulsory and critical approach in decision making process of architectural design.
6.2 Summary Statement
This research demonstrates the key principles of space layout planning. It classifies processes in three main streams: project programming, geometrical programming and topological programming. Each process required a number of sophisticated generative tools. A fourth stage was introduced in the initial speculation of research structure, later on, it was dissolved into other stages. Optimisation using evolutionary optimisation are tools widely implemented in solving design problems.
Free-form spatial configuration was the main focus of the research, the changing nature of the forms produced by generative tools was the driver of this research. Spaces fusion and border disappearances between geometries were both topics of interest in this research investigation.
In this project, new ideas were explored. first, the brief programming system was introduced, then geometries characteristics embodiment system was explored, and finally, topological procedures were investigated. Optimisation challenges were overcome by studying the complexity of recursive permutation of dozens of spaces.
I. Borden, K. R. Ray, The Dissertation: An Architecture Student’s Handbook, Architectural Press,
Oxford, 2006, pp. 4-87.
T. Ireland, Space Diagrams, ECAADE 26, Montreal, Canada. 2009, P 92.
D. Donath and L. F. Gonzalez, a Constraint-Based Building Bulk Design Support, SIGRADI, 2006, PP
Ying-Chun and Hsu, Constraint Based Space Planning: A Case Study, ACADIA 19:3, 2000, PP 2-3.
K. Kamol and S. Krung, Optimising Architectural Layout Design via Mixed Integer Programming, 11th International Conference on Computer Aided Architectural Design, Vienna, Austria, 2005, PP. 175-184.
J. C. Damski and J. S. Gero, an Evolutionary Approach to Generating Constraint-Based Space Layout
Topologies, Artificial Intelligence in Engineering, 1997, PP.149- 162.
E. Tomor and G. Franck, Genetic algorithms in support of creative architectural design, eCAADe17,
Liverpool, UK, 1999, PP 645-651.
B. Medjdoub and B. Yannou, Separating Topology and Geometry in Space Planning, Computer Aided
Design 32, 2000, pp.39-61.
Y. Hsu, R. J. Krawczyk, Form Development with Spatial Character, eCAADe, 2004, PP.278 – 285.
J. J. Michalek R. Choudhary and P. Y. Papalambros, Architectural Layout Design Optimisation, Eng.
Opt., 2002, PP. 461-484.
J. P. Duarte, A Discursive Grammar for Customizing mass housing: the Case of Siza’s house at
Malagueira, Automation in Construction 14, 2005, PP.265 – 275.
S. A. Arvin and D. H. House, Modelling Architectural Design Objectives in Physically Based Space
Planning, Automation in Construction 11, 2002, PP 213-225.
G. Schmitt,’ Classes of Design – Classes of Tools’ in M. McCullough W. J. Mitchell and P. Purcell (ed.) The Electronic Design Studio: Architectural Knowledge and Media in the Computer Era, MIT Press, London, 1990, pp. 77-90.
S.M. Ervin, ‘Designing with Diagrams: A Role for Computing in Design Education and Exploration’ in M. McCullough W. J. Mitchell and P. Purcell (ed.) The Electronic Design Studio: Architectural
Knowledge and Media in the Computer Era, MIT Press, London, 1990, pp. 107-122.
Y. E. Kalay, Architecture’s New Media: Principles, Theories, and Methods of Computer-Aided Design, MIT Press, Cambridge MA, 2004, pp.199-293.
P. Bea-cock and F. Brett-wood, ‘Community Centers’ in Q. Pickard (ed.) the Architect’s Handbook,
Blackwell Science, Oxford, 2002, pp.24-28.
F. Ching. Architecture: Form Space and Order, 3rd ed. John Wiley, Hoboken 2007, pp. 183-283
A. Doulgerakis, Genetic Programming + Unfolding Embryology in Automated Layout Planning, U. C. L. Master Thesis, London, 2007. pp. 8-83.
D. Rutten, Evolutionary Principles applied to Problem Solving, Advances in Architectural Geometry,
Vienna, 2010, Website: ‘http: //www.grasshopper3d.com/profiles/blogs/evolutionary-principles’.
8 Appendix: Scripting Methods
This project was scripted by both grasshopper and Python. Both are developed to work within Rhinoceros. Rhino is free-form three-dimensional modelling software; it generates, edits, analyses, documents, renders, animates and translates NURBS curves and surfaces, it is widely used in architectural design, manufacturing and research because of it is compatibility with both software and hardware, i.e. digitizers, scanners and printers, it features many plug-ins and scripting languages.
Grasshopper is a visual Programming language runs within Rhinoceros; it used for programming and building generative algorithms. its unique because its simply working through dragging and wire-connecting of floating components in an advance GUI canvas. These wires are passing data from component to another to process algorithms by a node-based editor. There are many parameters and translations within grasshopper’s components, i.e. numeric and text variables, logical and mathematical operations, lists and data trees, translation and intersections, curves and surfaces and finally points and vectors, data can be defined locally or globally from design documents.
Python is an interpreted and interactive Object Oriented Programming language. It is a high-level language which emphasises code readability. It has large libraries and clear syntax which support multiple programming paradigms. It works with many operating systems. It’s resulted programs could be packaged as standalone executable codes; that’s works on its Iron-Python implementation which work on top of .Net framework. that one allows for using Rhino Common functions and classes inside Python as imported scripting syntaxes.
In this research, pre-built codes and components were collected and redeveloped to
perform design processes. It is aimed to spread the techniques as much as possible to a wider range of researchers. Whatever was not available were built using the tools mentioned above .
8.2.1 Programming project
Storing Data in Rhino File (15) selected for embedding project data into the 3dm file, Code
developed to promote interactive data input system. It is still in early development but hopefully would be further developed soon.
Slingshot! MYSQL was selected to use as database protocol for storing project translation
procedures. It is used for accessing, reading and writing data to MYSQL server database. besides that, it allows for multiple relationships between tables, it is similar to the way Microsoft Access work.
15 Steve Baer, https://github.com/mcneel/rhinopython/issues/16
Figure 20: Slingshot! MYSQL Database system in Grasshopper with Python used to access, read and write project information and translations.
8.2.2 Geometrical programming
Local Code was selected to import geometries into the work environment. It allows for
multiple geometric imports. The code used also to read and interpret geometric information into the system. UDP in gHowl components was experienced to import geometries and data over the internet; it shows successful results between local PCs; however, it failed with global databases because of Firewalls configurations.
Figure 21: Local Code in Grasshopper used to import geometries, Collision Detector and Python Codes Interpreter.
Set-User-Geometry-Data was created by Python to interactively easeing the process of inserting spaces’ attributes and characteristics into three-dimensional geometries, i.e. the system will ask the designer to select geometry, once selected, the designer can enter attributes as texts and numbers besides selecting from default (pre-reconfigured ) values.
Figure 22: Attributes Editor, Python code used to add data to geometries.
Translation Procedures were developed using Python. Mainly, it was written as textual codes which read geometry information and adapt according to the desired status, i.e. a script which detect the longest side of a free form geometry as it has no sides, then set it as orientation attraction, then its rotated according to the preferred orientation data stored.
import rhinoscriptsyntax as rs
spc = rs.GetObject(“Select Space “, rs.filter.polysurface)
Elevation0 = rs.GetUserText(spc, “Elevation”)
Elevation = float(Elevation0)
pl = rs.PlaneFromPoints((-500,-500,0), (0,-500,.1), (-500,0,0))
planesrf = rs.AddPlaneSurface(pl, 1000, 1000)
curves = rs.IntersectBreps( spc, planesrf)
planarsrf = rs.AddPlanarSrf(curves)
centroid = rs.SurfaceAreaCentroid(planarsrf)
height = rs.PointCoordinates(centroid)
f = Elevation – centroid
cop0 = rs.CopyObject(spc,[0,0,f])
print (‘ old elevation = ‘+ str(centroid))
print (‘ new elevation = ‘+ str(Elevation))
Figure 23: python code, it is a geometrical translation procedure, it is used to reset levelling
8.2.3 Topological programming
Set-Topological-Attributes was developed by Rhino to recursively apply multi-level
relationships between geometries. The process creates a matrix of pairs for each geometry and every other geometry in the matrix, each pair is connected by a number of arches differentiated in heights, each arch would be fed with similar attributes related to topology qualities. It allows the designer to select the desired topology to apply and values corresponding. These data are readable the same way geometrical information are read.
Figure 24: Topological Level Attributes Editor, Python Code Used to Feed Relationships Attributes between spaces.
Topological procedures such as adjacency and proximity editors were saved into
databases and retrieved into the system when needed. A text processing codes was used in python to concatenate the process with the iteration code, it allows to use the same iteration code without rewriting it. That was done to allow global code import.
Adjacency code detects collision between two geometries, then it replaces their location, then repeat the process. Connection code read desirable magnitude value between two spaces which is stored in the arch, it detects centroids, draws horizontal line between them, then use intersection points with the line to define the distance between geometries, finally, a recursive movement code is performed until acceptable value is resulted.
import rhinoscriptsyntax as rs
objects = rs.GetObjects(‘object one’, rs.filter.polysurface)
x = 
for object in objects:
for objecto in objects:
if object != objecto:
if (str(object) , str(objecto)) != (str(objecto) , str(object)):
z = [object,objecto]
y = len(x)
for pair in x:
e = pair
r = pair
for i in range(1000):
f = rs.IntersectBreps(e,r,0.001)
if f :
print ‘ intersected’
x = True
print ‘not intersected’
x = False
if x == True:
tx = random.uniform(-1,1)
ty = random.uniform(-1,1)
dx = random.uniform(1,10)
dy = random.uniform(1,10)
sx = tx * dx
sy = ty * dy
v = (sx,sy,0)
mov = rs.MoveObject(e,v)
for q in xList:
if each(q)in xList == False:
Figure 25: Adjacency editor, Python Code used to detect overlapping and set adjacency between pairs of spaces