This thread is an account of the makeLab’s research on the topic of stereotomy. The project began in August 2016, and since then we have constructed 4 manual trait drawings, 2 fabricated vault forms and maybe 70 Grasshopper script iterations that use a combination of Kangaroo Physics, Kangaroo 2, Paneling Tools and Weaverbird.  During a portion of the project, (January – July 2017) Jim was on sabbatical at Polis University in Tirana, Albania on a Fulbright Scholarship where he worked on a branch of this project with students there.  Though distance was a factor, articulating the goals of this research became crucial to progress primarily because scope altered as understanding grew. For this reason, the below posts range in scale from meeting notes to weekly updates to summaries of months of work at a time.


Explanation of work from 08.2016_09.2016

This is the first blog post in a series of many updates of our research on the topic of stereotomy. The first few posts will just be recapping what we have accomplished so far.

“Stereotomy, which means the cutting of solids, was a seventeenth-century French rubric under which were gathered several existing techniques including stonecutting…” (Evans p179). The basis of stonecutting was the trait. Traits were orthographic layout drawings produced to ensure the precise cutting of the stone blocks that comprised a gothic vault. Traits are created through two inputs – a site and a plan- to produce one output: coordinates of each corner of each block in the vault.

To discuss stereotomy, its important to note that the subject is inherently a revolving process. Its not a linear system (which has made it difficult to put into a GH script) but instead looping. As inputs create outputs and then those outputs inform new inputs, the process is a revolving feedback loop of information.  In order for inputs to be manipulated, not only the steps have to be understood, but more so the motion between them. The definition is something that can be easily found, but understanding the system includes realizing the instincts that informed every decision when it was first being developed.

The first step in this particular system is the reoccurring iteration of perception. Before progress is made, a student’s interpretation of the process needs to be repeated. There is no opposition to the notion that in order to study a process, the concept and priority behind it must be understood. Instead, the discrepancy lies with the length of the required depth to understand. The first step takes time, because there is no way to understand a lack of understanding, until the process is complete.

This research is centered around the application of these trait drawings to modern algorithmic programming. Our first step was to learn the process through a trait for a trompe that was pretty well explained in Robin Evan’s chapter of the “Projective Cast” called “Drawn Stone”. The trompe was an important piece in the overall project because it shaped the way we thought about overall form and the way smaller elements aggregated to form a larger whole.  The conceit of the trompe was to infill a space sectionally in such a way that allowed circulation below it and served dwelling within it.  As Evans states, “justification for the employment of difficult traits was that they allowed architects to adapt to circumstances, making it possible to join new building to existing construction…” (Drawn Stone, 183).  The trompe was studied through our modern system of analog methods: by putting multi-axis 2D drawings in parametric workspace (Rhino 3D). This allowed us to visualize the moves that the trait was designed to two-dimensionally represent: rotation, folding and projection.

Figure 1 (above) is an original trait drawing from the 16th century: 15-20 drawings are superimposed on top of each other in 2D. The second image is how we solved this trait, with help from Evan’s explanation.


Figure 2  (above) shows how we solved this trait to find a specific face of the trompe, which is pictured below (Figure 3) with the found face outlined.  Figure 1 and 2 are showing the same result with different processes. Figure 2 utilizes a parametric work space so that the steps in the process are more easily seen and understood . The hybrid process that Figure 2 shows was our first step in developing our own manual method to later put in a Grasshopper script. It was completed in September 2016.

Figure 3. The trompe: the subject of both traits.


Explanation of work from 09.2016_12.2016

Our second study of trait-making focused on a portion of the gothic rib vault in the Chartres Cathedral in France. This work was done with help from the students of the Fall 2017 Intro to Digital Fabrication class at LTU. The plan for the project, beginning in September 2016, was to (a) develop a trait for the vault, (b) develop a Grasshopper script of that trait method and (c) let the script generate blocks to be milled on a CNC. The vault was completed in December 2016 and stood about 7’ tall. The vault was collapsed in February 2017 and took about 45 minutes to clean up. Multiple findings arose from this project that all exposed our lack of understanding of the true use of a trait. It became clear at the completion of this research phase that it takes a full iteration – from manual trait to script to physical blocks to assembly – to tweak a student’s understanding of the stereotomy definition. We reached our main goal for the project about a month after we started it, which was to feed the manual trait method into an automated script, which then produced blocks for us in digital space. In real space, producing the blocks with a CNC uncovered the true difficulty of that process: how do we make blocks efficiently through digital fabrication?

Below is the manual trait we developed for the panel of the Chartres Cathedral and fed into a Grasshopper script.

Below is the partially-assembled panel made from the Grasshopper script and RhinoCAM.



Update 01.10.2017

When we finished the Chartres Cathedral vault panel, the project became confused. The Chartres Cathedral is a known vault form made with bricks in a known configuration. The gothic rib vault did not need a trait and it did not require us to design a brick pattern or a form. The bricks were simply stacked- they did not have a configuration that required coordinate finding. We grouped the bricks and created blocks, but that was not true to the form. At the time, we did not understand the difference between finding a form and finding a block, and for the Chartres vault panel, we found neither.


Explanation of work from 01.2017_05.2017

After the Chartres vault phase, Jim and I started working on separate portions of creating a vault. Jim was experimenting with forms in Kangaroo 2 and I was developing a manual trait process for a vault defined by site constraints of a specific spot in the makeLab. My process focused on finding the blocks manually with 2D drawings in Rhino, and Jim’s process focused on creating an overall form through Kangaroo and Grasshopper. Now looking back on those separate processes that started in February 2017, Jim and I have since realized that we conducted that phase of the research backwards – with me doing block finding manually and Jim doing form finding through automation.

