Plant growth

Objective: To simulate accurate 3D plants and fruits for use in training an AI algorithm.

 There is an overlap between procedural generation and artificial intelligence. In addition to using AI to build procedural 3D models, procedural 3D can be used to train AI faster. AI algorithms need a large amount of annotated data to teach the algorithm what to do. Procedural 3D can help with this because it can generate a huge amount of annotated images with variations of the object.

This use case used the example of an AI algorithm that should learn to recognize ripe fruits, specifically raspberries. For this, the growth process was mapped out and each step was divided in order to simulate the process from flower to overripe fruit. The size and shape of the drupelets, the individual berries that make up a raspberry, the hairs and the color are factors that are adjusted during the growing process. Care was taken to keep the procedural system open enough so that other berries with a similar way of growing can also be generated. As you can see in the picture, blackberries were also generated with this algorithm.

In a second phase, the entire plant was simulated. This can be approached in three ways, via recursion, L-systems or space colonization. The paper TreeSketch (S. Longay et al.) was used for the generation of the plant. Just like in nature, there is a system in which the branches compete with each other for the existing place. So some branches will grow a lot and others will die. There is a parameter in the system that adjusts how strongly the tree grows away from gravity, or how much the branches will hang down. A second parameter determines which parts of the tree have more opportunities to grow and will therefore not die.


This article belongs to the following project:

Procedural 3D

Creating a 3D model using a procedural workflow starts with a simple shape just like classic 3D. Manipulations are then...