Diffusion Limited Aggregation (2D DLA) 2

1,625 views · Published 27 September 2011 · 1:15 · Indexed 11 October 2026

Channel: Paul Nathan · 2011 · Education

Watch on YouTube

Another wonderful example of order arising out of chaos due to a simple rule! Diffusion Limited Aggregation (DLA) describes processses such as crystallisation, dielectric breakdown, electrodeposition, viscous fingering, and any other process where diffusion is the main transport method. In DLA particles move by random walks with Gaussian distribution of displacement (i.e. Brownian motion). When a particle hits a seed particle (one that has already crystallised and is no longer moving), it sticks to the seed particle and itself becomes a seed particle for others to collide with, and the process continues until there are no more free particles. The dendritic structure that emerges from the surrounding chaos is a fractal (surprise surprise!) with dimension around 1.7.

In this video, seed particles were made to line the edges of the 'Universe'. This code is actually a side project of a side project that I wrote to test my new fixed resolution octree spatial subdivision code for performing sphere-sphere intersection tests that I plan to use in my SPH code later on. I cannot overstate the speedup obtain by using an O(logN) octree search over a simple O(N) array search. With just a few hundred particles the latter practically grinds to a halt whereas the former remains consistent throughout and actually speeds up towards the end of the simulation as the number of free particles reduces!

The free space was initialised with 18,000 free particles scattered randomly (occupying 20% of the space). For the sake of brevity, only every 20th frame was output from the simulation. A bonus colour cycle is included at the end that reveals the growth history of the DLA. After this the octree is actually used to calculate the fractal dimension of the object (a bonus that comes with using the octree). The Tree is created with incrementing maximum level, and the number of non-empty leaf nodes (i.e. those containing spheres that make up the DLA object) are counted at each level step. This information can then be used to obtain the Capacity Dimension of the object as is demonstrated in the final graph, where s is the length scale of the leaf node box and N is the number of non-empty boxes (populated leaf nodes) at scale s. The result is close to the generally accepted value of 1.7.

Thus one learns that in a Universe filled with particles undergoing Brownian motion, it is possible to create an ordered dendritic fractal structure by introducing just ONE SIMPLE RULE: "Upon colliding with a seed particle, become a seed particle!". Interestingly the question arises - where does the first seed particle come from? An external agent is again required to get things started in this simulated Universe, an Initiator or Root-Node Progenitor (call this God if you want).

All coded by me from scratch in Visual Basic. The code is actually fully three-dimensional, and this video is just a special case of disabling motion in the z-direction.

More from this channel