Modelling grapevines with an L-system
Vitis vinifera is better known as grapevine. Lebon, Pellegrino, Tardieu and LeCoeur describe “Shoot Development in Grapevine …” Annals of Botany, Volume 93, Issue 3, March 2004, Pages 263–274 as represented by three phytomers (or templates):
We can make a simplified model of this structure with an L-system. B, S and C represent the original stem, a continuation of the main stem, and the terminal extension of the main stem respectively. L, T and R represent a leaf, a tendril and a sub-branch. [ implies recording the current position of growth, and ] recovering it.
The fifth iteration, for example, gives is: S[L][R]S[L][R][T]S[L][R][T]S[L][R][T]S[L][R][T]C
We can construct a vocabulary to interpret strings generated with this L-system. Here’s an example that interprets each symbol as instructions to draw (in detail, this is using skiasharp):
Note that rather than creating a parametric grammar I’ve used the orientation
variable to record state and enable the mirroring of phytomers on successive iterations. This is a simple, artificial representation but it does have the character of a simple vine: