Introduction

The geometry of a reciprocal structure is extremely difficult to predict and control, and it cannot be conveniently described with standard tools offered by commercial CAD software. The geometry of a network of reciprocally connected elements emerges, bottom-up, from the complex interaction between all the elements shape, topology and position, and requires numerical solution of the geometric compatibility.

The Geometric Parameters of Reciprocal Structures

Let us consider a three-bar fan composed of elements b i , b j , and b k connected according to the following topology: b i b j , b j b k and b k b i (Fig. 1). The connection between the two elements b i and b j is examined in Fig. 2.

Fig. 1
figure 1

The four parameters involved in a three-bar fan

Fig. 2
figure 2

The geometric entities measured in a single b i b j connection

The elements are modelled as cylinders respectively of radius r i , r j , and r k . The joint b i b j can be described with the following parameters:

  • the eccentricity e ij (p1 in the table shown in Fig. 1), which measures the distance between the axes of elements b i and b j ;

  • the engagement ratios l ij and l ji (p2 and p3 in the table shown in Fig. 1), which measure the contact position of elements b i and b j along their spans and with respect to one reference end;

  • the top/bottom position t ij (p4 in the table shown in Fig. 1), which specifies whether element b i sits on the top or in the bottom of element b j with respect to a reference vector r ij .

These four parameters constitute the complete set of values necessary to determine the geometry of a single connection between two elements. The calculation of those values is performed starting from the geometric entities measured at each b i b j connection (Fig. 2).

The engagement ratio l ij (1) is obtained as the ratio between the length of the bar b i and the length of the vector that connects the reference end of the bar b i with the contact position with bar b j :

$$ l_{ij} = \frac{{\left| {\overline{{b_{i} }} } \right|}}{{\left| {\overline{{\varvec{l}_{ij} }} } \right|}}. $$
(1)

The engagement ratio l ji (2) is obtained as the ratio between the length of the bar b j and the length of the vector that connects the reference end of the bar b j with the contact position with bar b i :

$$ l_{ji} = \frac{{\left| {\overline{{b_{j} }} } \right|}}{{\left| {\overline{{\varvec{l}_{ji} }} } \right|}}. $$
(2)

The eccentricity e ij (3) is the length of the minimum distance vector e ij between the axes of elements b i and b j :

$$ e_{ij} = \left| {\varvec{e}_{ij} } \right|. $$
(3)

The top/bottom position t ij (4) is the sign of the dot product between the normalized minimum distance vector e ij and the reference unit vector t ij .

$$ t_{ij} = \text{sgn} \left( {\hat{e}_{ij} \cdot \hat{r}_{ij} } \right). $$
(4)

It is possible to observe the effect of different combinations of the geometric parameters in the morphology of the three-element fan (Fig. 3).

Fig. 3
figure 3

Example of variations of geometric parameters on a three-bar fan where \( \bar{b}_{i} = \bar{b}_{j} = \bar{b}_{k} = 0.3{\text{ m}} \)

Non-hierarchical Geometry and the Need of a Geometry Solver

Let us consider the three-bar fan of Fig. 4a and then make a change on the radius r k of bar b k , which in turn modifies the value of eccentricity e jk in the connection b j b k .

Fig. 4
figure 4

Example of the recursive dependency of the elements position due to non-hierarchical geometry

The change in the value of e jk produces the following effects:

  1. 1.

    The position of b j must be adjusted to restore the geometric compatibility between b j b k (Fig. 4b);

  2. 2.

    the position of b i must be adjusted to restore the geometric compatibility between b i b j (Fig. 4c);

  3. 3.

    the position of b k must be adjusted to restore the geometric compatibility between b k b i (Fig. 4d).

The last step leads us back to the first step, because the position of b j must be re-adjusted to restore the geometric compatibility in connection b j b k (Fig. 4b), and so on to successive steps recursively.

This example shows how the modification of a single parameter affects the position of each and every element in the configuration. In both large or small configurations, the configuration should be followed by the simultaneous adjustment of the position of all elements in order to maintain geometric compatibility. In reciprocal configurations, the value of the four geometric parameters in each connection b i b j contributes to the spatial definition of the overall geometry. Therefore, the geometry of reciprocal structures is a result of the simultaneous complex interaction between shape, topology and position of all elements.