View from left of the finished trait in a parametric workspace

However, this trait led us to conversations about the cross section of a vault. For the manual trait, I set up a framework of compressive parabolic boundaries in Rhino: 3 parabolic curves stretched to the ends of the site constraints, and then tilted up to form a 3D outline of a vault. A plan was created based on precedent.

Boundaries in plan before parabolic curves are tilted 90 degrees

From there, a trait was developed that was heavily reliant on visualization. Because we created the trait in a parametric workspace instead of a 2D one (on paper) but we were still only using lines (rotated, projected and folded), we were able to see the process unfold – a system of instant assurance that we had made the right move mid-step. It was an advantage that the 12th century masons and architects didn’t have and one that was unique to our process – the advantage of visualization. Utilizing parametrics to manually solve a method that is only comprised of 2D drawings was a hybrid system of traditional knowledge and modern tools.

3D view of the trait with 3 of its 6 orthographic projections. At this stage, we had found 5 of the 15 blocks.

In the terms of it structurally staying together, we speculated that as long as the panel of blocks stayed within the “thrust line” of its boundaries, the vault would stay together. And because a vault does not technically have just one thrust line – in reference to Philippe Block’s dissertation: “Thrust Network Analysis: a method for understanding three-dimensional funicular systems”- we had wanted to test its structure through making instead of through digital analysis since the structure was so small and virtually risk free.

Finished vault in the site it was designed for.


Update 06.23.2017

Phase 4/ script for parabolic boundary curves with a circular cross section

This phase is currently underway, and it has Jim and myself sending scripts back and forth and trying to decide on the system that the script will follow. A script has been built for a half-vault with parabolic outline curves with a circular cross section (below)

For the purpose of illustrating concept of script

The initial idea was to make the circular cross section, semicircular and tangent to the parabolic curves, but then the question arose of whether it would be more accurate to study this idea of  “could any form that is a result of compressive boundaries – whether or not they are the same mode of compression – still hold up?” with a circular cross section instead.

We are wanting these forms to be framed by curves that we assign, and then filled by interpolation from Grasshopper/Kangaroo. From the beginning, we have wanted to define these sections through the vault with actual section cuts (being as that was how traits were able to be understood). The hard part is staying true to that while working with such intuitive programs. It is so easy to let Kangaroo do the form-finding for you, however, we now think it makes seemingly obvious sense (now that we have reached this point) for us to form find and Kangaroo to block find.


Update 07.12.207

P4/ script with concentration on openings in the vault

We are not sure if our result is going to be an architectural piece, an exploration of dry stone and tolerances, or something else entirely. In accordance with that, we are going to make our next script with the ability to create openings, whether they will be under the syntax of “windows” or “reliefs in the composition of forces”.

Working under the trait method gave us our values/parameters/constraints that we do not want to disobey or venture outside as we manipulate our method enough to feed it into a Grasshopper script. The “multi-axis 2D drawings in a parametric work space” manual method cannot be translated linearly into an algorithm – it is too reliant on visualization. However, the priorities the method helped us reach could become the core focuses of the algorithm, and those were about explorations through cross section in working with openings in the vault.


Update 08.03.2017

P4/ block finding vs. form finding

Throughout the iterations of traits, we have learned that we need to make the distinction between working on block finding and working on form finding. There are curves/contours that are easier for the hand to draw then for us to use a computer to draw, such as organic or natural lines (ie. illustrators using tablets and a stylus for drawing cartoons instead of a mouse).

Stereotomy is definitively “block finding”, but we are thinking that with today’s tools, it is best to take a step back from us doing that. Our logic is this: block finding is either right or it’s wrong – so, a computer should do that. Form finding is subjective, and in this case, responds to site constraints – so, a human should do that. Not only should a human form find, but we are wondering how it would work to do it around a site that is not man-made. If we are making the case for drawings, and delineating form-finding a task better suited for a human than a computer, would it make sense to form-find around natural constraints, like a shelter for an animal that also receives sunlight?

So, we chose a bunny

and then used Grasshopper to assign a parabola to every cross section curve

and then used the inherent shape of the bunny to allow light in behind the “ears” and achieve this form.

Next step is giving it blocks.


Update 08.29.2017

P4/ line, surface, block

The previous script was comprised of too many cross section curves: one every 2.3″. Since a goal for that script was for the blocks to be about 2.5″h x 2.5″w, that resulted in the U component for the MeshUV command to be equal to 1. In doing that, we had too much of a hand in block-finding (the UV mesh grid), and when assigned blocks to be fabricated, the blocks did not output correctly. Now that this is understood, we are revisiting a script that initially introduced the idea of lofting cross section curves that are not the same, but are all compressive. This script was created after the manual trait + vault from Phase 3 was completed, and we realized that the manual process focused on the cross section of the vault. An advantage of this script is that where we last left it, the lofts were far enough part for the mesh to be properly relaxed by Kangaroo and fully adhere to the section curves.

Goal for script: through editing section curves, each block is updated. If a line is edited, and that affects the surface between lines, which causes every block on the surface to update, then the user is working with a CAD-like interface to produce results that push the limits of Grasshopper/Kangaroo.

The edits to the vault will hopefully become very easy to understand, document and manipulate.

Leave a Reply

Your email address will not be published. Required fields are marked *