There have been some fairly heated posts and discussions in the blogs recently on the subject of some patents relating to architectural geometry held by Evolute, Helmut Pottmann and RFR,  about the commercialisation of academic research, and particularly how all this relates to what I do in Kangaroo, and what people can legally use Kangaroo for.

Firstly, rather than attempting to paraphrase or summarise, I will link to the posts in question so you can read them (and particularly the comments people made in reply) yourself:

Patenting Geometry on Daniel Davis’ Digital Morphogenesis blog

and Evolute’s response

Why is Evolute Patenting Geometry ?

I welcome this debate, and think it is of great interest and importance to everyone involved in the future of computational geometry. There is also a discussion starting on the Grasshopper forum (http://www.grasshopper3d.com/forum/topics/patenting-geometry) and I’d be interested to hear the thoughts of you my readers on the matter. There are also some further comments and discussion on the download site here http://www.food4rhino.com/project/kangaroo#comment-209

To clarify some aspects of my own position :

Several of the geometry optimization features I have developed in Kangaroo have been  informed and inspired by the works of the Polyhedral Surfaces Unit at TU Berlin lead by Alexander Bobenko, and the Geometric Modeling and Industrial Geometry Group at TU Wien lead by Helmut Pottmann. I first encountered some of these works as a student, via a long running interest in minimal surfaces, circle packing, and conformal mapping, which lead me to papers and presentations such as these:

Minimal surfaces from circle patterns: Geometry from combinatorics – Bobenko Hoffmann and Springborn 2006    (and a presentation on the same title)

Discrete differential geometry. Consistency as integrability – Bobenko and Suris 2005

Discrete Minimal Surfaces from Quadrilaterals – Bobenko 2007

The focal geometry of circular and conical meshes – Pottmann and Wallner 2006

Geometry of Multi-layer Freeform Structures for Architecture – Pottmann, Liu, Wallner, Bobenko and Wang 2007

Geometry of Architectural Freeform Structures – Pottmann, Schiftner and Wallner 2008

Despite usually not fully understanding most of the technical details of these often beautiful papers I somehow found the results very appealing, and they alerted me to the great potential for the use in design of planar quad meshes, circular and conical meshes and other related geometry.

Another important later influence for me in my recent work has been the paper Physics-based Generative Design – Ramtin Attar, Robert Aish, Jos Stam, Duncan Brinsmead, Alex Tessier, Michael Glueck & Azam Khan 2010, where among other things they describe embedding properties useful for fabrication (such as planar mesh faces and constant offsets) in an interactive model, and iteratively enforcing these constraints.

Following the example of how Grasshopper has made advanced computational methods vastly more accessible to many people, I saw a potential to put some of these geometrical results in the hands of ordinary designers by adding them to my physics engine Kangaroo, and make them intuitive to use and cheaper(free!) than the existing commercially available software for this (Evolute Tools). I don’t claim to replicate all the capabilities of their software, and my work is still under development, but I do think I offer a unique way of interacting with some of these geometric properties, and feel the results so far are very promising.

The method I use is quite simple compared to many other optimization techniques, and in fact I can describe it here:

It works by assigning every vertex  a mass and velocity, and calculating and applying forces for the set of points acted on by each force object (such as the 2 end points for a spring, or the 4 vertices of a quad for a planarization force), adding up all of the forces acting on each particle, applying the corresponding accelerations and repeating, with a damping term to cause the system to settle to an equilibrium. Similar techniques are widely used in computer games and animation, and a good overview can be found in Baraff and Witkin’s Siggraph 97 course notes Physically based modeling.

The force calculations themselves are also quite simple – for example, to force 4 points to lie on a circle they must be equidistant from a 5th point and also planar. In Kangaroo this is achieved by:

-An ‘equalization’ force acting on the lines from these points to a floating 5th point (simply taking the average length of the 4 lines and then treating each one as a Hooke’s law spring with this average as its rest length). When these lines are equal length clearly the 4 points lie on a common sphere.

-A planarization force. If the 4 points are not coplanar, they define a tetrahedron. As the volume of this tetrahedron decreases to zero, the quad becomes planar, so a zero rest-length spring-like force is applied pulling the the top and bottom diagonals towards each other. When the distance between these diagonals is zero the quad is planar.

(That takes care of circularizing the mesh, but where all this gets really interesting for me is when this is combined with other forces to shape the form – Laplacian smoothing, gravity, inflation, etc and point or boundary constraints which can be interactively adjusted by the designer)

This is not to say that the reasons behind why circular meshes have the interesting properties they do is simple, just that the methods of their creation can be. In fact the study of these discretizations of curved surfaces has its roots in some very deep mathematics going back quite some way.

Much of the discussion in the pages linked to at the start centres around the distinction between patenting the use of geometric results vs geometric methods. This can lead to some fascinating abstract philosophical and moral debates, such as whether mathematics and mathematical truths are invented or discovered, and to what extent can or should they, or certain uses of them, be owned. However the debate about the legality of these things also has much more immediately practical and economic implications for those in the business of designing buildings.

I’m not actually going to go into my own personal thoughts and feelings on these matters much here, and I do not have the expertise to contribute meaningfully to any legal debate, but I will certainly be following developments with interest, and am keen to hear your opinions.

Fortunately for me, whatever debate there may be about  who has what right to use certain geometry in their buildings, nobody is trying to stop me developing Kangaroo. In fact I have had some enjoyable and encouraging discussions with the people at Evolute, and even provided them with some meshes which they used to demonstrate some of their new optimization procedures in a recent paper.

Aside from any other discussion I also want to publicly thank Helmut Pottmann and his co-authors for their many great papers over the years. I would not want anyone to get the impression that I am ungrateful for or ignorant of the contribution they have made to the field and to some of my own recent work.

I have tried to give credit to those that have influenced and inspired me in my postings on this blog and elsewhere, and make no secret of the fact that all of my work builds on that of others from many sources, just as those sources themselves build on others. I believe  everyone who contributes to the increase of knowledge with original work is entitled to public credit (and I believe that there is at least general consensus about this, aside from the issue of legal and commercial entitlement).  As this is an informal blog and not an academic publication these acknowledgements have not always followed a standard format, which is why I felt the need to clarify matters.

Finally, on a related note, I want to end with an example of what I enjoy about all this – learning from the work shared by others, applying it in hopefully interesting ways, and sharing my work in turn. So – I am happy to introduce one of the most recent additions to the Kangaroo repertoire of forces – for optimizing a given pair of triangles towards having tangent incircles. Meshes where all pairs of adjacent triangles have this property are referred to as circle packing meshes – the wonderful properties of which are described and illustrated in the paper

Packing Circles and Spheres on surfaces (thesis of Mathias Hobinger 2009)

and also a shorter paper of the same name – Shiftner Hobinger, Wallner and Pottmann 2009

from which I learned of these meshes and took the simple length criteria to optimize for with this force.

[vimeo 28519758]

(more details and documentation for this feature to follow shortly)

Enjoy, join in the discussion, and keep on optimizing!

I am pleased to announce version 0.06 of the Kangaroo physics plugin for Grasshopper.

Download it free from http://www.food4rhino.com/project/kangaroo

This version contains bug fixes and many new features – wind, planarization, vortex, shear, alignment, anchorsprings, constrain to curves… see my video page for some examples

I am also starting to upload an updated collection of example definitions showing how to use each of these new forces here:



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 CERVER.org

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 ( kangaroophysics.com ) 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.

« Previous PageNext Page »