Computation as a tool for Architectural design development


Computational Tools for Design Development – A Case study of Building the ITHRA project

By Mohamed Naeim A. Ibrahim


  1. Introduction
  2. Computation for Design Realization 
  3. Realization role of an Architect 
  4. Step-back capabilities
  5. Computation for Construction  
    • Intelligence Embodiment
    • Orientation & Referencing
    • Data Management
    • Fabrication
    • Machine Control
  6. Conclusion
  7. Appendix

Images and Illustrations

Figure 1: Building near completion…………………………………………………………..

Figure 3: Shading Devices above the Cladding system…………………………..

Figure 4: First Digital Model Rendered…………………………………………………….

Figure 5: Step-back capabilities 01…………………………………………………………..

Figure 6: Step-back capabilities 02…………………………………………………………..

Figure 7: Wall Unit after Data Embodiment………………………………………….

Figure 8: Difference between Site and workshop Coordination………….

Figure 9: Wall unit contents……………………………………………………………………

Figure 10: Referencing Points of interest……………………………………………..

Figure 11: Precision, between Mockup and Reality………………………………

Figure 12: machines, similar to our used machines……………………………..

Computational Tools for Design Development –
A Case study of Building the ITHRA project

  1. Introduction

A paper describing the process of using computational tools in the realization process of King Abdul-Aziz tower for world culture, a project I worked on as an Architect.


In this paper, I will share  my experience in constructing King Abdul-Aziz Tower for world culture (ITHRA). In this project, I was working on the process of fabricating and installing the facade and roofing system. ITHRA project is one of the most prestigious architecture built recently in the Middle East; a great building designed by the international office of Snohetta of Norway. ITHRA is a giant center designed to host cultural activities and events, it consists of a tower, and a couple of other buildings containing auditoriums, halls, and many other spaces. The building is designed in a creative way, where all its surfaces and volumes take a free form theme. The whole building has the shape of a cluster of rocks merged together in a homogenous way. This project is expected to be one of the most famous architectural masterpieces worldwide, not only for its beautiful appearance but also for its avant-garde technology used to design, build and operate.

In this project, my work was engaged directly with the production process of the building envelope, that include the facade and roofing units, as the building was mainly made out of two things, structure and envelope. The structure was made out of typical concrete floors and columns, plus mass-customized steel structures, which were created to support roofs and walls. Our part was the most challenging part, where we were facing a lot of issues related to the realization of such a great building. The challenges started with the design itself, the complexity of its form, and the way the intelligence of design was miss-embedded into the digital data, and how we needed to deal with that, then the difficulty of fabricating a unique structure and its tectonics in a less advanced construction environment, and finally, the challenge of working with the other team, where they used a very primitive way of working. 

  1. Computation for Design Realization 


I had a number of responsibilities on this project, but before I describe my role in the process, I will address the issue of computation for the design realization. When realizing a complex structure, especially if that includes freeform surfaces, it’s very important to use the computation power to automate the digital model creation. The first reason is because that is the main challenge; it’s almost impossible to use the manual way in following and understanding the non-linearity of the architectural form. The second reason is that the designing and building process of a project requires a lot of details and drawings, and the time/budget are very short to be able to produce thousands or millions of these data, especially because it requires an army of designers and drafters, who are not reliable or even possible, especially with the high skills required to work with such problems.

In that project, the part which I was not involved in, but was very important, is the process of generating the full set of the three-dimensional detailed model of the building, which was rationalized into over three thousand units, each unit is provided with every single detailed part, with the exact shape and size, that includes hundreds of parts, such as structural steel frames and their supporting mullions, C & T section holders, folded panels, curved runners, lifting hooks, shading device supporters, and finally all bolts and fixtures. All that parts are placed on its exact location using a custom computer program, built especially for this project, to automate the modeling process, in addition to many other processes such as programs of rationalization of elements counts and distributions, and also programs of evaluation for structure reliability and wind resistibility.

  1. Realization role of an Architect 


