The langauge of computation

Page 1

THE LANGUAGE OF COMPUTATION its spirit and its lingo

COMPUTATIONAL DESIGN


Design isn’t easy ‐ it is a hard earned skill. Designers spend a life time developing ways of designing – to which they are very much attached. It defines their work and their character. I find that the dedicated designers cannot differentiate between the two. Their attitude defines their work and their work defines their attitude. Asking them to change either is asking for trouble. It is safer to write about it than talk to them in person. So change is slow and making changes in the way they design is hard. Making changes in the way they think about design is even harder. The successful CAD companies of today have known this for some time. They knew early on, that if you give them tools that look like pencils, pens and brushes – they are much more willing to give it a try. They have also by now observed that they fall in love with it (forgetting how much they hated it), and that soon they be unwilling, yet again to make the changes whose time has come. Mumbo Jumbo As we attempt here to develop such ways, we need to be conscious that we are now in a new medium with entirely different prospects and possibilities. To use it well, we must understand its spirit – a quality that cannot be totally captured in words and descriptions, but it is something that could be felt, understood and shared. I notice that we are beginning to use words like “spirit” – which only the religious have in their vocabulary, perhaps because they are unable to explain to non‐ believers what it means; Perhaps, because they cannot prove it to non‐believers. Interestingly, early science had the same dilemma in explaining their system of beliefs to the religious folks who “knew it all”. Perhaps this is the quality of pre‐emergent philosophies, that they have to use a bit of mumbo jumbo for some time until, what they say become a coherent whole and a dominant philosophy that gets enshrined in the temple of certainties. Till that time, lets enjoy the mumabo jumbo – there is plenty of that in Computational Design. Medium This is another interesting word used often and liberally without due regards to its definition – which in this case involves dubiousness as part of its definition. One of it being “A person thought to have the power to communicate with the spirits of the dead or with agents of another world or dimension. Also called psychic.” It is such words that makes the world of computational design far more interesting than the world of computation saturated with really boring certainties. Thank fully the world or art, design and architecture uses the word – computational medium, perhaps to save itself from the boredom of reality; perhaps, to imply that through the word “medium” the magical powers of computers can be harnessed to do magical artistic work ‐ but only by those who know the spirit. This way, they become the hi‐priests of design able to reveal the mysteries of the spirit too those who are in awe of its powers. Computational design is blessed with such personas. We have no intention here to disrobe them. Our focus is on the heathens, who have no faith in its powers. Computational design is said to happen in Computational Media, where computation refers to computers, software, the internet and all other facilities that essentially rely on calculations and medium refers to the support of art, design, communications, entertainment and education. Hence I suspect that the word “Computational Mediums” gained prominence, as it implied the application

COMPUTATIONAL DESIGN


computation to the fields of art, architecture and design –with due respect to its mysterious qualities and without the intention of removing them. Since the medium refers to a wide range of activates, we like to focus here on architecture as is straddles the world of reality and imagination, whereas purely artistic activity can take a leave from reality. A few decades after the automation of the drawing board, we have finally settled on seeing computer aided design as the art of developing virtual representations of design – especially in architecture. This is a very good start; but only a start. Thanks to the amazing developments in computer science, hardware and software, we are finally able to create design representations that are good as real. Designing now – in computational medium – is very close to having the real thing in front of you. You can now cost your designs, analyse its performance and even walk through it. But you are still unable to use these amazing machines to help you come up with designs. That is the next big step. Components of Computational Design Our conventional design practice requires us to think through designs in our head. We then draw it out on paper and once we are somewhat certain, we move it on to computers. As this is our current practice, it brings with it the limitations of the paper based processes into the new medium. In paper, we can only represent geometry. The rest have to be managed in our head. We also cannot numerate, but then we convince ourselves that this is not necessary because sketching is early stage and nothing needs to be that accurate. Now let us look at what we can do with computers. Once the design is represented in a computational medium, they can be subjected to structural, environmental and acoustic calculations with increasing levels of certainty as the design matures. Even though there are significant uncertainties in early stage design, analytical methods can still be used to weed out complete un‐ viable designs enabling designers to work on more promising designs. More importantly computers can help us explore much more solutions than what we can by ourselves. A wide range of engineering calculations can now be made by non‐engineers. In other words, design in computational media allows us to use embedded knowledge in developing our designs. These are some of the compelling reasons for us to change the way we design. Computational Design has three important elements: 1. Design representation 2. Computational media 3. Strategies for authoring, interacting and selecting Design Representation Typically, this would be geometry and material information about the design. Currently the most popular format for this is the BIM model which arose out of the marriage of the automated drawing board and bills of quantities. But there are also other ways of representing designs which could be more suitable for design exploration. COMPUTATIONAL DESIGN