Given the interdependency of the positions of the elements, the geometry of a reciprocal structure can be described as non-hierarchical, since each element contributes equally to the generation of the geometry. This type of geometry cannot be described conveniently with standard tools offered by commercial CAD software including hierarchical, associative parametric modellers whose acyclic directed graphs can describe geometries whose parameters are independent of one another. In contrast, the geometry of reciprocal structures can be determined by setting up a solver that is able to find the geometric compatibility of elements using an iterative method.

The Reciprocalizer

The reciprocalizer has been developed by Dario Parigi as a plugin for Grasshopper, a parametric environment for Rhinoceros. The plugin requires the following input data: the starting mesh and the design values of the geometric parameters for each connection. The reciprocalizer is an iterative solver that computes at each iteration the configuration parameters values and shifts the elements position towards the design parameters values. The calculation depth input allows definition of the number of iterations in the calculations and therefore allows a choice between faster and less precise solutions and slower and more precise solutions (Fig. 5).

Fig. 5
figure 5

The reciprocalizer and the required inputs

Results

The speed at which the reciprocalizer solves the reciprocal geometry has been gradually improved since the previous implementations in Matlab (Parigi and Kirkegaard 2013a, b; Parigi et al. 2012). The reciprocalizer now allows fast explorations of multiple design alternatives, making it a suitable design tool for both initial and final design stages. For small configurations, the reciprocal geometry is computed in real time. For larger configurations, the time rises to a few seconds. At the same time, the calculation depth and speed can be adjusted according to the design needs.

The example in Fig. 6 shows how different reciprocal structures can be obtained from the same starting configuration depending on the value set of the geometric parameters e ij , l ij , l ji and t ij .

Fig. 6
figure 6

a The starting mesh for configuration in b and c. b e ij  = 0.01 m; l ij  = 1; l ji  = x; t ij  = 0; Dome-like structure with variable engagement length. c e ij  = 0.01 m; l ij  = 1; l ji  = 0.33; t ij  = 0; Regular hexagonal mesh adapted to a surface. d e ij  = 0.01 m; l ij  = 1; l ji  = 0.33; t ij  = 0; Voronoi mesh adapted to a surface

Figure 6a shows the starting hexagonal mesh used for the generation of configurations in Fig. 6b, c. The starting mesh, together with the parameter values, is a required input for the reciprocalizer.

Fig. 6b shows a dome-like reciprocal configuration obtained starting from the hexagonal mesh in Fig. 6a and using a variable engagement length value. The top/bottom position t ij is set to 1, meaning that each element sits on the top of the supporting one.

Figure 6c shows the adaptation of the hexagonal mesh to an arbitrary free-form surface. The starting mesh is first mapped on the surface. Then the geometric parameters are set, except for the top/bottom position t ij , which is left unconstrained (t ij  = 0) and chosen by the reciprocalizer to best fit the target surface.

Figure 6d shows the adaptation of a Voronoi pattern to an arbitrary free-form surface. The top/bottom position t ij is left unconstrained (t ij  = 0) and chosen by the reciprocalizer to best fit the target surface.

The reciprocalizer output includes:

  • the data required to perform a FEM analysis by using FEM plugins available for Grasshopper, i.e., the new nodes’ coordinates and their connection topology;

  • the data required for the fabrication of reciprocal structures.

Several tests have been carried with the reciprocalizer to explore the geometric richness of reciprocal configurations. Because the geometry is the result of the elements’ interaction at the level of the joint and is largely influenced by the values of the geometric parameters, the resulting reciprocal geometry is often not straightforward to predict in advance and produces unexpected results. The tool, therefore, triggers the exploration of the geometry of reciprocal structures, and the emergence of original designs (Fig. 7).

Fig. 7
figure 7

Free explorations of the potential of the reciprocalizer in the creation of three-dimensional geometries

Several physical models were successfully built to validate the results from the reciprocalizer (Parigi and Kirkegaard 2013b, 2014).

Conclusions

The reciprocalizer is an agile design tool that can handle in real time the full set of geometric parameters of reciprocal structures. It allows:

  • exploring interactively the influence, often unpredictable, of the parameters’ values on the overall geometry, therefore triggering the exploration of the geometrical richness of reciprocal structures and the emergence of original designs;

  • producing a real-time feedback of the structural performance, therefore improving our understanding of the influence of the parameters’ values on the structural performance of reciprocal structures, and ultimately enabling structural improvement/optimization;

  • linking digital design with manufacturing by outputting the necessary data to produce and assemble the elements, enabling innovative CAD/CAM approaches in the digital crafting of reciprocal structures.