Armadillo Vault

This example will show how to generate a simplified version of the ThrustDiagram of the Armadillo Vault. This example will show how to:

  • Create a (quad mesh) Pattern from features

  • Relax Pattern

  • Create and move new anchor vertices ("drop downs") in the ThrustDiagram

1. Pattern

1a. Create pattern

From Features uses trimmed or untrimmed surface as input. Open the file below, and select the trimmed surface as input in Create Pattern > From Features.

The first optional parameter will ask for any additional points on the surface to be defined as point features or singularities. This parameter will be skipped in this example. Press Enter to skip.

The second optional parameter is the desired target length for the Patten. This value is the approximate target length for all edges of the Pattern. For this example, the default target length of 1 is used. Press Enter to accept the default value of 1 and proceed.

The third and last optional feature will ask for the number of iterations for constrained Laplacian smoothing of the Pattern. The default number of iterations is 10. For this example, 30 iterations are used. Primary purpose of Laplacian smoothing in this step is to more evenly distribute the vertices along the boundaries.

1b. Modify pattern

Once the initial Pattern has been generated, further modifications such as relaxation can be applied. In this example, the Pattern will be relaxed with all of the boundary vertices fixed. Go to Modify Pattern > Vertices Attributes, then AllBoundaryVertices. In the pop-up window, set the attribute 'is_fixed' to True. The fixed vertices now should be displayed in blue.

With all the boundary vertices fixed, go to Modify Pattern then Relax. The Pattern should now be relaxed. Pattern relaxation is based on the force density method (FDM), with force density of 1 set to all of the edges. The primary purpose of Pattern relaxation is to reorient the edges of the Pattern based on force information, rather than geometric information (such as Laplacian or centroidal smoothing where the repositioning of the vertices are based on the coordinates of neighboring vertices). By relaxing the Pattern based on forces, the Pattern will already be in a good, equilibrated starting geometry which will be helpful during later stages of form finding.

After relaxation, unfix all the vertices of the pattern by following the instructions in the previous step Unfixing of the vertices can be done (or not even necessary, if they are intended to be used as anchors) during any point before the creation of the FormDiagram. However, for clarity of the procedures of the main workflow steps, all vertices are explicitly unfixed in this step.

Comparing pattern refinements

Left - Pattern from feature with target length 1, without smoothing or relaxation

Middle - Pattern from feature with target length 1, and 30 iterations of constrained Laplacian smoothing (notice the more evenly distributed vertices along the boundaries)

Right - Pattern From Feature with target length 1, 30 iterations of constrained Laplacian smoothing and relaxation with all boundary vertices fixed (notice the much smoother continuous edges).

2. Define boundary conditions

Identify Supports

In order to define the supports of the vault, go to Define Boundary Conditions > Identify Supports > Select. Choose ByContinuousEdges, then select one of the edges on each of the three curving-out boundaries of the Pattern as shown below. Once Enter is pressed, all the vertices along the continuous edges of the selected edges will be defined as supports, which are now shown in red.

Update Boundaries

Update Boundaries provides a controlled and automated relaxation of each of the unsupported boundaries independently from one another using the force density method. In this example, the relaxation was intentionally done during the Modify Pattern step with a specific attention to the boundaries and interior holes. So Update Boundaries is skipped in this example.

3 + 4. Create form and force diagrams

5. Horizontal equilibrium

Once the FormDiagram and ForceDiagram have been successfully created, Horizontal Equilibrium can be run.

Even after several hundred iterations, the angle deviations may still be high and decrease slowly, which are typically due to very short edges in the ForceDiagram. One way to help the algorithm, is to increase the minimum length constraint on all of the edges of the ForceDiagram. Go to Modify Force Diagram > EdgesAttributes > All, then set the attribute lmin to 0.3. Run Horizontal Equilibrium again, and there should be an immediate improvement.

If the angle deviations are still high, another way to help the two diagram reach horizontal equilibrium is to relax the FormDiagram. Unlike the Pattern relaxation (where every edge was assigned force density of 1), every edge of the FormDiagram now has different force densities, since the magnitude of the forces (or the edges of the ForceDiagram) are not the same. Relaxing the FormDiagram after few hundred iterations of Horizontal Equilibrium will use the current force densities. Go to Modify Form Diagram > Relax, then there should be a very slight change and smoothing of the FormDiagram.

After relaxing the FormDiagram, horizontal equilibrium should be found within a couple of hundred iterations.

6. Vertical equilibrium

Once horizontal equilibrium has been found, run Vertical Equilibrium with a target height of 7.5 to obtain the result below.

7. Modify Diagram

In order to convert some of the vertices on the interior holes to new anchors, go to Modify Thrust Diagram > Vertices Attributes, then select the vertices shown below and set the attribute is_anchor to True.

By using Move Supports in Modify Thrust Diagram, supports of the ThrustDiagram can be moved along the z axis. One by one, select the new anchors and move it to the level of the form diagram (z=0).

Once the new anchors have been moved down, run Vertical Equilibrium again with target height of 7.5, and you should see a new ThrustDiagram that resembles the Armadillo Vault.

Result

Last updated