New technologies get really interesting once we move beyond just recreating and incrementally improving what was possible with previous methods, and start exploring the qualitatively new things they enable .

The initial impetus for Kangaro­o was to embed in the digital modelling environment the kind of form-finding methods previously explored through real physical models – hanging chains, stretched fabrics and so on.
While this simulation of real physical material properties is still something I will be developing (and there is still much more work to be done here), the direction I find most exciting at the moment, and what I want to talk about today, is digital material behaviour which does 
not directly simulate anything from the real world, yet is nonetheless highly relevant to the design of buildable structures.

When we form-find and design through physical model making, we interact with the behaviour of the material. Depending on its internal structure, the material responds to the forces applied to it in a certain way, generating reaction forces and deforming its shape;
-stretch a spring and it tries to return to its original length,
-push the ends of a flexible rod together, and it buckles into a 
particular curve,
-attach a soap film to a boundary curve, and it
minimizes its surface area,
-crumple a piece of paper, and it bends and folds but with little shear or stretch.
Forms found through interaction with physical materials also impose certain constraints – not everything is possible. Try and force it into a shape which conflicts with its material properties and it resists, pushing back at you, or push it too far and it rips or crumples.
These limitations are an essential guiding part of the design process (and one which is often missing in digital design systems, where with a few clicks we can effortlessly loft a curve into a surface that would deform its intended fabrication material far beyond physical limits).

Of course the models we use for form-finding are usually not simply a scaled down version of the real structure, but involve a level of abstraction. We use materials which are quite different from those we will eventually build with at full scale, but which have key behaviours which give the forms they find geometric properties which will be relevant to their construction in other materials.
Surfaces modelled with paper or card are approximately 
developable (zero Gaussian curvature), which means they can be fabricated from sheet metal without expensive forming processes.
The surfaces found by soap films are useful because they are
minimal (zero Mean curvature), as is useful in a tensioned fabric structure.
Funicular or catenary models are yet another step removed from the final structure – not only are they a different scale and a different material, but we reverse their orientation with respect to gravity to find a form which acts in pure compression, as is suitable for masonry construction.

Nested catenaries project by the Auxiliary Architectures Studio at the Oslo school of Architecture and Design (form found using Kangaroo). Photo by Defne Sunguroğlu Hensel

In the computer we can go much further in these abstractions, creating virtual materials which have no real world analogue. We do not need to limit our form finding to only those geometric properties which have convenient existing modelling materials that maintain them, but can invent new custom materials to maintain a much wider range of possible geometric properties (ones based on ease of fabrication, or structural or environmental performance, or aesthetics…).
I am calling these
pseudo-physical materials – virtual materials with custom rules for how they respond to deformations, which do not correspond to the behaviour of any real material.


A physics engine (in this case Kangaroo) allows us to assign material properties to geometric objects, and then calculates how they interact with each other and any applied forces and constraints. These material properties are created through functions in the physics engine code which use some mathematical rules and variables to calculate what force to react with in response to a given deformation. Conventionally we use known mathematical expressions of physical laws here, such as Hooke’s law for springs.

However, as long as they fit within this general framework (of taking some geometry and numerical variables as input, and outputting some force vectors), the rules for calculating the material’s response can be anything we want – including ones based on purely geometric properties.

For example, we can create a surface made up of triangles and give it the property that these triangles attempt to stay equilateral, though they are free to change in size – something impossible with any known real world materials (perhaps suitably designed auxetic materials might be able to achieve somewhat similar properties, though that is a subject for another time…).

In the physics engine we can explicitly design and specify which geometric properties we want to leave free, which we want to constrain, and how we want to link them.

For form-finding we are usually interested in reaching a stable solution, so it often makes sense to define this material behaviour such that it produces a force which tends towards zero as the object’s shape gets closer to a certain target property. Many optimization techniques work by minimizing certain objective functions. Treating any and all objective functions as energy functionals, and actually simulating this as the potential energy of a physical system – which gets converted into kinetic energy and dissipated through entropy until an equilibrium is reached – makes them much more accessible and intuitive to interact with. Millions of years of evolution have given us brains highly adapted for interacting with physical material systems – so by putting otherwise abstract mathematical properties into this framework, we allow that powerful intuition to be applied to them.

Dealing with everything within the framework of classical dynamics also means that we can easily throw all these different forces and material properties together (combining conventional physical material properties with pseudo-physical ones), and simply add all the force vectors acting on each point in the system, then use the resultant or net force to find the acceleration (via Newton’s 2nd law) of that point.

Many powerful tools for constraint solving and optimization do already exist and are widely used in engineering, but the methods for specifying constraints and targets are often complex, and optimization techniques are often mysterious in how they reach their results, which limits their usefulness in early design.

In cases where the problem can be precisely defined, such as minimizing the weight of a truss subject to stress constraints, this need not be such a problem – as long as it outputs the right result, you don’t need to see how it got there.

But design in general is a much more fuzzy and flexible problem, and sometimes quite open ended. For this sort of design exploration it is better if the optimization process can be seen and controlled while it is running.

Optimum suggests something static and fixed, and in optimization literature metaphors of hill or mountain climbing are often used, with the peak representing the goal – and hills do not generally move as we climb them.

What I find more interesting though, is interactive optimization where the goal is not completely fixed at the start of the process, but the ‘optimum’ is something that can shift according to the changing desires of the designer, which are simultaneously being refined and altered in response to the constant visual feedback provided by the system. Unpredicted and emergent phenomena during this process can even suggest an entirely new goal.

A criticism which has often been levelled at digitally designed architecture over recent decades is that the tools adopted from the software of the animation industry allow wild formal exploration, and the creation of fantastic smoothly curved 3D objects, but without a way of building them at large scale so they stand up, they are somewhat irrelevant or indulgent.
While manufacturing technologies have been catching up, and more of what we create on screen can now be created in the real world, much of it is still expensive to fabricate on a large scale, and only gets applied on a few high profile, high budget buildings, lending further weight to the criticism of architects’ indulgence.

There are various geometric properties which are very important for making forms practical to fabricate that are not easy to maintain with conventional CAD modelling tools, particularly when dealing with complex curved forms.

Quad panels taken from NURBS surfaces and subdivision meshes (the common ways of making curved surfaces in current software) will nearly always be slightly doubly curved. Doubly curved panels are typically something like an order of magnitude more expensive to fabricate than planar ones.
Some sophisticated techniques do now exist for
post rationalizing ‘freeform’ geometry so that it can be fabricated, and with specialist help many of the curved forms created by architects can eventually be panelized, but this is a complex process, constrained by what is geometrically possible, and meeting demands such as planarity and number of panels and surface smoothness will often require some modification of the design.

This separation of geometric constraints from the main design process seems to me a slightly bizarre situation. NURBS and subdivision technologies are powerful and well developed for applications such as vehicle/product design and animation/rendering, but if we need these additional highly complex techniques for converting and post rationalizing the models we produce with them before they become buildable then they are not really working for architects as well as they should.

I believe the term ‘freeform’ is often rather a misnomer. Tools such as NURBS modelling constrain and guide the shapes created with them in all sorts of ways – it’s just that those constraints are a mismatch with those needed for many large scale construction techniques.

I propose pseudo-physical digital materials as a possible way of remedying this situation.
No modelling technology is neutral or ‘free-form’ – as soon as the form moves from the designer’s mind to paper, screen or physical model, the tool being used starts to play a role in shaping the design (and I would argue that even in the designers mind, the tools they are habituated to shape their intuition and the forms they are able to conceive).

Let us acknowledge and embrace this and look not just for modelling tools which give us the freedom to design anything, but rather tools which will intelligently and responsively constrain the shapes we create with them, so that the virtual model is shaped by what works for structure and fabrication.
Far from stifling design, I believe the constraints pseudo-physical materials impose, and the way they adjust themselves in response to our manipulations could suggest exciting new formal languages.

Special thanks to the following, with whom I have had many enjoyable conversations over recent months that were helpful in the development of these ideas:

Helmut Pottman, Mark Pauly, Daniel Hambleton, Niloy Mitra, Yongliang Yang, Harri Lewis, Tomohiro Tachi, Lars Hesselgren, Hugh Whitehead, Giulio Piacentino(thanks also for his plugin WeaverBird, which was used in many of the videos above), Dimitri Demin, Matthias Nieser, Felix Kälberer, Philippe Block, Lorenz Lachauer, Adrià Bassaganyes, Mathias Gmachl, Kristoffer Josefsson, Jonathan Rabagliati, Daniel Davis, Enrique Soriano, Pep Tornabell, Sam Joyce, Al Fisher, Chris Williams, Robert Aish, Jose Luis Garcia del Castillo y Lopez, Anders Holden Deleuran, Gennaro Senatore, Matthias Kohler, Marc Syp

I’m happy to announce that this year’s SmartGeometry conference in Copenhagen in March will feature a 4 day workshop cluster ‘Use the Force’ exploring the use of Kangaroo as a form-finding tool, and linking it to real-time sensor input.
I think this is a unique and very exciting opportunity to come together to develop, test and really push the boundaries of what is possible with these design tools.

The cluster will be lead by myself (Daniel Piker), Robert Cervellione and Andrew Payne (developer of the Firefly plugin).

The deadline for applications to the workshops has been extended until this Sunday 6th Jan
read more about it and apply here.

I am very pleased to announce that Robert Cervellione has nearly finished porting the Kangaroo Physics engine to work with Generative Components.
To read more and see some videos, visit

I’m excited to see how it gets used in this different software environment.
Thank you Robert!
Development for both the GC and GH versions will continue in parallel.

Also coming soon – a new version of Kangaroo for GH, and a first draft of the (long awaited) manual.

Much of my recent work has been about form-finding in terms of starting with some geometry and making small changes to lengths and angles to achieve a shape which is in some way optimal (e.g. all members of an inverted catenary vault are in compression, or mean curvature is minimized in a fabric canopy).

But another way of using these simulation techniques is to form-find not only the geometry, but also the topology of a structure – the overall arrangement of elements and which connects to which.

Here I think much can be learned by looking to studies of the microscopic world.
When writing Kangaroo I drew on some computational techniques which have found popularity in the game and animation industries and tried to bring them to the architectural design world. But many of these techniques were actually first developed in the field of Molecular Dynamics. So it seems a natural step to try exploring some ideas related to molecular modelling in Kangaroo.

Self-organization is the process by which basic elements can arrange themselves into more complex structures through simple local interactions.
(See also the closely related but more specific term self-assembly)
It occurs at many different scales – from the formation of molecules to the clustering of galaxies.

All of the videos in this post are purely procedural – I am not controlling them at all beyond setting the initial positions and some simple distance dependent forces of attraction and repulsion.
These are pretty basic first experiments, and nothing too rich in terms of emergent order is apparent yet, but I am excited about the potential.

Self-organization can be seen as the mechanism by which ‘higher’ domains emerge from lower ones – chemistry from physics, biology from chemistry.

Learning about how materials work at a molecular level might inform how we build with them, but I think the processes could also be abstracted and have relevance at quite different scales.

For example – electrostatic repulsion can be used to find an even distribution of cladding tiles on a doubly curved surface…

Or water surface tension pulling threads together could maybe inform road layouts…

(This last experiment is one that seems to have become quite popular recently – see also the work of Marek Kolodziejczyk, Peter von Buelow, Yiannis Chatzikonstantinou, Danny Holten and Jarke van Wijk, Corneel Cannaerts, StudioMode, and David Reeves)

…What other ways could self-organization be used in design ?
I think there is still much unexplored territory here!

The idea of taking forms from organic and inorganic nature and adapting them for our own designs is certainly not new, but I think what is is the facility and speed with which it is now becoming possible to digitally experiment with the processes of formation in nature.

Changing the way we design to something more process based can require quite a shift of thinking.

Optimization is a powerful tool with lots of exciting potential for finding the ‘best’ solution, but it requires that the designer think carefully about how to define what ‘best’ is in a way that can be communicated to the computer.

It will take a bit of getting used to to not directly design the final destination, but to define an invisible energy landscape and then let the computer climb the hills, sometimes ending up on a peak we had never guessed was there.

Thanks to loop.pH – working with them and discussing their fullerene type structures inspired some of these lines of exploration.
Also thanks to Robert Hodgin for inspiring me with this video,Martin Tamke and Jacob Riiber for this ‘Lamella flock’ video,and Daniel Davis for his swarming & dynamic relaxation on a surface post.

For further reading I recommend the writings of Peter Pearce and Stephen Hyde.
Also – this very nice Self-Organization FAQ from Chris Lucas.

It has been some time since I last posted, so a number of things to update on  :

The Kangaroo beta has been launched. It now has its own site ( ) where you can download it for free and ask questions or join in the discussion.

In April I went out to Arizona to attend COFES (the Conference on the Future of Engineering Software) where I had been invited to present Kangaroo as part of the Maieutic Parataxis session.

A project I was involved in with BKK architects has been selected as part of the Australian exhibition at this year’s Venice Biennale, where the animated visions of future cities will be projected in stereoscopic 3D.

I gave a presentation on Kangaroo at the Architectural Association alongside Jon Mirtschin (Geometry Gym), and David Rutten (creator of Grasshopper) who showed the very exciting Galapagos evolutionary solver.

(Video shows the famously chaotic 3-body problem simulated in Kangaroo – and here is an example of Galapagos combined with Kangaroo which evolves the starting position of one of the bodies so that it ends up as close as possible to a target point.)

I was also a guest critic at the AA DRL jury.

I recently joined Chelsea College of Art and Design as an associate lecturer on the Spatial Design course.

I will be presenting at the upcoming Architecture et formes complexes conference in Paris and also teaching an advanced grasshopper workshop there.

Along with Gregory Epps of Robofold I will be teaching a folding physics workshop in London (details to be announced shortly on the curved folding site).

In July I will be teaching at the Biodynamic Structures workshop in San Francisco.


Some people have been posting some nice examples of work generated with the various tools I have shared :

Some beautiful dendritic structures relaxed in Kangaroo from Enrique Soriano

Some curious smooth branched forms by Wieland Schmidt combining my Diffusion Limited Aggregation script with StructDrawRhino.

Tracing particles in Kangaroo and an interesting surface (using my DLA script) from Tomasz Gancarczyk

A cable net from Tomohiro Tachi

Environmental performance modelling of a roof relaxed in Kangaroo from Joao Albuquerque

Some paintings inspired by my 4D rotation animations.

If you have created something using or inspired by anything I have shared on this site and would like to be featured here please let me know.


(By the way, if you are interested in trying any of the definitions (or Kangaroo) I have posted and are not already a Rhino/Grasshopper user, you can download the free Rhino trial version here and free latest Grasshopper here)

Anyway, that’s enough with the updates for now, time to get back to this site’s intended purpose of exploring the themes of Space, Symmetry, and Structure.
I will be posting again soon with some thoughts on quaternions, spatial rotation, orientation entanglement and triply orthogonal systems of surfaces.

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.

One of the things it allows is the virtual use of some of the physical form-finding techniques for design that were pioneered by architects/engineers such as Frei Otto and Antoni Gaudí.

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 PhysicsSodaplayPhunCinderella )

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:


JellyFish is a new tool that works with Grasshopper and Rhino to enable various ways of modeling with attractive and repulsive forces. It is a generalisation of my popular Magnetic Displacement definition to 3-dimensions, along with some other improvements.

Any number of Sources and Sinks of variable strengths can be placed freely in space, and their combined effect can be used to move/orient/create any Rhino geometry based on points (including curves, NURBS surfaces and meshes).

The force model used is basically Coulomb’s Law for electrostatics, and a simple vector field integrator is included, so rather than just moving points along the tangent to the field at their start point you can actually move them iteratively through the curving field. This can help avoid particles crossing over each other:

grd grdx

Deformation of a grid shown with and without iteration

It also provides an alternative way of creating some of the kinds of surface usually modeled with Metaballs.

Because they are based on implicit surfaces, Metaballs produce an unstructured mesh. JellyFish on the other hand can produce a surface which keeps its explicit u v parameterization. This is potentially useful for fabrication or adding further layers of structure in Grasshopper or Paneling Tools.

metaball jellyfish comparison

Disclaimer: I am in no way endorsing the uncritical use of blobs in design!

JellyFish came about partly as a by-product of some more serious work with physical forces for structural modeling, but I thought others might find it fun to play with ( and maybe even useful )

You can download JellyFish here :

JellyFish.ghx (Shared under a CC Attribution Non-Commercial Share Alike license.)

Update – I’ve just added the option to draw the streamlines traced out by the particles as they move:  JellyFish_Streamlines.ghx. See the video here for an example. For now it is a separate definition so I recommend to download both, though the intention is to merge them into a single tool (possibly a plug-in) at one point

I am currently available for long or short term work and writing custom scripts or GH definitions, as well as individual or group GH training. In the London area now, but would consider travelling or relocating for the right opportunity. Please do not hesitate to get in touch if you have any questions.

Also, I am thinking of running a Grasshopper Workshop in London soon. If you think you would be interested in attending, drop me an email with your details to pre-register.

my address


Get every new post delivered to your Inbox.

Join 179 other followers