Viscous Fingers

Below is a java applet which generates a kind of fractal called viscous fingers.

Sorry - your browser doesn't understand Java applets so you can't see the viscous fingers.

These viscous fingers are generated with the following basic algorithm:
1. Start with an initial dot at the centre of the grid.
2. Choose a random point on the edge of the grid.
3. Perform a random walk from this point until you reach a location adjacent to a dot. Put a dot in this location.
4. Return to step 1.

I modified the above so that instead of starting at a point on the edge of the grid, the random walk starts at a point on a rectangle 10 cells on each side from the nearest finger tip. This version runs much much faster during the earlier stages since the random walks are much shorter.

Viscous fingers have low algorithmic complexity (the algorithm above is quite short), but high structural complexity (the patterns produced are complicated and hard to describe). They have a high logical depth, meaning that they take a long time to generate, as you can see.

I think they look nice too.

Click on reload to regrow the fingers from their initial state.

Here's one I did earlier.

Tim Kovacs