## Abstract:

This paper describes the adaptation of the formex configuration processing to the computer program Grasshopper 3D and focuses on the applied mathematical solutions. Formex algebra is a mathematical system, primarily used for planning structural systems like truss-grid domes and vaults, together with the programming language Formian. The goal of the research is to allow architects to plan truss-grid structures easily with parametric design tools based on the versatile formex algebra mathematical system. To produce regular structures, coordinate system transformations are used. Owing to the abilities of the parametric design software, it is possible to apply further modifications on the structures and gain special forms. The paper covers the basic dome types, and it introduces additional dome-based structures using special coordinate-system solutions based on a spherical coordinate system, vault structures and their modifications based on a cylindrical coordinate system and circular structures and their modifications based on polar coordinates. Moreover two rotational grid tools are introduced, which uses coordinate system transformations on a unique way to create surfaces of revolutions based on the given generating curve and create grid structures on these surfaces. It also describes the solution technique to implement the triangular grid version of every one of these tools based on diamatic domes. The adaptation of formex algebra and the parametric workflow of Grasshopper together give the possibility of quick and easy design and optimization of special truss-grid domes.

## 1 Introduction

This paper describes the adaptation of the formex configuration processing to the computer program Grasshopper 3D [1]. It covers the shapes of dome and vault structures of Formex Configuration Processing I [2], and Formex Configuration Processing II [3]. For example it includes the ‘simple’ dome structures like Ribbed domes, Schwedler domes and Lamella domes, which are based on spherical coordinates. The vault and planar structures based on cylindrical coordinates, and the triangular version of these structures based on the Diamatic domes are also introduced. These structures are visible in *Fig. 1**.*

The paper also introduces the generation of two additional shapes based on a newly derived formulation. These shapes are not part of the formex configuration processing but they use the possibilities of parametric modeling and fit into this system.

Using computer-based technologies to plan truss grid structures provides the possibility for architects and engineers to use more advanced or user-friendlier methods in the design process [4], [5]. The aim of this adaptation is to develop a tool for architects to design grid structures easily. In this paper the generation methods of formex algebra are reinterpreted and different calculation methods are used.

Formex algebra is a mathematical system created by Hoshyar Nooshin and Peter Disney in 1975 [1]. It is developed since then by Professor Nooshin and his colleagues [6]. It is primarily used for planning various truss-grid structures, mainly domes and vaults, but other geometrical forms are also covered by it [7]. Formex algebra can be used with the computer program Formian (Formian 2 and Formian K. [8]), and the programming language Formian.

Formex algebra uses coordinate system transformations to modify grid structures. This solution makes very easy to construct a vault or a dome from a planar or multilayered grid, which is designed in the Cartesian coordinate-system. At the same time it is necessary to learn the programming language Formian to be able to use formex algebra, which makes its application difficult.

Grasshopper is a graphical algorithm editor which works together with the 3D modeling program Rhino 3D [9]. It uses the syntax of Rhino. With Grasshopper it is possible to give algorithm controlled commands to Rhino. Because of its graphical interface no programing language is necessary, although users have to understand and use the workflow of programming. Grasshopper contains a lot of components with which users can create special forms and fluid geometries as seen in [10]-[15]. Grasshopper can also communicate with a lot of other design software, and a lot of other plug-ins was already created [16]. Because of this Grasshopper is an ideal environment for the coordinate system transformations known from Formex algebra. Designers, who usually do not have programming skills, can use this environment easier, and with the various geometrical components of Grasshopper the efficiency of this tool becomes apparent.

This paper focuses on the mathematical solutions and does not cover the introduction of the plug-in, and how it operates. It will be the topic of a separate paper.

## 2 Dome structures

### 2.1 Mathematical calculations

The calculation of dome structures is based on spherical coordinates. In formex algebra the user has to define three variables, *b1* (factor for scaling in the first direction (linear scale factor)), *b2* (factor for scaling in the second direction (angular scale factor)), and *b3* (factor for scaling in the third direction (angular scale factor)) [2]. To change any other attribute of the dome structure the user has to change the properties of the initial grid. The thickness of the double layer grids is the same as the thickness of the initial grid and the gap in the middle is defined by the position of the initial grid. This solution requires only a few variables, but the user has to calculate the necessary measurements.