My role started on the project soon after that sophisticated 3D model comes to life, after it was tested, accredited and finally approved. Then it was my role to use it. As an architect, my role is to communicate design ideas, concepts and information to all team members participating in the construction project, otherwise, it is impossible to them to use the data, unless if it was translated to each participant in a language he, she or it (machines) can understand. In our case, the model, even it was created in a generative and intelligent way, however, it was inform-less, it was CAD model, however, construction need BIM model, a model with all information and data embedded into each part of the tectonics, to be callable, reachable and categorize-able. The interesting part is that the model had a little bit of invisible embodiment, actually, it was filled with some kind of classifications using some deep digital formats, but still was not recognizable for many people, like other architects brought to do the job, and then that what I was able to reveal using the computational tools I developed especially for this project. That was my initial part of the job, which I will explain in details later on within this paper.


  1. Step-back capabilities

While Exploring the intelligence and deepness of these project parts, I learned a lot about construction advancements in the era of digital age, When an architect designs a freeform building, with all curved and nonlinear shapes within its parts, he should put into consideration many issues related to its construct-ability, but what is more important, is to give the constructors a step back possibility to be able to keep the precision of the work, even when fabricators and constructors make mistakes, all that is achievable within very small tolerance chances. In construction sometimes, especially when they use primitive approaches, the worst which could happen, is that they miss-coordinate items, such like our project, where they placed a column 300 millimeters away from its supposed location. Sometimes, fabricated units are welded in a neglected way, a small item would be tilted or twisted in the wrong direction, not much, but that means for sure that neither of the hundreds of supports and holders or their fixing bolts would fit to their location, a holistic chaos, nobody want to spend the day trying to find what went wrong for such mistakes.


So the tolerance allowing techniques, as I like to call it, is permitting items to become adjustable and adaptable, that means each item has a number of axes for transformations, moving and rotating around a specific plane. So if the guys there on the site did not do their job properly, then the installer would have the capacity to install the part integrally without the need to prefabricate the item or demolishing part of the construction, but all that was only possible if it was within the set tolerance.


  1. Computation for Construction  

To conclude my activities in this project, in 5 main tasks, embodiment of 3D Model, BIM Data Management, Fabrication Coordination, Precision proofing, Machines Automation. Each one of these tasks was a trip of it own, all of them were happening at the same time simultaneously. A long work day starts with computation, followed by running the programs, applying them to the elements, but then a process of data management starts, in order to make the fabrication possible, but then sometimes things get messy, and we then need to make sure everything is within the tolerance, every time we do this, and finally, machines need to be programmed, not the electronic programming, but the data-interpretation programming. That’s all my work in few words.


5.1 Intelligence Embodiment

The first task was concerned with creating a computer program, which can understand geometry created, by recognizing its elements, and then be able to locate specific points of interests within the piece. That was not an easy process. The model was designed using an algorithm, which uses modules of standardized construction elements of different types; each element is selected according to its suitability. Each element was coded in terms of color, and function. And that’s it – a dead geometry without single usable information, and even if we had the names embedded, still that was not what we needed at all.


So I started writing a program with the well-known tool of Grasshopper, a generative design tool work on top of Rhinoceros of Mcneel as a plugin, it allows the designer to create design programs through a visual programming interface, without the need for any deep programming education. But it was not enough on its own, I needed to use Python, an oriented programming language which works within Rhino and Grasshopper, and it allows the designer to use the syntax of the software and it’s behind the stage modules. This allows functions to be automated, and activities to be permutated, through programming, solutions can be iterated and finally it allows recursion, that solutions can be reused as inputs in computation.

5.1. Orientation & Referencing

