Diffusion Limited Aggregation

Branches are everywhere in nature: trees, leaves, plants, lungs, brains, dendrites, coral, rivers, etc.

There is a type of branching that happens when a negative electrode is placed in a solution of dissolved metal salts. The ions attach to the electrode one by one and form a solid. But the solid forms a strange branching pattern. This is called diffusion-limited aggregation, since the particles aggregate and the aggregation is limited by the rate of diffusion of the particles.

Some dudes called Witten and Sander came up with a mathematical model for the process [1] whereby particles enter into a box from the outside and adhere to a stationary particle in the middle of the box. Further particles can then adhere to any previously adhered particle.

You’ll get the idea by having a look at this crude simulation of the process that I wrote in Javascript:

If you let this run, you’ll see the particles stick to the middle point and become stationary, and as the process continues, a strange branching will occur. The process will result in a different pattern every time you run it (assuming the random seed changes).

The reason you get branches, and not a giant blob in the middle, is roughly because any protrusion makes it less likely that a particle can get all the way to the middle, so they are more likely to hit the protrusion, which makes the protrusion bigger, and so on and so on. This occurs recursively on the protrusions themselves, which gives you a self-similar structure with both big, medium, and small branches.

The particles move about randomly, which models the real particles which move about according to “Brownian” motion.

This simulation is incredibly crude. I just knocked it up to have a look at a cool javascript framework for WebGL called three.js.


[1] Witten, Thomas A., and Leonard M. Sander. “Diffusion-limited aggregation.” Physical Review B 27.9 (1983): 5686.