By the reformulation of the dome tool a versatile and user-friendly solution could be created. The original calculation method is modified and extended by using an ellipsoidal coordinate system. In this way wider range of dome shapes can be created, for example ellipsoidal domes with different height and radius, compared to a simple spherical solution, it can be seen in *Fig. 2**.*

*Fig. 2*.

*U*

_{1}

*, U*

_{2}

*, U*

_{3}are the coordinates of the spherical coordinate system;

*x, y, z*are the Cartesian coordinates of the initial grid;

*R*is the radius of the spherical dome, and

*α, β*are the factors of angular scaling in the second and third directions.

*U*

_{1}) of the points vary according to the spherical coordinates of a point, as it can be seen in

*Fig. 2*., the calculation of

*U*

_{2}and

*U*

_{3}are the same,

*r*is the radius of the base of the ellipsoidal dome; and

*h*is the height of the ellipsoidal dome.

In the new formulation of the dome tool no scaling factor is used. The first coordinate (*U*_{1}) is calculated from the radius and height variables. Because of this the thickness of the double layer grid is also a required variable, which also changes the calculation of *U*_{1}.

*Fig. 3*,

*U*

_{1i}is the first coordinate of the inner shell; and

*t*is the thickness of the structure.

*U*

_{1P}

*, U*

_{2P}

*, U*

_{3P}are the ellipsoidal coordinates of a point in the grid;

*t*

_{p}is the distance of a point from the inner shell;

*z*

_{p}is the z coordinate of a point in the initial grid; and z

_{max}, z

_{min}are the largest and smallest z coordinates in the initial grid.

*U*

_{3}varies as it is plotted in

*Fig. 4*

*,*

*λ*is the angle of the gap; and

*y*

_{P}is the y coordinate of a point in the initial grid.

### 2.2 Modified dome structures

With the modification of the reformulated dome tool some additional shapes can be created with which users can construct various ellipsoidal coordinate system based shapes. This modification adds a lot of new opportunity for shape definition to this tool.

In these modified structures one or two of the angular coordinates of the dome structure are modified and replaced with linear coordinates. The outer vertices of the transformed grid remain in place, but one, two or three edges of the structure are transformed from circular to linear. During this transformation the ratio of the points along the edges remain the same, so the division of the grid will remain equal, if it was equal in the initial grid. In *Fig. 4* the three modification types can be seen. The modified structure is called cupola if the second coordinates are transformed from angular to linear (*Fig. 4a*), cone, if the third coordinates are transformed (*Fig. 4b*), and pyramid if both the second and the third coordinates are transformed from angular to linear (*Fig. 4c*).

^{nd}and 3

^{rd}coordinates is the given value in the radial direction. It means that the different modified structures can be connected easily if their input parameters are organized, but it also has a side effect, that the thickness of the structure is not constant in the modified structures, as seen in

*Fig. 5*,

*t*

_{t}is the top thickness of the structure; and

*t*

_{b}is the bottom thickness of the structure.

The modification method works correctly if both of the second and third coordinates of the vertices are less than 180°.

### 2.3 Type 1 - cupola

For the cupola type domes (*Fig. 5a* and *Fig. 6a*) the second coordinates (*U*_{2}) of the domes are changed from angular to linear coordinates. In this case the first - which were linear originally - and second coordinates (*U*_{1}, *U*_{2}) of this structure are linear, the third (*U*_{3}) is angular as it is shown in *Fig. 6*.

## 3 Vault structures

### 3.1 Mathematical calculations