We needed a lot of information when we intended to utilize this model in our construction process, as we can’t use drawings in such projects anymore, that’s because, in freeform buildings, there is no system of referencing, such as Cartesian planes (XYZ Plane) where it is possible to measure distances, or even calculate rotations. In free-form buildings, everything, every element is unique, every single one is located and oriented differently, and I am talking about over three-thousands units, each element we worked with, we needed to assign a self-referencing plane for every single one, and then altering its orientation between the original site-based plane (World Plane) and the Workshop-based Plane (Temporary Plane). Because of that problem, we needed to separate each element and exported them in an isolated environment. We used some simple algorithms which allow units to be projected and altered between the two planes.


In the Workshop, reality, orientation was a bit harder, that requires a unique adjustable stage, and each unit with its heavyweight, was lifted and placed in a specific setting, and we started the process of fabrication. Some other elements were prepared for the process such as a stage for monitoring.


5.3. Data Management

The second stage requires us to try to find the points of interest for us, points used to digitally locate frames and mullions, points used to placeholders, or their fixing bolts, and also the points of initial hooking and hanging, hooking the unit to the floor, or hanging the shading devices from outside. There are hundreds of these points, and we needed to automate not only the process of finding elements but also ordering process, data-structuring, layering, naming, annotation and displaying processes. We designed a system which builds a data structure for all elements we agreed to work with (F-frames, T-mullions, C-sections, I-sections, R-Runners, and H-hooks), then it finds a specific location within each part which can measure margins, and then precisely find points of interest.


Another algorithm was used frequently in this process to produce a list of naming, numbering, and clearly visible annotations, for helping in the afterword process of fabrication. And that process was one of the most important in the whole project, other team members are not like us, they are basic computer users, even if they have training, they suffer a lot while trying to find an element or reading an attribute.


5.4 Fabrication

Now, the model became a fully integrated BIM model, full of useful data, transferable, reusable and interoperable. We hand data to surveyors, to measure initial steel frame, In this stage you work with a real part of the project, in the heat of the desert, supported by a revolutionary total station, heavy duty laptop machine, and very expensive work kits, we used the laser locator to assign the new work plane, and then we started to check and retrieve the status of each point we annotate in our 3D model. The machine record the data, and then the data get back to me. I used another algorithm to compare the current status of the unit with the 3D model. In this process, we duplicate data structure again, for the new set, the points on reality. Then we apply a calculation algorithm which compares deviation for each axis at each point, and that would make a table or tree of data, at that point, we used another algorithm which can export all that huge data sets into readable excel files. With some settings, everything became readable, and then fixable and adjustable, for example, if a point is shifted forward, it’s brought backward while the unit is still laying on the workshop plane settings. All these processes were repeated through all other stages of fabrication and manufacturing.

dds xddscds

5.5. Machines Automation

While fabricating the rest of the elements, some elements required to be produced with machines, such as the aluminum panels, and the aluminum runners, some need folding machines, and some need a bending machine, a bending machine is a tool which swallows a straight frame in, press and pushes it in a specific way long number of rollers, and spits it away curved. The curving process requires a special kind of data, which is organized in a table, each element has an adjustable level of accuracy and strength is required to change it, calculated mathematically using the coordinates of specific points within the element, and it was very easy to test its reliability, even without measuring sometimes, the new bent runners are placed perfectly on top of its holders, with no single gaps. And that was the goal – precision.

dfdsfs dferrfer

We heavily needed to use machines when we needed to build a mock-up, a one to one scale structure, representing a part of the building, in our case was the upper corner of the auditorium. We needed to produce a number of extremely curved units and install it to the structural portion placed on the factory. And the curved units were unique with interconnected curved runners.

  1. Conclusion

Designers should really start to develop new kind of skills and techniques that allow them to understand their designs better, and help them realize its realm out of the digital model. A designer should be able to produce structural systems out of the shell he creates, and he also should be able to produce 3D detailed models, including all kind of details required for the project to be built, either using customized elements or purpose/location related elements. Especially that we are now in the era of digital design, where the 2D drawings are not anymore required or even useful in an efficient way.

A successful building information modeling, is not only the use of commercial packages found on the market in designing and modeling a project, but it’s more precisely, the efforts a designer makes to communicate and exchange his important design data and information with all kind of participants in the design and construction team, each according to his needs, and that kind of information should really put into account from early stages of design, otherwise it would be a problem for constructors and contractors to extract it out for use.

It is very important to use supporting digital kits in the construction process, which goes beyond the manual ways, for example, total stations and 3D laser scanners to document the existing status of the building or its elements. Other tools are also useful and important, but more importantly to develop a workflow or methods to integrate these tools efficiently in the process, and gain the benefits from its feedbacks.

Computer numeric controlled machines are necessary for the fabrication and installation of freeform projects. These machines can reduce the time required for producing loads of elements. CNC machines can also produce complex shapes that man can’t produce, at least easily. These machines can safely manufacture hazardous materials, which require heat, electricity, and mechanical forces, without one single accident to the construction team.

  1. Appendix

3D Model of the Basic Element

by mohamednaeim
on Sketchfab

Temporal Data – World Population

I conducted this experiment as a part of a bigger project called the scapes of living Data. It’s a research project in the area of Data visualisation and smart cities. The goal of the research is to reveal the hidden beauties of living data and to explore the possibilities of understandings reached by analysing the data computationally.

I will keep posting developments of the project on this post. The whole project idea is about how dynamically it can be to design and do planning using living data, which is imported and perceived in real-time. Understanding complex issues related to city planning and urban environments need such interactive and dynamic processes.


Figure 01: Data Visualization – Temporal Data – World Population

The simulation above simply uses data imported from World Bank website, where they have a portal for well-organised data, and it’s placed on a time structure which allows it to be used as indicators for changes and developments on data registered. these data can be anything, from population, areas, conditions or even challenges and conflicts.

Figure 02: Data Visualization – Temporal Data – World Population – Zooms

I used the population data which is the most reliable and best represented to start with. The world population simply grew in the last 65 years to almost the double, and most of these rapid increase happened in Asia alone (China and India). Maybe I will explain it more in the next update, and I will add a number of analysis visuals and data explorations. At the mean time, you can just set back and enjoy the show.

Video 01: Data Visualization – Temporal Data – World Population – Zooms


Unpacked Spheres

Video 01: Unpacking – 2D Shapes – Different Sizes

A simple algorithm I developed to simulate the process of packing. Actually, I decided to work it out this time in the opposite way around. I started with a group of intersected curves(circles) and directed the definition to unpack them to reach a status of attachment or minimum proximity.

Figure 01: Unpacking – 2D Shapes – Different Sizes

I started with 2Dimensional shapes, circles. I developed a tool which works on 3 levels of iterations. The first one is used to measure the distance between the selected surface and all other surfaces, then smoothly push them away from its centre. The second level is the one concerned with iterating the previous process among all intersected surfaces. Finally, the upper level which considered the testing section. In this level, the whole process is iterated hundreds of times, that because I am dragging the unpacking process in small steps, that which allow for a coherent adjustment between the surfaces. the algorithm exit by reaching a status of no intersection between all surfaces, and with only small gap in between them all.

Figure 02: Unpacking – 3D Shapes – Different Sizes

The process worked fine with 3D shapes, a bit slow, but perfectly adapted, I am even thinking of trying other shapes soon.


Figure 03: Unpacking – 3D Shapes – Different Sizes – Comparing Initial to mid-process

this is my first attempt, I don’t use any custom made algorithm or scripting environments like C#, or python. It’s a pure grasshopper definition, with the help of the Anemone Plugin.  its not very efficient, because I used the geometries as a reference, but in my next tries, I might get a faster definition by using only the spheres points organised in data tree together with its radiuses.


I will Try to post the example on the grasshopper forum:—-


Organic Tessellations

I was willing to make a kind of organic tessellations, something brought from nature and almost represents the natural stacking of soft tectonics inside living organisms. Alternatively, let’s say I am trying to generate a kind of Bio Architecture forms or just a typical blobby forms.

Figure 01: Organic Tessellations – Single Cell – Environment only and Env + Obstacle

I decided to Generate an active form which can easily reform itself around obstacles, environment and neighbours. An adaptive design system which can impress with unpredictable results. It’s based on simple recursive operations, where tectonics interrelate themselves with every single Other member in the system. Cells start as simple surfaces, then it smoothly grows over time to occupy space around it. The cell is considered somehow intelligent, it senses and observes the environment and the surrounding. While it keeps growing, it keeps reshaping its edges to make sure that it doesn’t exceed others promises. The same process is repeated for all the cells in the program in an iterative manner until a form of an organism starts to shape up, then finally, a status of stability or equilibrium is reached inside the program.

Figure 02: Organic Tessellations – Single Cell – Environment and Multiple Obstacles

My first attempts were simple, as I used only one cell and allow it to adaptively reform within a rectangular environment. It was was fast and efficient. Afterwards, I decided to add obstacles, one, two and even three. with a help of little circles of recursion, all was possible.

Video 01: Organic Tessellations – Single Cell – Environment and Multiple Obstacles

The challenge was to add another level of recursion where there is more than one growing cell. so I decided to create a complex system which allows each cell to grow a step at a time so I can be able to test it against the other growing cells. and it works fine even with loads of growing cells.

Figure 03: Organic Tessellations – 2 & 3 Cells – Environment Only

Generally, the final result, if its only cells, then it will be more like a network of a typical Voronoi. however, what unique about it is how it starts to reform around the edges and the inner obstacles. The final result is more than satisfying than ever.

Figure 04: Organic Tessellations – Multiple Cells – Environment Only

Rubik Cube – An Impossible Solution

While writing these words, it’s still running. almost 20 thousands iterations, and no prospect solution any soon. The Rubik Box, Very famous game tool where you can rotate a number of boxes in different axes to reach a homogeneous facing. 6 faces with 9 boxes located on each face.


Figure 01: Rubik Box – Initial Shape

I tried to use Grasshopper to develop a definition to solve the problem of Rubik Box. it was not an easy task, but after finishing, I realised that such problem is solved with totally different sets of solutions. After getting help from a friend calculating the computing time needed to solve such problem using randomness, I decided to stop the process and try again.

Figure 02: Rubik Box – Rotation Planes

It’s fun to watch, and its working perfectly, I will be posting both the file and the video so you can enjoy playing with it. If you are interested in solving it, I am open for suggestions.


File: in Grasshopper3D website/examples and samples




3D Voronoi Cells

On this experiment, I was trying to create a custom definition to build 3D Voronoi cells. It’s a developed work of the previous experiment on this link:

On this experiment, I build an iterative process to subdivide 3D cells against all surrounding other cells so it has the perpendicular facing edges.

Figure 01: 3D Voronoi cells – Iterative Process – Equal Sized Spheres

Figure 02: 3D Voronoi cells – Iterative Process – Equal Sized Spheres – Inner Look

Figure 03: 3D Voronoi cells – Iterative Process – Equal Sized Spheres – Connecting Ties


Voronoi Tessellations

It’s the process of subdividing a surface or space into a number of cells. Each cell is only a circle or sphere which shares a part of the dedicated space of other cells. In other words, The cells are intersected, but the Voronoi process is what redefine the new borders which give each cell its unique premises.

It’s a well-known mathematical concept appeared in design computation fields since 1986. However, it’s widely found in nature since like forever. If you have a look at Giraffe’s skin, the Dragonfly’s wings or even the Tortoise’s shell.

Figure 03: 3D Voronoi cells – Iterative Process – Equal Sized Spheres – Editing Edges


Posted in Uncategorized

Orbiting Planets

In this experiment, I started exploring space. I am trying to understand how computation can be useful on cracking the science of Space and Galaxies.

video Included

Video 01: Orbiting Planets



On this simulation, you can see a number of different sized Planets moving, each on its dedicated orbit, and with its unique speed. Orbits are centralised by the star. but the orbits planes orientations are totally differentiated.