Design representations in nature for example, is composed of build instructions, of not only of the organism, but also of the organisms evolutionary past. This is a design representation of a much more sophisticated kind as it is capable of building objects of amazing complexity; capable of assembling all the components necessary for its replication through a carefully orchestrated build process and more importantly it is structured to explore design possibilities. CAD files are dull in comparison. There are three types of CAD files: 1) Pure geometric data (e.g. SLT files) 2) Structured data ‐ so that CAD programs can create geometry (e.g. CAD files) 3) Data and Program to create and display designs (e.g.: 3D E‐drawing files) While the files contain the information to create design representation, it is the CAD medium that creates the actual geometry that we interact with; which is created using 3D display formats such as OpenGL, Collada and VRML. The design representations are rendered in Computational Media, using common display format using the data and instructions stored in a CAD file interpreted by the CAD program

Display Format

CAD file CAD Program

CAD is a by‐product of Computer Aided Manufacturing (CAM) facilities that required easier graphical ways of inputting geometric data for machining metal components. They were primarily designed for data representation. It is only later that they were used for design. As design involved changes to data representations, CAD programs became sophisticated in authoring, managing and displaying design data. In addition to geometry, there are many more aspects such as, material colour and texture that are now part of the design representation. Since CAD files are part of constructing documentation, they increasingly contain all the information that is required to manufacture the design representation. The information contained in them is about the same information that would be contained in the realized form of the design. Hence design is increasingly about creating virtual representations of artefacts.

COMPUTATIONAL DESIGN


Computational Media Is defined here as the environment in which the design representation lives. Typically this would be the CAD environment, powered by the computer or the network. To stretch your imagination, let us look at the biological design media. This would be the cell’s nucleus. In our case that would be 3.2 billion DNA base pairs that are compacted 400,000‐fold to fit within the tiny cell nucleus. It is within the nucleus that the drama of biological design unfolds. The design media in this case is the nucleus with all the DNA and the supporting arrangements that are required for its functioning. The music synthesizer is another example of a computational media in which music is created. The DJ in devices provides yet another example of devices created for mish‐mashing existing creative content.

The media as you can see plays an important role in defining in design development. Simple programs that interpret stored geometric information and create virtual representations are infertile in themselves for supporting creative work. The frameworks for creating design representations and those developed for creating design representations have different qualities. The gaming industry currently drives the first and the design industry drives the second. Haptics, virtual reality and other forms of capturing human actions are now playing an important role in receiving and managing a multitude of human inputs. Computational power and connectivity of the media is another factor that we are now realizing to be of increasing importance. We should not assume for a moment, that the current forms of CAD are the most suitable media for design exploration. But thankfully, they are structured for plugs and other tools to make themselves to be of used in better ways. Strategies for authoring, interacting and selecting Now that we are somewhat aware of what we mean by computational media and design representation, we are ready to explore ways in which we can author design representations. As design transitioned from physical media to digital media, it inevitably brought with it older ways of working. The thinking was previously done in the head and implementing was done by the tools. But now we are authoring designs with tools that can think – if we allow them to. We don’t. The big change that we are concerned with here is, how we may let them. How we can use the thinking tools to be part of the creative exploration, that previous did with our thinking heads.

COMPUTATIONAL DESIGN


