Encoder

The Encoder is the interpreter of the system, responsible of translating design inputs into representations that the Generator will understand. The Encoder’s role is crucial since representation is perhaps the most important aspect of every generative system, as it defines what can be generated and determines whether effective search is possible [ST16]. The Encoder module is connected to the Initiator, Generator and Critic modules but has the strongest effect on the Generator and the generation process. Different types of representations lead to sometimes completely different generative schemes and output designs, so selecting appropriate representations is crucial.

When talking about representations, it will be helpful to define a taxonomy of content that the system can work with and the Encoder is able to represent. This taxonomy is specific to the AEC and closely relates to the hierarchical structure of the system we described earlier:

  • bits: elementary units of designs, for example in the case of construction components these can be windows, walls, partitions, doors, furniture, etc.

  • spaces: minimal structures that define areas that share similar properties, for example in the case residential typologies these can be the living room, dining room, bedroom, corridor, kitchen, bathroom, etc.

  • context: anything relevant to the generation of designs that is outside of the design itself but impacts design performance and requirements, this can include location, orientation, climate data, building floor plan, building massing, plot boundaries, urban context, depending on the design problem.

  • adjacency: graph data that captures relationships, connections, navigation and other aspects of space structure

  • metrics: either direct (e.g. area, volume, cost, counts ,etc.) or indirect, simulated metrics such as daylight performance, natural ventilation, energy consumption, occupant comfort and more.

It is important here to remember that due to the hierarchical structure of the system itself every layer of the representation taxonomy is embedded into the layer after it. For example, spaces are made of bits, while a floor plan is made out of spaces and adjacencies. An adjacency is possible between bits, spaces and contexts while metrics can be quantified for a bit (e.g. number of instances for a specific component), for a space (e.g. daylight performance of a bedroom), or for a whole floor and context (e.g. wind and thermal comfort). The Encoder module is responsible for keeping track of all this information and communicating it to the other system modules that require it for their function.

There is a considerable history of research on representation, both in relation to architectural and engineering design and more more generally in the context of evolutionary computation (EC). One of the earliest works in the former domain is by Charles Eastman [Eas70], investigating the issue of representation in the design world. Eastman draws from insights collected by human designers as to what is important in a drawing. The survey highlighted the importance of clear demarcation of spatial domains, homogeneity in the way designs are represented and availability of all spatial information to the designer. Eastman goes on to give an early proposal of different ways of computational representations of space, focusing on the use of arrays and strings as data structures and on shapes, dimensions and adjacencies as elements. Perhaps the most thorough investigation of representation in design is by Woodbury [Woo91]. The paper takes an equally transdisciplinary approach in an effort to understand the concepts of representation, design space, and search, using a nexus of intellectual sources including linguistics, set and graph theory, cognitive psychology and AI. The work positions representation within a formalized system of design and search which includes the aspects of modeling, representations, expressivity, range, and operators. It also highlights the important relationship between representation and search, with properties of the former influencing properties of the latter. It goes on to detail two different approaches to design representation, an expert system approach that relies on prior knowledge [FUC+88] and shape grammars [SG71], with the latter having great potential for both representation and generative capacity. Woodbury’s work provides the basis for a formal framework of generative design and has potential synergies with more modern developments in AI and specifically in Quality Diversity and the understanding of search and design space there.

While there is ample research in the AEC domain concerning these concepts we turn once again to Gaming AI and specifically procedural content generation (PCG) for practical examples of tools that were developed with the explicit purpose of generating alternative designs. Representation, as we expect, plays a major role in this work. Togelius et al. [TYSB10] provide a good introduction to how representation can be formalized, introducing the main formal distinction for representation, that of direct and indirect encodings. Yannakakis et al. [TogeliusPreussBeume+10] present an Evolutionary Multiobjective Optimization Algorithm (EMOA) and propose a mixed encoding scheme which combines a direct representation, a 64x64 heightmap, only used during fitness and visualization and an indirect representation, a fixed-length array of real values between 0 and 1, which is used to efficiently search for new designs. The paper highlights an important area of investigation, the trade-offs between direct and indirect representations in different stages of the generative design process. Shaker et al. [ShakerNicolauYannakakis+12] propose a different approach to representation, utilizing Grammatical Evolution [Brown97] and shape grammars to generate Super Mario Bros. game levels. The levels are represented as set of chunks that include geometry and properties. GE allows for the incorporation of domain knowledge through the ability of human designer to design her own representations (chunks). The work highlights the potential of GE representations due to their compact descriptions and efficiency. Sorenson et al. (ref here) present a functional approach to representation where the whole level is an individual in the evolutionary process. They represent the level using a dirac function, with a 0 value everywhere (initial state) apart from where components are introduced where value is 1. Evaluation focuses on high-level semantic attributes, in this case anxiety and fun, which raises the important question of which similarly important, semantically meaningful parameters can be used in the context of architectural design, and how can they be represented as a generative process. Returning closer to the AEC domain, Hornby and Pollack [HornbyPollack01] introduce generative encodings for generating physical design, and instead of directly representing geometries with components and parameters they use rules to construct a phenotype. A special case of L-Systems [Jac94] is used for defining the parametric, context-free rules. This process produces very robust representations which allow for mutation and recombination to happen at multiple levels and in different ways. The way to allow for robust and expressive ways of generating alternatives in the highly constrained design tasks that are common in the AEC is an important area for further research.

As is evident from the diversity of approaches to representation, finding efficient ways to represent designs, for different tasks, is the biggest challenge of the Encoder module. Despite the research conducted in other domains, this has not been researched in AEC practice thoroughly. A further, domain-specific challenge is that architectural and engineering design typically involve different modalities of input data, such as text, images, textures, meshes, time series, vectors, and more. Any generative system that aims to develop design solutions that can be helpful in the real world needs to accommodate for these modalities and take advantage when possible of the information they offer during generation. Efficient preprocessing and encoding procedures for each of these modalities will be an important aspect of the Encoder module. Similarly to the Initiator, the Encoder module provides the opportunity to learn relationships between different types of inputs the user inputs and different design tasks the use tries to solve. This is because efficient representations that are fit for purpose will perform well and can be retained and reused. Automating this process, or at least abstracting it enough to make it intuitive and easy-to-use, is crucial to lower the barriers of entry for designers to use the system.

References:

Eas70

Charles M. Eastman. Representations for space planning. Commun. ACM, 13(4):242–250, April 1970. URL: https://doi.org/10.1145/362258.362281, doi:10.1145/362258.362281.

FUC+88

Ulrich Flemming, Ulrich, Coyne, Robert Glavin, and Timothy al. A generative expert system for the design of building layouts – version 2. Artificial Intelligence in Engineering: Design. editor. John J. Gero. Elsevier (Computational Mechanics Publications), 1988. PP. 445-464 : ill. includes bibliography, pages, 01 1988.

Jac94

Christian Jacob. Genetic l-system programming. In Yuval Davidor, Hans-Paul Schwefel, and Reinhard Männer, editors, Parallel Problem Solving from Nature — PPSN III, 333–343. Berlin, Heidelberg, 1994. Springer Berlin Heidelberg.

ST16

Noor Shaker and Julian Togelius. The search-based approach. In Noor Shaker, Julian Togelius, and Mark J. Nelson, editors, Procedural Content Generation in Games, pages 17–29. Springer, 2016.

SG71

G. Stiny and J. Gips. Shape grammars and the generative specification of painting and sculpture. In IFIP Congress. 1971.

TYSB10

Julian Togelius, Georgios N. Yannakakis, Kenneth O. Stanley, and Cameron Browne. Search-based procedural content generation. In Cecilia Di Chio, Stefano Cagnoni, Carlos Cotta, Marc Ebner, Anikó Ekárt, Anna I. Esparcia-Alcazar, Chi-Keong Goh, Juan J. Merelo, Ferrante Neri, Mike Preuß, Julian Togelius, and Georgios N. Yannakakis, editors, Applications of Evolutionary Computation, 141–150. Berlin, Heidelberg, 2010. Springer Berlin Heidelberg.

Woo91

Robert F. Woodbury. Searching for designs: paradigm and practice. Building and Environment, 26(1):61 – 73, 1991. Special Issue Developments in Computer-Aided Design. URL: http://www.sciencedirect.com/science/article/pii/036013239190040I, doi:https://doi.org/10.1016/0360-1323(91)90040-I.

Brown97

K. Brown. Grammatical design. IEEE Expert, 12(2):27–33, 1997.

HornbyPollack01

G. S. Hornby and J. B. Pollack. The advantages of generative grammatical encodings for physical design. In Proceedings of the 2001 Congress on Evolutionary Computation (IEEE Cat. No.01TH8546), volume 1, 600–607 vol. 1. 2001.

ShakerNicolauYannakakis+12

N. Shaker, M. Nicolau, G. N. Yannakakis, J. Togelius, and M. O’Neill. Evolving levels for super mario bros using grammatical evolution. In 2012 IEEE Conference on Computational Intelligence and Games (CIG), volume, 304–311. 2012.

TogeliusPreussBeume+10

J. Togelius, M. Preuss, N. Beume, S. Wessing, J. Hagelbäck, and G. N. Yannakakis. Multiobjective exploration of the starcraft map space. In Proceedings of the 2010 IEEE Conference on Computational Intelligence and Games, volume, 265–272. 2010.