The calculation of vault and polar grid structures is based on cylindrical coordinates. In formex algebra the vault and the polar grid tools are different functions, the first of them uses polar coordinates, and the second uses cylindrical coordinates. In this adaptation they also appear as different components, although their mathematical basis is exactly the same, only the transformation of the directions are different. In formex algebra the user have to define two variables while creating polar grids, and three variables while creating vaults. In the first case the first variable is the linear scaling factor in the first (radial) direction of the polar coordinate system, the second variable is the angular scaling in the second (circumferential) direction. By the vault tool the variables are b1 (factor for scaling in the first direction (linear scale factor)), b2 (factor for scaling in the second direction (angular scale factor), and b3 (factor for scaling in the third direction (linear scale factor)) [1]. Every other attribute of the vaults and polar grids are given by the attributes of the initial grid, for example the thickness of the double layer grids. The advantage of this solution is that it uses just a few variables, but it requires a lot calculation from the user.

To make a versatile and user-friendly tool in the calculation method some modifications can be applied and the input parameters are selected differently.

*Fig. 7*). The radius of the vault, and the angular and linear scaling factors, are calculated differently by the vault structures (7), and by the polar grids (8), but both of them is based on a cylindrical coordinate system. The polar grid structure is created with cylindrical coordinates too, because in that way the user has easier control over the thickness of the structure,

*U*

_{1}

*, U*

_{2}

*, U*

_{3}are the coordinates of the cylindrical coordinate system;

*x, y, z*are the Cartesian coordinates of the initial grid;

*R*is the radius of the structure;

*a*and

*c*are linear scaling factors in the first and third direction; and

*β*is the factor of angular scaling in the second direction.

Instead of using a scaling factor to define coordinates (*U*_{1}, *U*_{2}, *U*_{3}), the actual radius, height, and full angular size of the structure are the variables, so the user does not have to calculate the scaling factors. Because of this calculation method the thickness of the double layer grid is also a required variable.

*U*

_{1}variable is:

*U*

_{1P}is the first cylindrical coordinate of a point in the grid;

*g*is the size of the gap; and

*y*

_{P}is the y coordinate of a point in the initial grid.

### 3.2 Modified vault structures

In order to create a diverse design tool some modifications of the cylindrical coordinate system can also be considered. By using these modifications, it is possible to create some additional and new structures.

This modification is based on the transformation of the angular coordinate (*U*_{2}) to linear coordinate. The corners of the initial cylindrical structure stay unchanged during the modification, and the second direction is modified from angular to linear direction by connecting the matching corners with a straight line instead of a circular curve.

The value of the linear second (*U*_{2}) coordinate of the modified structure is based on the ratio of the initial angular coordinates of the direction. The linear coordinate divides the linear edge of the initial grid in the same ratio as the initial angular coordinate of the vertex divided the interval of the angular coordinates of the initial grid, as it can be seen in *Fig. 8**.*

This modification method has a consequence that that the resulting structures can be combined and joined in an easier way. If the value of the radius, thickness and gap size are synchronized, the structures can be joined precisely.

At the same time this modification has a result that the thickness of the modified structures differs from the variable ‘thickness’.

## 4 Combined structures

With these tools it is very easy to create combined structures. Some examples are shown in *Fig. 9**.*

## 5 Rotational grids

### 5.1 Mathematical calculations

Based on the vault tool two types of rotational grid tools are also created. These components transform a grid given in Cartesian coordinate system to cover a surface of revolution. The generating curve [17] of the surface has to be a planar curve. The user can draw it in the *x-y* plane, and the axis *y* represents the axis of the surface of revolution.

*y*coordinate of the point in the initial grid compared to the minimum and maximum

*y*value shows the position of the point on the generating curve:

*y*is the original y coordinate of the point; and

*y*

_{min}and

*y*

_{max}are the smallest and biggest y coordinates in the initial grid.

This ratio is a number between 0 and 1, and if it is 0, the point is on the start of the curve, if it is 1, then it is at the end of the curve. The ratio changes between the two extreme values and it divides the curve in that ratio, based on the length of the curve. The distance of this point from the axis y is measured (*x*_{cp}).

*y*as it is plotted in

*Fig. 10*

*,*

*x*

_{c1}and

*x*

_{c2}are the smallest and the biggest x coordinates of the generating curve;

*r*is the biggest radius of the final structure given by a variable; and g is the gap of the final structure.

*U*

_{1}coordinates of the points are calculated as:

*U*

_{1P}is the first cylindrical coordinate of a point; and

*x*

_{cp}is the x coordinate of the point projected to the generating curve.

The *U*_{2} coordinates are calculated in the same way as introduced by the vault tool introduced in (6). The two components differ in the calculation of the third coordinate (*U*_{3}) and the thickness of the structure.

Both of these tools also contain a modified version, where the top view of the structure is polygonal.

### 5.2 First tool

In the first rotational grid tool the thickness is horizontal and the horizontal distance between the sections is equal, if the distance of these sections was equal in the initial grid.

*U*

_{3}) of a point in the z direction is the same as it was to the y direction of the initial grid. It is calculated as:

Following this logic the thickness of the structure is the thickness in the first direction (*U*_{1}). This tool works like a cylinder where the radius varies based on the generating curve.

This tool can be useful for many architectural purposes, because in this way the grid can follow the division of the storey’s as it is shown in *Fig. 11**.*

### 5.3 Second tool

The second rotational grid tool differs more from the vault tool as the previous one. The final grid reflects much more the generating curve like it did in the previous tool.

*U*

_{3}value is calculated based on the y coordinate of the point projected to the generating curve as:

*y*

_{cp}is the y coordinate of the point projected to the generating curve; and y

_{c}is the highest value of y coordinate of the generating curve.

This calculation method has a consequence that the length of the edges, which have the same length in the initial grid, will be close to each other. It is not exactly the same, because the *x*/*y* ratio of the generating curve and the height/radius ratio of the final grid can be different. At the same time if these ratios are the same, the length of these segments will be the same. It is easy to reach this state if the user draws the generating curve in the same size (or same ratio) as the required size of the final grid.

The direction of the thickness in this tool is always perpendicular to the generating curve in the given point. It means that it is not calculated based on cylindrical coordinates. It is created with the moving of the point into this perpendicular direction. This solution is most useful if the equal vertical distance is not required but the uniform thickness is.

### 5.4 Rotational grid 1 vs. grid 2

The difference between the two rotational grid tool is clearly visible, if the end of the generating curve ‘bends back’. The first tool does not follow this bend, because the vertical position of the points always rises as the ratio of the position of a point projected to the generating curve changes. The second tool on the other hand can follow this bend as it is shown in *Fig. 12**.*

## 6 Triangular grids

Based on the concept of Diamatic domes a triangular version of every component can also be created. Instead of changing of the calculation of the coordinate system transformations themselves an additional coordinate system transformation was added which transforms the skew coordinates of a triangular grid to Cartesian coordinates. After this transformation the same calculation method can be used to create dome, vault, polar grid or rotational grid structures.

To create a Cartesian grid from a skew grid the triangular grid had to be a part of an isosceles triangle. The base of the triangle is chosen to be parallel with axis *x*, as it can be seen in *Fig. 13*.

*U*

_{1},

*U*

_{2},

*U*

_{3}are the skew coordinates of the grid;

*x*,

*y*,

*z*are the coordinates of the original grid in Cartesian coordinate system; and δ is the angle of the apex of the isosceles triangle.

*x*

_{c}

*, y*

_{c}

*, z*

_{c}are the Cartesian coordinates of the transformed grid;

*U*

_{1max}is the largest

*U*

_{1}coordinate in the grid; and

*U*

_{1r}is the largest

*U*

_{1}coordinate of the points with the same

*U*

_{2}coordinate.

After this transformation these grids can be transformed with any of the developed grid tools like the rectangular grids. In *Fig. 14* all of the triangular grid versions of the dome, vault and polar grid tools are visible. This version of the rotational grid tools was also created as it can be seen in *Fig. 12*. The plug-in can be found at [18]*.*

## 7 Conclusions

The mathematical reformulation, adaptation and development of the introduced coordinate system transformation tools based on formex algebra resulted in an easy-touse grid design tool in Grasshopper for architects, which are called Kitsune. Because of the visual algorithm editor of Grasshopper, architects do not have to learn a programming language to be able to create special forms and fluid geometries.

It is possible to create a wide range of grid structures easily with these tools. Designers do not have to create the structures on a spherical or cylindrical surface, they can easily draw it with Cartesian coordinates and transform to the wanted form with Kitsune. It is especially useful if the initial grid is not a regular grid, maybe contains a special pattern. In Grasshopper there is a possibility to transform the created grids on various ways after using Kitsune too, which results in a very powerful design tool.

## Acknowledgements

This research is supported by the ÚNKP-18-3-III New National Excellence Program of the Ministry of Human Capacities.

## References

- [2]↑
Nooshin H., Disney P. L. Formex configuration processing I,

*International Journal of Space Structures*, Vol. 15, No 1, 2000, pp. 1‒52. - [3]↑
Nooshin H., Disney P. L. Formex configuration processing II,

*International Journal of Space Structures*, Vol. 16, No 1, 2001, pp. 1‒56. - [4]↑
Suresh S., Poornaselvan J., Divyapreya C. Optimal path planning of approach to grid environment,

*Pollack Periodica*, Vol. 6, No. 1, 2011, pp. 131‒140. - [5]↑
Cârstea A., Macariu G. Towards a grid enabled symbolic computation architecture,

*Pollack Periodica*, Vol. 3, No. 2, 2008, pp. 15‒26. - [7]↑
Nooshin H., Samavati O. A. Some morphological aspects of configuration,

*Proceedings of the IASS Symposium*, Tokyo, Japan, 26-30 September 2016, pages 1‒10. - [10]↑
Gerber D., Solmaz A. S. PARA-typing the making of difference - Associative parametric design methodologies for teaching the prototyping of material affect, in

*Beyond Codes and Pixels*, T. Fischer, K. De Biswas, J.J. Ham, R. Naka, W.X. Huang (Eds),*Proceedings of the 17th International Conference on Computer-Aided Architectural Design Research in Asia*, Chennai, India, 2012, pp. 233–242. - [11]
Raković M., Jovanović M., Borovac B., Tepavčević B. Nikolić M., Papović M. Design and fabrication with industrial robot as brick-laying tool and with custom script utilization,

*23rd International Conference on Robotics in Alpe-Adria-Danube Region*, Smolenice, Slovakia, 3-5 September 2014, pages 1‒5. - [12]
Erdine E., Kallegias A. Interwoven reinforced concrete structures: Integration of design and fabrication drivers through parametric design processes,

*Design Studies*, Vol. 52, 2017, pp. 198–220. - [13]
Tošić Z., Krasić S., Kostić D. Design and optimization of grid shell structures using Christoffel duality,

*Proceedings of the IASS Annual Symposium 2019 - Structural Membranes 2019**,**Form and Force*, Barcelona, Spain, 7-10 October 2019, pp. 193–200. - [14]
Wang X. Kam K. M. M., Földesi D., Lee H, Seo J., Vasileiou A., Luo Y., So C., Zhang X., Karsan Z., Kao G., Zhang L., Chai H., Yuan P. F., Block P. High-performance corrugated concrete shell construction on bending-actuated robotically 3D-printed formworks,

*Proceedings of the IASS Annual Symposium 2019 - Structural Membranes 2019, Form and Force*, Barcelona, Spain, 7-10 October 2019, pp. 1231–1238. - [15]↑
Yazici S. Performance based pavilion design – A dialogue between environmental and structural performance, Education and research in Computer Aided Architectural Design in Europe,

*eCAADe 31- Computation and Performance*, Vol.2 - Performative Design, Delft, Netherlands, 18-20 September, 2013, pp. 127–135. - [16]↑
Preisinger, C., Linking Structure and Parametric Geometry,

*Archit Design*, 2013, 83, pp. 110–113. - [17]↑
Pottman H., Asperl A., Hofer M., Kilian A.

*Architectural geometry*, Bentley Institute Press, 2007. - [18]↑
*Kitsune by ParametricFox|Food4Rhino*, https://www.food4rhino.com/app/kitsuneparametricfox, (last visited 8 October 2019).