We define the topology of branching structures as species independent module prototypes. Initially, a set of module prototypes is generated and positioned in a special parameter space, which we call morphospace, that covers the characteristic branching patterns we can observe in nature. The module prototypes are used as templates to instantiate branch modules that form the architecture of a plant in our simulation.

During the temporal evolution, the branch modules are adapted, pruned or added. The reuse of prototypes templates allows us to represent trees with just a small number of prototypes instead of modeling all their individual branching structures. This approach also allows us to visualize thousands of plants in real time using instanced rendering of the branch modules. Thus, we can see the plant geometry at any stage of the ecosystem.

Another benefit of modeling plants with branch modules is the ability to capture plant interactions with the environment on a detailed level and as a result, each plant develops its individual branching structure. For example, big trees can overshadow the understory, causing less shade tolerant trees to die off or reduce their growth in this area. Another example is the adaption of plants to obstacles or other plants in the neighborhood.

As a level of detail approach, we can use the branch module topology for creating branch geometry as tapered cylinders in the shader and adapt their resolution dynamically proportional to the distance. This reduces popping artifacts which are common when billboards or imposters are used for the level of detail.