There are various ways in which we can interact with the design medium. It is assumed here that creative design will require intensive unstructured interaction and routine design will be without it. It is also assumed that selection in creative processes cannot be numerically define and in routine design problems it can be numerically defined with some level of accuracy. Such definitions make it possible to implement mathematical optimisation processes based on fitness functions, cost minimisation or objective functions – as they are referred to in engineering. It is assumed that this would be inappropriate for creative design as defining the selection criteria is very much part of the creative design problem and its complexity is bound to make it un calculable making it a much more interesting problem – requiring human involvement. Computational media also brings in a host of other ways of working that have its origins in computer science such as image processing, music synthesising which can now be brought into play in various ways to enrich the creative process. Let us look at the different ways in which we author designs, mainly to develop an understanding as to how the limit the way we work. Hand Painting You may notice the wide mix of colours layered on top of each other and somewhat mixed with each other. You may also notice that the items are layered on top of each other. There is somewhat of a visible sequence in which this was painted. There is also an element of emergence due to inadvertent mixing of colours and new techniques that may have been discovered during the painting process. You may notice that this painting is created out of a process of constant interaction between the medium and the designer. The qualities and the characteristics of the medium are apparent in the design. Computer based painting You can see that this is authored by a pre‐ made set of tools and is devoid of emergent qualities. This is A screen based created with a think replication of and implement drawing and approach. It has no painting tools .The layering or sequence. design tools here are You can change things less messy and are at any point. The designed to do

COMPUTATIONAL DESIGN


exactly what it is supposed to do

design tools are designed as highly controllable tools.

Each component is independent and does not seem to interact with the other. The UI must have been designed by engineers, with clear purpose. If you ask them, they may only spot errors in this painting – mismatches between what was intended and what was achieved and it is precisely this ‐ that gives it a valuable human quality. Generative Art This is a generated piece of art by Chad Udell using Action Script. Here, the authoring tool is far removed from the design representation. By looking at the code, it is hard to imagine what will be created. This piece of art is authored without a direct visual link between the code and what it creates. We see here qualities that are representative of computation ‐repetition. Code is good at repetition. Nature uses it too. You can almost see that the entire artwork is created by a few parameters that control the circle size, line width and colours. Repetition, transformation and patterning are hallmarks of computational design. It is also often accompanied by a sense of layering and a sense of sequence.

COMPUTATIONAL DESIGN


There are yet even more interesting and more sophisticated ways of representing design and orchestrating its development – in biology. This is an illustration of the hox gene which helps build divergent body plans with similar genetic pathways

Biological development is influenced and orchestrated by a chemical symphony. The hox gene regulates the placement of segment structures of animals during early embryonic development through the release of chemicals that trigger development of various biological components. Hence, this yet another way of computationally authoring forms of great sophistication. The examples are presented to show how the medium determines the quality and nature of the outcome. It also shows that the outcome is the result of a rich interaction between the medium and the design representation. It illustrates the critical importance in the nature of the design representation, design media. Most importantly to illustrate that there are many different ways of representing and developing designs. Perhaps the way we do it now in computers is the poorest of them all.

COMPUTATIONAL DESIGN


In comparison to nature, the way we author 3D forms in computers is less developed; for we author the end form directly. In nature, the start form is different from the end form. Complexity is gradually added and each element knows how to construct itself. It appears to be a highly orchestrated yet de‐ centralised process. In addition to being able to create complex forms, it is also has the ability to explore design possibilities along the way. It is through minor modifications of build routines that a rich variety of forms is generated. But nature and generative artists are unable visualise the end design by looking at the code. They both rely on an entirely experimental process. We hope you notice now, that the way we now design using computers is based on form. We use code to create form. Whereas natures creations are based on code ; where form is only a by product of code. In other words we practice form based design using code whereas nature practices code based design resulting in form. The approaches to design here are quite different. We need geometric representation of form to even think of designing. We cannot design without it. This is one of the things that differentiate human design processes from both natural and computational design process. But this is also its serious limitation.

COMPUTATIONAL DESIGN


