Computational graphic statics

  • by

Graphic statics is a powerful method of determining the load path through a structure, manipulation of the ‘form diagram’ (showing the forces and structural geometry in space) and the force diagram (linking those forces together topographically) directly affecting one another. A geometry optimised for a particular criteria for forces (e.g. constant tension force in the bottom chord) can be easily found.

Graphic statics is typically restricted to work performed by hand, traditional structural analysis software almost invariably being based on matrices – which are hard to translate to a force diagram. This has meant for many structures the force diagram is effectively ignored.

Geogebra, by creating a parametic paper space, allows the development of graphic statics solutions that can be immediately varied and explored, increasing their usefulness beyond pen and paper, as well as being quicker and more accurately constructed. It is used by the Block Research Group to help teach graphic statics, and I have found their materials useful in creating a couple of examples of my own.

The first is made by directly following these instructions:

Although this example is taken from a much older version of Geogebra, both the example template and the example itself worked fine for me in Geogebra Classic version 6.0.574.

I ended up here:

I then progressed to a (very slightly) more complicated example, with three loads rather than two. Here, I needed to take two steps to find the overall resultant force, rather than one, which is why there is an intermediate resultant force (in dotted blue). Having completed the first example, Geogebra started showing its strength over pen and paper – at least for me. I was able to work more quickly, more cleanly, and with fewer distractions than I would have faces on paper.

A final advantage is the ability to create simple animations of the force and form diagrams, exploring the design space within the constraints of the initial set-up of the model. Geogebra seemed to struggle with exporting anything but the smallest .gif files. I ended up just moving a slider manually, using greenshot’s ‘capture previous region’ tool to get a series of images, and then stitching these together using photoscape to make a gif, below:

This can be expanded to arches and systems of arches as below, and shown in the examples of the Block Research Group.

Form diagram for a system of arches
Force diagram for this system of arches

Here, the limits of Geogebra start to become clearer (at least at my level of understanding). The program starts to slow significantly, and the lack of ability to easily add layers and manage the increasing complexity of the diagram leads to messiness. Geogebra does seem to be an extension of pen and paper rather than a tool rhat really allows new forms to be explored.

Building from here, more sophisticated versions are possible in geogebra in 3D – although I haven’t attemped this. The interface in Geogebra isn’t really sophisticated enough to allow easy input – I would switch to Rhino+Grasshopper+RhinoVault at this point.

From here, work in 3D is best attempted in Rhino+Rhinovault, an extension developed by the Block Research Group which is freely available (however, note it only runs in Rhino 5, and installing its dependencies was quite fiddley). However, its outputs need experience at the lower level offered by Geogebra and pen and paper work – else you are risk of garbage in garbage out (GIGO) and making something that looks good but makes no sense. It is also aimed at producing vault like geometries, rather than solving previously defined topologies (such as optimising as a truss described in Bill Baker of SOM’s Structural Optimisation Using Graphic Statics.

From just a couple of hours of work I found RhinoVault easy enough to use, but controlling it required a greater level of skill and understanding than I could manage in a couple of hours. However, I was able to create some quick models and (very attractive) diagrams.

Form generated using RhinoVault
Left: form diagram (just the structure viewed in plan) Right: force diagram. For the vault form above
Modified force diagram (trying to put a series of ridges in the diagram) – N.B. This can’t work!

By manipulating the force diagram, ridges can be introduced such as:

Left: form diagram. Right: force diagram with ridges introduced. Rerun rvHorizontal and rvVertical in RhinoVault to introduce these changes.
Vault formed with three ridges visible
Elevation of vault with three ridges

Similarly, the form diagram can be altered to change the boundary conditions. In this case, I have removed the support from three of the six outer edges:

Support removed from three of outer edges – some remeshing needed…
Perspective view of vault with open sides

In short, RhinoVault is clearly a very powerful tool in the right hands, and with the right post-processing and more detailed analysis, with the geometry in Rhino export to analysis packages is straightforward. However, until you have the right level of skill, making fine adjustments is difficult – and can lead to significant amounts of trial and error. It is quite hard to define what is ‘good design’ using this tool. It is very easy to skip past forms that do not solve fully. As far as I can tell, RhinoVault is no longer being maintained (very sadly, its principle author seems to have died a couple of years ago) and Rhino 5 will slowly but surely become harder to run over time.

The Block Research Group and its collaborators have done an amazing job creating and then distributing this tool! RhinoVault is pretty well documented, although the tutorials are now out of date – in particular some of the rvModification commands are quite hard to understand without an up to date tutorial, but basic usage is still the same. Their other work is also really well documented, with most papers and articles freely available on their website.

Leave a Reply