Leaf Venation

This paper describes an algorithm for leaf venation patterns. The interactive module below provides a visualization for a simplified version of the algorithm using the p5 Javascript Library.

The main idea behind the algorithm is the interaction between leaf vein nodes and auxin nodes (also called attraction points). In each iteration, the algorithm places random auxins on the surface of the leaf. Each auxin then pulls the closest vein node towards it, which causes the vein to grow in that direction (pulling from multiple auxins gets added up). Auxins are removed when the vein approaches it within a given radius.

The image below shows the vein will grow in the direction shown by the purple line after being pulled by two auxins.

After a few more iterations, the vein branches out in multiple directions because some auxins are closer to lower parts of the vein.

By adjusting the auxin removal radius parameter, different venation patterns can be achieved.

Low
Medium
High

Interactive Visualization

The source code of the visualization can be found here: https://github.com/tg2648/leaf-venation

Settings: