These branching patterns are known as dendrites and they appear in nature in various instances: a patch of lichen, mineral deposits, fungus mycelium, lightning, etc.
We can envision them being created by thosands of tiny particles which jitter randomly about and stick onto existing branches when they touch. Why do jittering particles create these branches?
Because the branches stick out from the rest of the structure, jittering particles are more likely to land on the tip of a branch than on the base of the branch.
Everytime that a particle lands at the tip of a branch, that branch becomes a more likely landing place for further particles. This self-reinforcing cycle creates the branches. Because the process is self-reinforcing, small changes early in a dendrite's growth can have large consequences at a later point.
This small-changes-yield-large-changes property is known as instability
. This instability is surprising because we think of the jittering of particles (known as diffusion
) as being a smoothing process.
In fact, the diffusion process is characterized by the Laplace equation, which says that the flows between adjacent regions are balanced, and that the diffusing area is smooth within any small local area.
The paper Fast Simulation of Laplacian Growth
describes a method for quickly computing dendrite patterns that is based on the "dielectric breakdown model". Their algorithm iteratively computes the electric potential at the points surrounding the dendrite and then treats the electric potential as a probability distribution from which it selects new points to add to the dendrite.
This algorithm includes a parameter (η) that attenuates the simulated electric potential which changes the resulting pattern, ranging from dense and lichen-like to sparse and lightning-like.
Try this live version of the algorithm