Population System - Species Splitting


Im not sure that allows for evolutionary radiation

I think that it should be possible for single species to split off multiple subspecies in a patch that take on different niches there. EG if one creature does really well a in a patch and there are many niches available it should be able to split off into those different niches, i think it would make each patch more unique and be more realistic.


Ok I thought about this some more, I think there is something we could do which would give more people more of what they want.

For this post I’m going to rename what is a “species” in the op as a “sub-species” and it just means a group of identical individuals that live in one patch.

I think auto-evo should be run per patch on each sub-species. I haven’t heard any suggestions of how to rewrite it and I am not keen to make it take account of multiple patches because that sounds like a computational nightmare. Each timestep the population of every sub-species is computed in each patch based on the conditions and interactions only in that patch.

One layer up we can have species. So each sub-species has an “species template” which is the organelles that the ancestor that started their species had. Then each time a sub-species is mutated by auto-evo it checks to see how different it is from it’s species template, if it is similar then it is still considered as the same species, if it is sufficiently different then it starts a new species with itself as the new species template.

For example the first sub-species is a single hex of cytoplasm and it’s “species template” will be itself. Maybe this species evolves to add a flagella, then splits into two, then one of them gets another flagella and the other gets some chemosynthesizing proteins but both are still considered the same species. Then maybe the first half gets a pilus and now that it has 2 flagella and a pilus it’s too different from the single hex to be considered the same species anymore so it gets made into a new species with itself as the template. The other half, which has just one chemosynthesizing proteins is still considered the original species.

This would mean that a species can be a larger thing, there can be some variation between sub-species, even in the same patch, however all the sub-species would be related and pretty similar. It would also allow species to spread out over many patches.

Above this we could have other layers, each sub-species could have a “genus template” in a similar way where it is allowed to be further from it before starting a new genus. We could have as many layers as we want.

I think this would give us single species across multiple patches in a pretty simple way which wouldn’t be hard to implement. It would keep all the sub-species interactions local which makes things easy.

Anyone got input? All feedback welcome.


Thats sounds like a great, and deterministic, way to know when a new genus splits and when new species emerge.


While @tjwhale s propoposed system will work great for now, I‘ve come up with a slightly more complex system for the midterm future that offers some advantages in my opinion. I‘d love to hear some feedback. Is it doable or is it too complicated? Do you see the advantages it may offer?

species splitting dynamics.pdf (86.5 KB)


I didn’t read the discussion on discord and I didn’t spend a lot of time reading that pdf, but here’s some points.

This seems very similar to what I suggested. And this doesn’t really address the most difficult calculation: how is the usefulness calculated. My idea solves that by making random mutations that can then be simulated forward in time to determine how good it is.

So I’ll reiterate the main points about my idea:

  • Species can have populations in many patches
  • Each species is simulated with 5 (roughly) random mutations and their usefulness is calculated based on how much they would gain population overall against other species.
  • Based on the usefulness of the mutations the main species will apply the most useful and then the species may split if there is a second very useful mutation.

A few amendments to my idea that I stole got inspiration / idea for from your plan:

  • Each patch’s population tries to send some population to a random connected patch. This will either reinforce the population of the species in that patch or create a new population in a patch which might succeed there and gain a foothold.
  • The chance of splitting the species increases as the global population increases.
  • It is possible for the species to split in only one patch if it has relatively hugely beneficial mutation it can take there. Otherwise the split would be in all patches at once if there isn’t a mutation that greatly benefits only a part of the species. So for example if the species is trying to establish a foothold in a hydrothermal went and it is also in a bunch of other patches then if one mutation is a chemoplast it would be almost guaranteed to split to a new species in that went.

I’m still convinced my idea (with possible tweaks) is the best one :smiley:

And while I appreciate this discussion, even if I don’t have the time to properly participate all the time, I think we just have to go with a basic implementation (my idea is good also in that regard that it doesn’t require much that other ideas wouldn’t also need, so no much wasted work) and then see concretely what these different suggestions do to it. So we could stop speculating as to what works, because we all have no experience in making an evolution simulation, so our intuition and ideas are probably not spot on.


I agree with this. I’ve had enough of discussing it as I think we don’t know how it’s going to feel yet. Lets just implement something simple and then iterate on it.