Symbulation Logo

Symbulation is an evolutionary agent-based modeling platform focused on evolving and examining symbiosis and endosymbiosis. It is open source on GitHub and has a browser-based graphical user interface as well as a command-line option. It is built with the Empirical platform.

The details of the basic Symbulation organism is outlined in .


In Symbulation, a population of “host” organisms co-evolves with a population of “symbiont” organisms. The symbionts are, by default, endosymbionts, meaning they live and reproduce inside of a host, however there is also a free-living option. The hosts are able to collect resources and invest those resources either into defense against their symbionts or donation to their symbionts. Symbionts are then able to steal resources from their host or donate resources back to their host. A synergy factor is applied to the resources donated back to the host, which is user-configured, and is an abstract representation of the many ways that symbionts can help their hosts.

The image depicts the Symbulation default system.

“Example host and symbiont with antagonistic behavior. The host spends 30% of its resources on defense (lock), the symbiont steals 50% of what remains, and the host retains what the symbiont does not steal.” Figure and caption from.

New genomes types are under development as of 2021.

Details of default configuration

This is an excerpt from the first paper using Symbulation:

We created an agent-based simulation, Symbulation, that models asynchronous coevolution between host organisms and symbionts, providing a simple environment to examine the conditions under which symbionts engage in strategies that are mutualistic, at one extreme, or parasitic, at the other. […]

In Symbulation, host and symbiont genomes each consist of a single number, the resource behavior. The resource behavior can be inclusively between −1 (antagonistic) and 1 (cooperative) and determines how the organism acts toward its partner, if it has one. At every update (time step), each host receives 25 resources, which are distributed to it and possibly its symbiont, based on the host’s resource behavior value. Similarly, if the symbiont receives any resources from the host, its resource behavior value determines if it returns any resources to its host.

A resource behavior value below 0 means the organism is antagonistic toward its partner. A host with a negative resource behavior will invest that proportion of the new resources available to it into defense. A symbiont with a negative resource behavior attempts to steal resources from the host. It attacks the host, to an extent depending on the magnitude of its resource behavior. The extent to which the symbiont’s value is more negative than the host’s value determines the proportion of resources the symbiont is able to steal from the host. For example, as shown in [the figure above], if the host has a value of −0.3 and the symbiont a value of −0.8, the host first invests 30% of its resources in defense, meaning that those resources are no longer available for host or symbiont reproduction. Here 20 resources came into the host cell, 6 have now been used up, and 14 remain for reproduction. The symbiont then attacks with −0.8, and because that value is negative and of greater magnitude than the host’s defense value, the symbiont is able to overcome the host defense. The symbiont is therefore able to steal 50% of the remaining resources. Therefore the symbiont is able to steal 7 resources and apply them to its own reproductive progress. The host then has 7 remaining resources that it is able to use for its own reproduction.

Conversely, a resource behavior value above 0 means the organism is acting cooperatively toward its partner. The host donates that proportion of resources to its symbiont (if it has one), and the symbiont, in turn, donates a proportion back to the host – determined by the symbiont’s resource behavior – multiplied by a synergy factor of 5. This synergy factor is an abstraction of the benefits gained in a mutualistic system by dividing labor between host and symbiont.

When a host reaches 100 stored resources, it reproduces and the offspring is placed in a random location in the world. Reproduction is imperfect, of course, and the parent and offspring both have the chance of mutation changing their resource behavior value. The resource behavior is altered by a random number pulled from a Gaussian distribution with a mean of zero and a standard deviation of 0.002. When a host offspring is placed, any preexisting organism in that space is killed. If the host has a symbiont when it reproduces, that symbiont has a chance to be replicated and copied into the host offspring. Whether the symbiont is replicated and vertically transmitted is determined by the user-set vertical transmission. If the symbiont is not vertically transmitted, the host offspring is placed uninfected and keeps all of its resources every update. After reproduction, the offspring and parent both have 0 resources.

In addition to vertical transmission, a symbiont may also horizontally transmit if it accrues 50 stored resources. The symbiont offspring produced must infect a host to survive. A host in the population is randomly selected, and if the host targeted is already infected, the offspring fails and dies. Hosts are limited to having one symbiont in them, and once that symbiont has infected them, the symbiont may not be removed.

, Methods

Findings using Symbulation

Symbulation was used to determine the effect of vertical transmission and spatial structure on the evolution of parasitism and mutualism in . Vertical transmission rate is the chance that, when a host reproduces, the symbionts within that host are able to reproduce and infect the host’s offspring. Spatial structure determines where offspring are placed in the world compared to their parent. The presence of spatial structure in this context meant that offspring were placed directly next to their parent, whereas the absence meant that offspring were placed in a random location in the world. Using Symbulation, researchers demonstrated that increased vertical transmission rate increases the degree of mutualism that evolves. However, the effect of spatial structure interacted with the amount of vertical transmission, counter to predictions. Spatial structure increased the amount of mutualism when vertical transmission rate was low or high. However, at intermediate vertical transmission rates, spatial structure actually decreased the amount of mutualism that evolved.


Vostinar, A. E., & Ofria, C. (2019). Spatial Structure Can Decrease Symbiotic Cooperation. Artificial Life, 24(4), 229–249.