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.
August 9, 2010 at 1:57 pm
David,
Congrats for this awesome work. Being honest, I’m thrilled about it. These are not just form finding algorithms, they are propper procedurial mecanisms!
It seems so many people just couldn’t get to the point you and people like David Rutten, with his Galapagos plugging, are.
BTW, it seems you are working on Rhino, innit?
August 9, 2010 at 9:55 pm
Thanks fabulous examples, opening up the possibilities- especially to less mathematically literate creatures!
August 11, 2010 at 6:06 am
The six and last video shows exactly what i want to do in my recently class project.Kangaroo is great but also a little difficult for me now.
Could you send me these two def to me?BTW,is the a manual?
lirenzhooong@qq.com
August 11, 2010 at 10:43 am
Hi Daniel,
There seem to be two classes of problems here:
1. Self-organisation but to an observer’s predetermined goal (supervised approach), for example the surface distribution of equally sized members. Interestingly, the algorithm will come up with a different solution every time, but one that is optimal all the same. This class of problem can theoretically be solved using a traditional algorithmic approach.
2. Self-organisation but to no single goal criteria but rather constrained by the human at the initial condition stage (as in your polymer video, i.e. the lengths of the bars).
The second set of systems are much more interesting (in my opinion) because they go beyond problems that let’s say a genetic algorithm or similar approach (monkeys typing on a keyboard) can ‘solve.’ This is more akin to setting the acceptable boundary constraints from the outset and letting the machine do the rest in an unsupervised manner. This would be true ‘emergence’ but I’m sure you know this!
Very nice article Daniel.
August 11, 2010 at 12:33 pm
Thanks John, very interesting points.
I would say the second set do actually all still have a single goal – energy minimization.
As soon as I introduce that global drag factor, giving it an arrow of time, every dynamic simulation becomes an optimization problem in this sense.
The potential energy (elastic,gravitational,electrostatic etc) is getting converted into kinetic and then destroyed (or in the real world lost to entropy), so any oscillations eventually settle down on some (local)optimum.
However, what energy minimization means in terms of the actual final configuration of the system can be very hard to foresee.
In some cases (eg the gravitational 3-body problem) the end result of introducing drag is obvious (they all collapse to a single point), but including other balancing forces such as repulsion makes things less predictable.
This is what I was getting at with the remark about setting the computer off to climb the hills of the invisible energy landscape (in fact it is ‘invisible’ because it has so many dimensions).
I think what sets the second set of systems apart is that you don’t even know the base contour of the hill or how ‘lumpy’ it is – there could be any number of peaks and ridges. By contrast, when you minimize a tensile surface you usually have a reasonable idea of the volume the final surface will end up in, and an expectation that there is only a single optimum within it.
Also – in principle I don’t see any reason why you couldn’t use a GA such as Galapagos to solve any of these problems. Each degree of freedom for every particle could become a genome, and the fitness function would be the inverse of the potential energy. I’m not sure how efficient this would be though – I had the impression that genetic algorithms are not well suited to such high-dimensional optimization.
August 13, 2010 at 3:26 pm
Thanks for the reply.
It’s interesting that we have to use energy conversion as a _process_ (damping) in order to reach a state with less potential energy. We have to simulate energy being converted from kinetic to whatever in order to reach a state with higher geometric order (eg. equal spacing of nodes). Clearly without the damping, it’s hard to imagine anything ‘emerging.’
This, to me, is the crux of emergent systems and absolutely fascinating. Order is generated even though according to the second law of thermodynamics, entropy should just continue increasing. It’s the interaction that is the key for these systems (‘correlation’ in dissipative systems speak).
The fact that there is a tipping point in all of these systems relating to the spring constants is also quite fun.
The beauty of the simulations here is that they are blindingly quick and hence we’re able to investigate systems processes beyond that of analytical science. We _could_ use a genetic algorithm to do this, but if we have already know (by using the approaches shown in your animations) what we will achieve then why bother!? It’s finding things out that we don’t already know that’s interesting, and what makes your “unexplored territory” comment so true.
(Loving the ‘rigid origan’ simulation by the way)
August 15, 2010 at 3:26 pm
[...] to be a lot of interest around this technique recently, as Daniel Piker said so recently in his post. I now officially pledge my support towards the wooly-threads/wetgrid/whatever hype! May we live [...]
August 23, 2010 at 2:58 pm
[...] Image from http://spacesymmetrystructure.wordpress.com/2010/08/09/self-organizing-structures/ [...]
September 29, 2010 at 9:30 pm
This graphical tool is a beautiful approach to a large class of heterogeneous problems which can be impossible to “visualize” analytically, and I thank you for your effort.
In particular, I am amazed at the possibility of tackling a configurational energy minimization problem as being continuous, or at least imbedding some flexibility in it (I keep watching the pseudo-fullerene tassellation video).
I guess that if one tried to constrain the size, or the number of sides of the polygons of the tassellation, he/she would come up with a non-satisfiable or untreatable problem.
GAs (and the plethora of derived “hybrid” strategies) are useful only with “rigid” problems, in which there is a need to “warp” from one local minima to another random location in phase space, hoping to hit a sweeter spot.
A slightly more technical point now: in looking at the electrostatic tetrahedra, I notice a slightly jiggly transient in one contact, and an overall slow response. Might I ask which integrator routine you use for extended body problems?
Anyway, keep up the good work, very inspiring for us all.
May 12, 2011 at 11:53 pm
Hello Daniel!
I liked your initial studies of self-organisation in Kangaroo.
I am a student at the AA DRL and we are looking at self-organisation as a design tool. We have a specific problem which we think might be solved using your scripts as a starting point. Can we meet with you at the AA to discuss our design concern?
Thanks,
Leonid
September 26, 2011 at 7:51 pm
is it possible if you can post any of these scripts? i’m not having any luck trying to achieve this.
October 5, 2011 at 6:20 pm
[...] Link to his blog post [...]
October 10, 2011 at 6:14 pm
Hey Daniel,
thanks for sharing this inspirational footage of good thinking.
As you asked, I might have a number of further applications in design – especially architecture and urbanism. But I would be very grateful for not having to start from scratch but use your wool-thread definition..!
I’m student of the Angewandte, co-developer of karamba and an engineer graduating on digital evolutionary strategies. I’m not begging for something I would just copy but just to help me save time, which as you probably know together with space is our times’ greatest luxury ;)
thanks a lot
October 10, 2011 at 8:31 pm
Hey, please excuse. I just found the definition.
April 24, 2012 at 7:38 am
sorry i cant find the definitions…
could you please help me?
July 26, 2012 at 8:30 pm
[...] viaSelf-organizing structures « Space Symmetry Structure. [...]
September 20, 2012 at 2:07 pm
[...] have written about topology optimization before, in my post on self organizing structures, but the videos above use a fundamentally different approach than any of the examples shown there, [...]