Introduction to Vlab - Features, Distribution, and Learning Resources

This guide has been written by Professor Przemyslaw Prusinkiewicz @P.Prusinkiewicz

What is vlab?
The Virtual Laboratory (vlab) is a suite of interactive programs for modeling and simulating the development of plants at the architectural level. (It can also be used for many other things, but let’s not get distracted at the beginning.) The user specifies models as short programs (scripts), that combine constructs typical of L-systems (productions) with standard programming statements based on the C/C++ programming languages. These scripts and additional data (for instance, specifying the shapes, colors and textures of leaves, flowers or fruits) are input to the simulators included in vlab, and produce images, animations, or data for further analysis or enhanced rendering as the output. Sample models that can be used to learn the software and/or as a stepping stone for developing new models are included in the distribution.

What vlab is not?
Vlab is not a software library; it is a set of programs that take an input (model description) and produce an output (three-dimensional visualizations, animations, and data). Although the source code for vlab is available, you don’t need to know it to use vlab effectively.

What does the package include?
The package includes the following key components (for the full list see the documentation):

  • The vlab environment (primarily, the browser and object manager), which is used to organize the individual models. It is the “entry point” to vlab.
  • Two interactive L-system-based modeling/simulation programs, cpfg and lpfg. Cpfg is particularly suitable for developing and experimenting with simpler models; in its early incarnation it was used to create models described in the book “The Algorithmic Beauty of Plants”. Lpfg is more convenient for developing complex models.
  • Programs for modeling plant environments (for example, light distribution in the canopy, competition for space, and competition for water in the soil);
  • Interactive graphical tools for manipulating the models (for instance, specifying the shape of plant organs such as leaves and flower petals, defining growth functions, and manipulating parameter values).
  • Manuals documenting all vlab components.
  • A set of sample models (vlab objects), illustrating various features of vlab. Most objects are referred to in the manuals, providing illustrative examples.
    In addition, the distribution includes an (old, but very fast) third-party ray-tracer, rayshade, which can be used to render models generated by cpfg or lpfg more realistically than cpfg/lpfg themselves allow.

How can I learn more about using vlab?
The “Getting started” manual included in the vlab distribution provides a tutorial overview of the system and its components, and an introduction to modeling using both cpfg and lpfg. “The Algorithmic Beauty of Plants” provides an introduction to the general idea of plant modeling with L-systems. The chapter “Modeling plant development with L-systems” from the book “Mathematical modelling in plant biology” is an overview focused on lpfg, including sample code for modeling genetic regulatory networks and phenotypic plasticity. These texts and many other papers written using vlab and illustrating its use are available at Algorithmic Botany: Publications (in some cases, the actual models are available as supplementary materials).

How is vlab distributed?
Vlab is an Open Source package, and can be downloaded from

  • AlgorithmicBotany · GitHub (sources and executable code for MacOS High Sierra (13.1) or later and Linux (Ubuntu 20.04.4 LTS; requires Qt version 5.12.8), or
  • Algorithmic Botany: Software (executable code only).
    Other Linux versions require recompiling from the sources. See README.md on github for details.
    Vlab can also run under Windows 10 (build 19041 or higher) or Windows 11, using WSL (Windows Subsystem for Linux) 2 and a Linux distribution of your choice. Again, see README.md on github for details.
    Finally, note that (somewhat older versions of) cpfg and lpfg are part of the L-studio modeling environment, which is native to Windows and distributed from Algorithmic Botany: Software. Models that do not use recently added vlab features run both under vlab and L-studio with no or minor modifications.

Warning There are many sites using names “Algorithmic botany”, “Virtual laboratory”, “vlab” and their variants. Be careful to follow the correct links. Do not rely on search engines.

1 Like