algorithmic modeling for Rhino

My main Grasshopper development these days is Kangaroo, which is nearing a beta-release, but in the meantime here's another little bit of physics based messing around from a while back that I felt like sharing.
DLA is a simple algorithmic model of a type of fractal growth that produces dendritic forms which occur frequently in both living and non-living nature, introduced in 1981 by Witten and Sander in this paper(pdf).
It has become quite popular as a generative design tool in recent years.
The forms produced are similar to certain lichens, corals, crystals, brains, veins, rivers, tree roots, etc...
In its basic form it is remarkably simple - Starting with some seed points, particles are introduced one at a time, then they wander around randomly until touching part of the existing cluster, at which point they stick to it and the process repeats.
As growth this way can be rather slow I implemented a few features to speed things up, such as wrapping the boundaries of the space, having an adaptive boundary from which the particles start, and an optional gravity pulling particles in towards the cluster..
The script I wrote works in 2D or 3D, and you can grow your dendrites on whatever starting geometry you choose. There are also a few options for different physical forces to shape the growth.
Have fun!
DLA.ghx (download the one below for compatibility with the latest Grasshopper version)
**Update May 2013**
Due to changes in Grasshopper since the script above was first shared, it no longer runs in the current version. Here's an updated version of the script:

Views: 24788


You need to be a member of Grasshopper to add comments!

Join Grasshopper

Comment by Chris on February 23, 2021 at 8:27pm

Just noticed a small irregularity in the code, it creates patterns that are more square than they should be. This is due to the random vectors for the start points of the Floater. You are creating random values for x, y and z, then you are unitizing the vector. This means that the initial positions are evenly distributed in a square or cube and then projected onto the circle or sphere, but there will be more initial positions located along the diagonal than along the axes. In a square from -0.5 to 0.5 you could ignore those initial positions that have a length of more than 0.5. Not sure though if anybody still does DLA these days...

Comment by Lee Souder on January 11, 2019 at 11:20am

Thanks Ilona!!!

Comment by Ilona Pinto de Araujo on August 31, 2018 at 9:51am

Hi everyone, I know this topic is old, but I just wanted to share a gh definition for DLA using Anemone, for those who doesn't use VB. It is may be not the cleanest way to do but it works (inspired by this paper :

Comment by Daniel Piker on January 26, 2014 at 10:35am

Hi Vicente, yes - I checked and the updated script above still works with the current version of Grasshopper. Could it be something in your preview settings? (from the GH display menu)

Comment by Vicente Gasco on January 25, 2014 at 3:48pm

Is this suppose to work with the latest version? It seems to run but it doesn't appear in rhino.

Comment by Diego Mascareño on June 28, 2013 at 12:58am

Hi Daniel, for some reason the VB component gives me runtime errors regarding namespace importing, any clue about what may be wrong?

Comment by Andreas Schiffer on November 10, 2012 at 7:04pm

Hi I'm new in working with Grasshopper and have a Question about your Script. Is it possible to let it work on an Surface? If Yes hw i can do it, I tried but cant figure it out. Or maybe is there another Script which can do that?

Comment by Sarah Shuttleworth on October 28, 2012 at 7:07am

Hi thanks for sharing this script, however I am trying to edit it so it will go towards an attractor (eg: food source) and as it grows the older parts die off (like slime mould) Any suggestions? Sorry I am quite new to ghopper. Thank you!

Comment by JW on October 20, 2012 at 11:28am

Hello, Can you please update this for ghx 0.9 Thank you!!

Comment by Aditya Patil on August 31, 2012 at 12:12pm


DLa dosent run with ghx 0.9xxx...

can you update it plz ?




© 2023   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service