I'm available for workshops about how to generate 2D and 3D forms of trees, leaves and flowers with the computer.
The "Algorithmic Botany" workshop is 1 day long, but the duration can be modified depending on the time available.
Please get in touch if you have any other requirement or a different audience in mind.

Algorithmic Botany

algorithmic botany workshop
Audience: Students, Adults
Level: Intermediate, previous basic programming experience required
Duration: 1 day
Keywords: L-Systems, phyllotaxis, string rewriting, parabola, procedural generated content
Available in the following languages: English, Italian, German
Description: The goal of the workshop is to give the practical and theoretical instruments to generate 2D or 3D forms of trees, with any degree of abstraction. We are not looking for realism, but for generative processes and their visual applications. The generated forms can be used for videogames, design, illustrations or 3D printing. The workshop is structured as follows:
  • A short introduction to computer generated trees in art and videogames, from Harun Faroki to Horizon Zero Dawn.
  • L-System, Turtle graphics and string rewriting. Overview of the grammars described by Aristid Lindenmayer in "The Algorithmic Beauty of Plants". The participants will write an interpreter that implements one of these grammars.
  • An overview of the openFrameworks add-ons dedicated to L-Systems and tree generation. Overview of the same tools in the javascript world. The participants will learn how to use them in their own project.
  • Phyllotaxis. An overview of phyllotaxis in common flowers and trees. The participants will: 1) Write their own implementation of the algorithm in javascript. 2) Use their algorithm in a three.js scene. 3) Add a third dimension in order to generate 3D abstract forms. 4) Add a GUI in order to experiment with parametric design.
  • How to draw a leaf using parabola's equation. We will start in 2D, and we will learn how to introduce the third dimension in our sketch. We will then see how this equation can be applied to draw blades of grass.
The workshop will not focus on any particular language, but on the concepts and on the implementation's steps. As we need a common playground to work together, I've opted for three.js and openFrameworks. If the participants are more familiar with Processing, we can switch to Processing. Regardless of the framework used, the purpose of the workshop is to provide to the participants the instruments to implement their own generative forms in their favorite programming language or framework.