CAD Lingo CAD packages of today are a result of our desire to hold on to pencil and paper. Google sketch up even furnishes us with accentuated pencil marks at the end of each line. Autodesk for a long time, was obsessed with automating desk, remaining true to its company’s name. They are growing out of it now. We are slowly beginning to see a divergence in CAD tools. But first let us discuss the CAD lingo: 1. Design Parameters – Usually parameters that are set as variable (so that you can change them). Non variable parameters such as site dimensions may also be considered parameters as they have an associated numerical value 2. CAD kernel – The geometric engine that translates the design representation into a geometric object. They can also detect if a geometry is infeasible 3. Relational Geometry – if a CAD kernel is present then it often allows you to build geometric relationships between geometric entities while rating the CAD file. This depends on the CAD Kernel 4. History based CAD – This is when the sequence of building the CAD file is recorded and in most cases, displayed to allow for later modification 5. Plug‐ins – Programs that are integrated with CAD with access to its inner workings 6. Scripting – When code is used to author form and other geometric operations 7. Analytical Packages – Programs that can analyses measurable qualities of the design eg. structural, thermal, acoustic behavior CAD systems may be seen as a particular type of computational media in which design representations are made. It is important to understand the difference between the end geometry displayed by the CAD system and the way the geometry is constructed. CAD is a program that constructs geometry from instructions and data store in a CAD file. Every CAD system has its own way of constructing geometry, depending on its kernel. Ever wonder why it is difficult to translate CAD files across CAD programs? It is very easy to do if the end result is a geometric file (e.g. SLT) but it is often a mess otherwise due to the differences in the way CAD programs construct geometry. Despite this, they are able to construct the same end geometry using entirely different ways. CAD programs are a collection of programs that use programs to create geometry. But they hide this fact meticulously, because what CAD companies take pains to ensure that no aspect of the program is exposed in its raw and ugly stage to the user. It is only revealed when the program crashes – because then it will give you an error number – revealing its true nature. Conventional CAD programs are systems for keeping the user in a mental state of 3D modelling where they can see and manipulate geometry. Visual scripting bucks this trend as it exposes the code as drag and drop boxes that the designer can directly manipulate to author designs.

COMPUTATIONAL DESIGN


Computational Concepts We wish to introduce here how computer scientists and mathematicians view the “design problem” within their “discipline”. They unalike designers are so disciplined that they see the world through well established concepts. One of this is the concept of “space” – used very differently in architecture. My guess is that this other concept of space was invented by mathematicians – because many of them appear to be spaced out – on occasions when their mid travels to places that they cannot describe. While our world is limited to 3 dimensional space; theirs is not. They can imagine worlds that are n – dimensional where n, stands for any number of parameters; while we are stuck with the familiar 3 denoted by the X, Y & Z coordinates. Design computation typically involves three different types of spaces: 1) Parametric Space 2) Geometric Space 3) Performance Space Let’s take for an example of a car. The parametric space of the car would be made of the parameters that are used to define the design of the car. This could be the height, width and breadth. It could include the number of seats and all the parameters in the CAD files used to design the car. If it was just the height, width and length, then we can easily imagine the location of the car in a 3 Axis parametric space. But in reality, these parameters will run into thousands. Here the concept of “parametric space” allows us to comprehend a large number of data points plotted along a large number of axes. A CAD program can be used to create a geometric representation of the CAD driven by the parameters in the parametric space. All the data points and geometric characteristics such as surface, area now define the Geometric Space. But we must remember that this is based on a particular CAD representation. By analysing the design or by using simulation engines, or by building it, we can quantify the performance of the car such as its top speed, fuel consumption and weight . These parameters now define the performance space.

Design Representation

Geometric Space

CAD

Analysis

Parametric Space

COMPUTATIONAL DESIGN

Performance Space


