Here are some more videos of early tests of Kangaroo – the live physics engine for design modelling that I have recently started developing – and a bit more about its context and what it could be used for.
They made use of a principle discovered by Robert Hooke : When a flexible chain hangs freely its elements are in pure tension, and when this form is flipped vertically it produces a form of pure compression, which is ideal for constructing masonry arches, an idea which can be extended to chain nets and stone vaults :
Another area in which physics based form-finding has been important in architecture is in the design of lightweight and tensile structures such as cable-nets and fabric canopies. Soap films have sometimes been used to model these surfaces because they approximate minimal surfaces, but measurement and control of such models is very difficult.
The large deformations involved pose a challenge when analysing these structures computationally, as many of the conventional techniques are effective only in the case of small deflections. Special techniques must be used to deal with the non-linearity of the problem.
Kangaroo allows the relaxation of nets of arbitrary topology:
Catenary/Funicular structures and Surface Relaxation are now relatively established methods of form-finding in design, but I think there is potentially a huge variety of other ways in which physical laws could be used (and misused) to create forms which are somehow optimal, interesting, useful, perhaps even beautiful.
Like the reversal of gravity to find ideal forms for masonry arches, I think an environment which allows the designer to play, to flip and twist the Laws of Nature, to cross the wires and combine forces in a way that might be impossible in the real world – all within an easy but powerful visual programming environment and with rapid feedback – could make a fertile ground for the growth of powerful and exciting new techniques.
Kangaroo is designed to be extensible to include several other types of forces, such as electrostatics – as I worked with before in Jellyfish. These different forces could then be applied simultaneously in various combinations. Other things I might also add at some point include collisions and friction.
This becomes something like a sandbox game - Virtual worlds which behave according to the laws of physics we intuitively recognise. (Here are some nice 2D examples : Crayon Physics, Sodaplay, Phun, Cinderella )
I believe that fun need not mean frivolous. Toys can be tools – both playful and powerful.
I suspect a part of the wide success of Grasshopper is due to its toy-like nature. The playfulness of the interface makes it enjoyable to use, which aids learning and encourages experimentation and the development of new ideas. Though it may mislead some into underestimating it, this playfulness actually reinforces its usefulness. A lot of the same qualities that make good toys also make good design tools – such as great flexibility and intuitive interaction.
Hopefully Kangaroo can be something fun that enables serious play to feed into creative and responsible design.
Colour coded tension/compression, and arrows showing reaction forces at constrained nodes :
Structural analysis has traditionally always been carried out by engineers in a separate program from that used by architects to design.
When the architects get the results of the analysis back from the engineers it can inform the next round of design, but with all the steps of converting file formats, assigning material properties etc. this process can take considerable time.
If instead the designers can see the structural implications of the changes they make on screen in 3D as they make them, it opens up a whole new way of working. While not a replacement for a full structural analysis, this type of feedback could over time build up the designer’s intuition for effective forms, and also allow the use of output data such as stress distribution to closely and directly control details of the building in ways far beyond simple member sizing.
Elements with different properties, such as struts, cables and membranes can be combined and interact dynamically with one other:
Unlike previous work done by others with interactive spring systems using Java/Processing, Kangaroo works within Rhino – a leading architectural design package, and links directly with its familiar 3D manipulation and modelling tools, with no need for any conversion step.
Working within Grasshopper also makes controlling and customising Kangaroo much more fluid – Users can quickly and easily create their own simple or complex parametric links between a wide range of geometric or other data and the inputs of the simulation, and also use the outputs to build further parametric geometry, and have it all update together as changes are made.
Some very impressive physics solvers for 3D modelling and animation packages already exist, such as Reactor for Max, and Nucleus for Maya, and the intention with Kangaroo would certainly not be to try and compete directly with these, but rather to make something more specifically geared towards the design of buildable structures.
This is not a port or a copy of any existing physics engine – I am writing this from scratch.
Kangaroo is not released yet. I will announce it here first as soon as it is.
In the meantime I would value your input –
- What role might you imagine Kangaroo playing in your own workflow ?
- What features would you particularly like to see included ?
Please do comment with your answers and any other ideas.
Special thanks to Giulio Piacentino, Moritz Fleischmann and David Rutten for their help and inspiration in the early development of this.
Some other people whose work has inspired and informed this project are :
Simon Greenwold, Jeffrey Traer, Jos Stam, Robert Aish, Ron Fedkiw, John Ochsendorf, Philippe Block, Axel Kilian, Paul Bourke, Chris Williams, Daniel Shiffman, Damien Alomar, John Harding.
Finally, here is the first video of Kangaroo I posted, in case you missed it: