In any simulation of life, the surrounding environment in which the life lives must also be simulated to some degree. Life is intimately bound up with its environment, taking in substrates and energy to create copies of itself. At the very least, a simulation of life must include the a source of energy and the building blocks that will be arranged to replicate life. The environment may also contain other organisms which will create competition.
In the simplest simulation an environment could be modelled as homogeneous and unchanging. However, life left to evolve in such an environment is is unlikely to evolve very much. Cells will evolve to replicate a fast as possible given the specific amounts of energy and substrates provided; there is unlikely to many different paths for evolution. Gause’s Law of competitive exclusion suggests that such a system would be unable to support more than one species (i.e. evolution will only find one way to optimise how cells function).
Giving evolution a chance
Although I want my simulation of evolution to be open-ended as possible and not directed in any particular way, I also want to ensure that certain characteristics have the potential to evolve. For example, I would like cells to evolve regulatory systems and signalling pathways. As such, I need make to sure that not only can such proteins be made by the cells (so proteins must be able to bind substrates and other proteins), but also that there is a selective pressure for regulatory systems.
Regulation and signalling are only required if the inputs into the cell (i.e. the environment) change. One way to simulate this would be make the concentration of the cell's building blocks and the amount of available energy fluctuate over time. One simple way we could imagine doing this is to have two substrates, say sugars like glucose and fructose, and have their concentration fluctuate in cycles that are out of sync with one another. This would create a selection pressure for cells to respond to changes in sugar concentrations and alter their gene expression appropriately.
A more complex (and realistic) way to ensure that chemical concentrates change is to create a space in which cells can move and distribute chemicals heterogeneously in this environment. This will also allow cells to interact with one another directly. In my simulation, cells will exist with in a pool of water (which will be two-dimensional, having width and depth). This environment seems best for simple cells to exist and should be simplest to model. Cells will be free to move through the environment and resources will diffuse and flow through the pool. Energy will be provided in the form of light hitting the top of the pool. This light will fluctuate over time, mimicking days and nights. The heterogeneous distribution of chemicals can be induced by adding some simple physics.
By introducing gravity and a mass parameter for chemicals, concentration gradients of these chemicals are spontaneously set up. We might then imagine that some cells would stay near the bottom of the pool, where the heavy chemicals are more concentrated while others would prefer the top of the pool and the lighter chemicals. In addition, as light enters the ecosystem from the top of the pool and is absorbed by the water (and later by the organisms ), there will be a concentration gradient for light. We could create a dilemma for the organisms by making a crucial chemical heavy, therefore concentrated in the depths where there is little light for photosynthesis.
Another concequence of having a directional light is that there will be a difference in temperature in the environment. This is not only the source of energy for organism, but will affect the rate at which chemical reactions, be they for metabolism or degradation, occur. By having the a light/dark cycle and having the light move over the course of the day, we can introduce variations in temperature that give the organisms something else to cope with. By having a pool with various depths we can introduce further differences as shallow regions will warm up faster than deeper regions. Variations in temperature should also result in currents, which provide further interest in the environment, drawing up nurients from the depths, or requiring organisms to swim against the current to maintain its position in the pool where it is optimum.
I have created a fairly flexible (in terms of ease of altering parameter) simulation of a pool of water, with a simple, and hopefully reasonably accurate, simulation of diffusion and gravity. Running the simulation results in warm, less dense water at the top of the pool and cooler, denser water at the bottom. There is a bit too much of a difference (the water at the bottom is about five times as dense), but fiddling with the parameters should easily sort that out. Or maybe I should make it much harder for the water to become so dense (it is almost incompressible after all).
Once that's sorted I want to see if a convection current spontaneously forms if I heat a small area at the bottom of the pool. However, this will require introducing a way for the system to lose heat. The simulation is currently a completely closed system, so if I continually add energy, it will just get hotter and hotter.