Each point in parametric space defines a point in geometric space and performance space. Design is then seen as finding the location in parametric space of the design that would have a desirable location in performance space. In the example of the car, it could be the car with a particular length and width of with a particular fuel consumption ( eg. 50Km/litre ) with a price of $20,000. It could involve more parameters within acceptable limits. Such a description effectively defines a point or a region in performance space. It is theoretically possible to find the location in the parametric space for each location in the performance space through what is called the “mapping” of performance and parametric space. Now if you wish to have car that is capable of 3000km/litre, then you cannot find the corresponding point in the parametric space. Hence it is important to remember that these spaces are bounded. It is also important to remember that the relationships between spaces holds true only in the context of a shared design representation. Creating the design representation is the key problem in design. Once the representation is made, it is easy to explore design possibilities based on that representation. Unfortunately, engineers call this design. Design as problem solving Computer scientists and engineers are specialist in solving well defined problems. Once the design problem is defined in their terms, they know how to solve it. They have developed many different methods of searching for the answer once the problem is defined. Optimisation is what most of them do for a living (even though they may interpret it as design). You can do optimisation when the spaces that we discussed are clearly defined, quantifiable and the mapping between the performance and parametric space is known. Optimisation is the search for a solution within constrains. Given a particular point or region in the performance space, you need to find the corresponding point or region in the parametric space. This is the typical “engineering design problem”. In this context design can be seen as a “search” for a particular set of parameters that will correspond to a particular set of performance parameters. It is called search because this space can be huge, involving billions of data points. In our view, these are not “design problems”: Because, in order to start searching for the solution, you need to have a somewhat complete representation of the design. This is where creative design separates itself from routine design. In routine design, the design is in effectively over before it starts – because the representation is already there. What happens in effect is technically optimisation though it is called design. In creative design, the representation needs to be first made – because it is not there to start with. Each design representation represents specific regions in geometric space. Creative design should be seen primarily as the act of developing the design representation. Different representations will occupy different regions in the performance space (some of them are bound to overlap). Creative design is therefore about developing the design representations that would provide desirable performance. The rest is relatively easy; thanks to the simulation environments in which we now design in thanks to the unlimited amount of web based computational power that we can now deploy for search.

COMPUTATIONAL DESIGN


We will next explore through a simple example the nature of the design spaces and how they relate to each other.

COMPUTATIONAL DESIGN


Annoying Student Questions These are questions that I don’t enjoy answering, because they are due to confusion caused by colleagues. What is parametric design? Parametric design has been used in Mechanical CAD packages for about two decades. However, its virtues were discovered by the architectural community only recently. Claims are made however, for this to be a new architectural style and by some as a new design philosophy. What is procedural design? All CAD based designs are procedural designs. The confusion is caused by some CAD companies exposing these procedures, while others take pains to hide it as much as possible – except when it is about to crash where it is ready to reveal its real nature and gives an error code, like people exposing their true nature at points of distress. What is algorithmic architecture? Technically, all architecture is algorithmic‐ as algorithms now drive all CAD programs. What is often meant by algorithmic architecture is form authored by external algorithms – with no direct relevance to the design – except to determine the aesthetics of it. The key proponent of Algorithmic Architecture, Greg Lyn justifies it as such “Just as development of calculus drew upon historical mathematical developments that preceded it, so too will an animate approach to architecture subsume traditional modes of statics into a more advanced system of dynamic organizations{Lynnn, 1999 #40}” On one hand, this approach is historically consistent in the practice of ancient architecture where it is customary to draw on mythical knowledge. What is missing in this approach is the exploitation of more relevant computational knowledge about circulation thermal behaviour, lighting and structural aspects which can be used to help shape form. It is known that complex design problems cannot be resolved using algorithmic solutions. But interesting forms can be created. But such forms are likely to be mis‐alighted with other early factors. However, we need to make an exception for a certain type of algorithmic design, that can be “...regarded as an extension of human thinking and therefore may allow one to leap into areas of unpredictable, unimaginable and often unconceivable potential “

COMPUTATIONAL DESIGN


Do I need to program? Only if you have time to spare. It is not necessary now. It is the job of programmers to put things in a way that you can use. Visual scripting has now made it easy to understand how code gets connected. Coding is not necessary, but can help you to extend some features that are needed for specific projects. There are communities that you can join where much is shared and a lot is learnt. Computational design is not about programming. It is more about understanding design as an information model that you shape through the design process. Books worth Reading The architecture of emergence: the evolution of form in nature and civilisation Michael Weinstock Discusses the nature of order in terms of emergence. Though this is not directly related, it presets yet another important frame work to understand design. Blog Review

Further Reading

 Computational Optimization from an engineering point of view

COMPUTATIONAL DESIGN


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.