Friday, 27th November 2009
A more challenging environment
The motivation behind creating such a ‘universe’ is to so I have somewhere where simulated cells can exist. The idea is that the universe will contain different niches that organisms can adapt to. For example, organisms might adapt to different temperatures. If metabolites have different buoyancies, they will accumulate in different areas, and organisms would hopefully adapt to preferring different metabolite concentrations. However, the number of niches in this simulation would be very limited, so I’ve started to create a more ambitious model.
In this model, additional niches were created by creating, different depths to the water. On the surface, this might not seem to create any further niches since it is removing sectors. However, I’m also changing the way the universe get energy. While a heated sector at the bottom of the pool of water might be a good simulation of a black smoker, I wanted a more familiar environment, heated by the sun. Therefore, in my new simulation light enters the simulation from the top. It is partially absorbed by the a few sectors of air, and sectors of water, and what remains is absorbed by the rock. Absorbing light causes the sectors to gain energy, which they can then radiate to other sectors. The rock in the shallows therefore heat up quickly, warming the water above, while the rock in the depths sees little light and remains cool.
The addition of light to the simulation will provide energy for my cells which will do the equivalent of photosynthesis. In addition, I added a day-night cycle to the light, so intensity increases for the first half of the day, and decreases in the second half, as indicated by the colour and position of the sun that looks like it was drawn by a child. Half the simulation is then spent in the dark. This will hopefully provide the selection pressure for regulatory systems to evolve, and perhaps create organisms that specialise at using different intensities of light. Below shows the simulation early in morning with a low sun (though the angle of light doesn’t change), beginning to warm the sectors. Due to the starting parameters, the rock is being cooled by the water. The rock is much cooler along the bottom as below, off the bottom of the simulation are sectors with a fixed temperature. Unlike the previous simulation, the sector on the far right are now considered to neighbour those on the far left.
Later in the day, the light has warmed the exposed rock, which is warming the water (which for the most part, isn’t warmed directly by the sunlight). The air above the rock has also begun to warm. Currently, particles are unable to move between sectors (though energy can be transferred between sectors). This is why the rock is efficiently conducting heat, while air (which is a poor conductor) is efficiently insulating the rock at surface. Later I hope to add the particle-movement equations from the previous simulation to this one, and see what currents can be generated. By allowing water particles to move into sectors of air, I can also create my own weather simulation by tracking temperature and humidity. This should provide a very stimulated environment for any virtual organisms.
In creating this simulation, I had to find a simple way to store the layout of the environment, which I have currently saved as an array of letters standing for Air, Water or Earth. I also finally found a question that Wolfram Alpha can answer: how many atoms are there in a 1m cubed of air? It could even answer the same question for earth (once I was more specific and asked about limestone, which it converted to chalk, but I’m not complaining). I had to go to Wikipedia to find thermal conductances for various materials however. Wolfram Alpha was also a bit hit-and-miss when it came to specific heat capacity, a property that I vaguely remembered from GCSE physics and have been learning about again. I decided to simplify things by make specific heat capacity a function of the number of atoms in an area, thought this doesn’t work well with air, which has a much hight specific heat capacity than its density ought to allow. Again, I’m learning that I don’t understand these simple physical phenomena as well as I first thought. I was pleased to discover, however, that the ratio of conductances for earth, water and air I was using in my simulation, we essentially spot on (namely 1:0.2:0.01 for earth:water:air).
This simulation could easily end up a lot more complex than I first intended and there is much more I still would love to add (e.g. reflecting light, which means I need to find the albedo of earth, water and air). This would result in a very slow simulation. However, I’m currently looking into using the GPU, which should speed things up hugely and might not be too difficult. I will have to write about my experiences attempting to use my GPU for my image evolution algorithm some other time. The result of my experimentation is that there is no easy way to do with my graphics card, but it should be doable on Victoria’s computer (and maybe I should get a new computer).