I got the new CPA system prototype working! Each dot is a population (time is on the x axis and pop on the y). The two numbers next to the dot are how many chloroplasts it has followed by how many chemoplasts (e.g. 2 0 means 2 chloro + 0 chemo).
The green lines at the top mean a mutation has taken place and a yellow line means a species has been spit to keep the patch numbers up.
The way it works is that each turn the sunlight is divided equally between all the chloroplasts in the patch. This is your energy income. You also have to spend energy maintaining your population and the dynamics are a simple differential equation which maintains this balance. Basically
change in population = small number (energy income - energy expended maintaining pop)
Then there are random mutations made to each species. I was a bit concerned about the previous idea of “offering each species 5 changes and choosing the best” as I was concerned all the species would end up the same. Moreover, with that system, all the organelles need to be included in the energy model or they will be cut for efficiency. With pure random mutation there is still a driving force which is pushing the species towards being pure photosynthesizers (as you can see there is no hydrogen sulfide in the patch).
About 1 minute in you can see the blue species randomly get rid of it’s chloroplast and die out because of that
All feedback welcome. I think this might be a productive path, it’s all very simple and lets the species adapt to any environment dynamically.