Diffusion-Limited Aggregation (DLA) is a fractal growth process. The process starts with a seed of some kind and particles that move by diffusion. When one of the moving particles comes into contact with with the seed it will become attached to the seed. The aggregate will continue grow as more particles attaches to the aggregate formed thus far. One way of realizing this type of growth process is putting an electrode into a solution with a low concentration of metal ions.
At first one might think that this kind of random process will aggregate into a more or less uniform blob. This is, however, not at all the case. Because it is more likely that a diffusing particle comes into contact with parts of the aggregate that is sticking out this will tend to amplify small irregularities in the aggregate. This type of amplification of random fluctuations will lead to a branching, tree like structure, which is actually a fractal.
Below is a simple java applet that does DLA. The particles move about randomly on a square lattice. When a particle attaches to the aggregate a new particle will be introduced on a random point on the edge of the display area. Particles in the aggregate will be colored according to how long they have been part of the aggregate. The simulation will run until one of the branches reach the edge of the display area (This is actually too long if you want an unbiased DLA. Introduction of new particles close to the already formed aggregate will affect the growth in late stages of the process, but that is ignored in this applet.).
Sample DLA imagesBelow are a few sample images made with the applet.
The aggregate in the image above used a different kind of seed. Instead of using a single point as a seed a line was used.
Another aggregate with a different seed type - a square.