Simulating Natural Selection

Simulating Natural Selection

Views:4072741|Rating:4.94|View Time:10:1Minutes|Likes:198401|Dislikes:2434
In this video, we avoid telling the creatures what their survival chances are and let them figure it out themselves. This is the fifth in the series on evolution.

Made with Blender and python.

A few places to learn more about evolution and natural selection:

Any intro biology text you might have access to.

Special thanks to supporters on Patreon, especially:
Jordan Scales
Eric Helps
Ben Kamens
Ben Komalo
Christy Serbus
Sean Barker

Support Primer on Patreon:

Come over to the subreddit for deeper discussions of the concepts, sims, or anything else.

Follow on social media for updates and new videos:
– Twitter @primerlearning
– Facebook:

License information:
Creative Commons 4.0 (CC-BY). This basically means you can do whatever you want with this video, but you need to credit Primer and link back to your source. More info at

Speaking of attribution:

The music is “Investigations” by Kevin MacLeod, distributed under a CC-BY license via

Several other inputs into the graphics are from public domain contributions to

This video is about natural selection. If you've watched the previous videos in this series, you've seen these blob creatures live, die, and replicate; but it's been a little bit artificial. We just gave each type of creature a replication chance and a death chance and we saw what happened. With natural selection though, we usually can't know precise replication and death chances. Instead, selection comes from interactions between a creature's traits and its environment. So in this video we're going to make a real evolving system by putting our blob creatures into a simple environment and giving them traits. Let's see what we can learn by watching some actual natural selection happen. Alright so what does our environment look like? Creatures will live on this plane, and each morning, food appears on the plane and the blobs emerge from their homes around the edge to go out and eat the food. Here are the rules: if a blob fails to find any food before running out of energy, it will die. If a blob gets one piece of food and manages to get back home to the edge, it will live on to the next day. And, if a blob gets two pieces and gets home, it will survive to the next day and also replicate, adding another creature to the next day. So that's the environment. Before we talk about a creatures traits and how they might vary, let's just watch these creatures live their lives for a few generations. So we see that these creatures can manage to live over several generations in this environment and The number of creatures actually expanded over the first few days and then leveled off. So the population started out below the carrying capacity but once the population expanded to around 95, the creatures really had to compete with each other for food. Once we allow mutations, the variation will give some creatures an advantage and we'll start seeing some natural selection of traits. So let's turn on mutations and see what happens. Let's start out with one trade varying: speed. Each time a creature replicates, there's a chance that a mutation will give the new creature a slightly lower or slightly higher speed. Speed is great because it allows you to beat other creatures to the food; but speed will also have a cost: moving quickly is less efficient. If a creature speed is doubled, it will cover a distance in half the time but use twice as much energy to go that distance. Faster creatures can't forage over as much ground as slower creatures, so they might not find food before running out of energy. If we unpause this world with speed mutations turned on, what would you predict? When the faster creatures start appearing, will they sprint to victory? Or will the slower creatures prove the virtue of patience? It could also turn out that the current creatures have struck a good balance, or it could be that being fast and being slow are both good strategies; it's hard to say at this point. We'll just have to unpause and see what the nature of the situation is. Let's speed it up a bit so we can see more generations. All right, so it turns out to be worth sacrificing efficiency for speed in this environment. Or, at least the initial speed value I picked was slower than optimal. This is our first example of natural selection. We didn't know the best speed value going in, but the creatures mutated and somewhat randomly tried out different speed values, and then through natural selection the population evolved to have a higher average speed over time. I want to double down on that last point: the *population* evolved. As much as we all love Pokemon, individuals don't evolve in the biological sense of the word. Populations evolve over generations. One interesting thing to notice is that as the average speed of the population went up, the number of creatures in any given day tended to go down. The creatures now compete more fiercely and are less efficient overall. This is part of the meaning of the term "Selfish Gene". We'll talk more about genes and the term "Selfish Gene" in future videos, but for now just notice that even though we might call these creatures better because they did better in the competition for survival, the total population size actually went down. Selection didn't happen for the good of the species as a whole, but again, more on that in future videos. Alright, now that we've gotten our feet wet with one varying trait, let's add two more: size and sense. First, size. Size scales the creature in all three dimensions. The benefit of size is that it lets you eat other creatures if you're at least 20% larger than them. Getting an extra food source is great if you can pull it off, but being big costs a lot of energy. The energy cost depends on the cube of a creature size value I could have picked any function for the energy cost I suppose, but I made it a cube because volume scales as the cube of length, and volume is closely linked to the mass a creature has to carry around. The total energy cost of a creature's movement each time step is equal to the cube of the creature's size times the square of the creatures speed from before, which you might notice is reminiscent of the formula for kinetic energy. But anyway, it's especially costly to be both big and fast. And, on top of this cost, smaller creatures will actually run from creatures big enough to eat them. So, to benefit from being big, you need at least some speed. Long story short, being big is high-risk and high-reward. The third trait is sense. Each creature has a certain sensing distance at which it can sense food or other creatures. Once a creature sees food or a smaller creature, it can move straight toward it. Or, if it sees a bigger creature it can run away. This sensing distance gets larger as a creature's sense rate goes up, allowing it to avoid danger and be more efficient with its movements. Each time step, a creature pays a movement energy cost which depends on its size and speed, and a sensing energy cost which is just equal to its sense rate. All right, so now that we have three traits, let's rewind to before we turned on speed mutations, and instead, turn on mutations for all three traits. To keep track of what's happening to all three traits at once, we're going to use this three dimensional graph. Each dot in the graph represents one creature, and the position of the dot depends on the speed, size, and sense values for that creature. All right, let's see how it goes. So what can we say about the results? The first thing I notice is that the average speed is significantly different from what it was when only speed was allowed to vary, which is a little bit surprising because we didn't explicitly change anything about how speed works. But with sense and size able to vary, different creatures were able to appear. A creature's environment includes all the creatures around it, and for whatever reason, speed just wasn't as valuable this time around. And there's one other thing I noticed: when I first ran the simulation, I thought there would be a pretty intense selection toward creatures with higher sense, because sense informs everything else that creature does and it doesn't cost very much. But instead, sense is fairly spread out and centered roughly around the starting value. That's the thing about natural selection. It doesn't care what I or anyone else thinks is best. It. Just does what it does. All right, one last simulation. Let's see what happens if we change the environment more explicitly. Let's go to ten food each day. It's pretty clear that this won't be able to support the population of about 50 creatures we currently have, so the number of creatures will go down. But what else will happen? I don't know. We'll just have to see. Hm. Okay, well, apparently, the creatures that thrived with 100 food just aren't able to cut it with only ten, even though there should be enough for, say, five to ten creatures. So it looks like if it's going to be possible to survive with only ten food, there's gonna have to be some time for the population to adjust. So instead, let's do this: we'll rewind to before we reduce the food and then every two days we'll put out one less piece of food until eventually we're only putting out 10 pieces of food each day. All right… So it's not too surprising that in a lower food environment, things aren't just crowded and being big just isn't worth it anymore. Sense, on the other hand, became super valuable now that a low sense creature can easily go a whole day without seeing anything, and die. And now speed is actually really valuable again. This surprised me actually; I thought in a sparse environment that efficiency would be king, making both size and speed go down, but apparently speed is actually more valuable now. So again, I can't predict it. So other than reiterating the fact that I don't know what's going to happen, what can this teach us? Well, to put it plainly: the environment matters. A lot. Reducing the amount of food didn't just reduce the number of creatures; it totally changed which creatures exist. You'll often see evolution depicted as this march toward more and more advanced or complex or higher creatures, but that's not how it is at all. The only thing that matters is how well the creature is adapted to its environment. Okay, so, before we go, let's do a quick recap: Even with this relatively simple environment we created, we were able to see some important principles in action. But we're not done yet. In the next few videos, we'll keep exploring natural selection by trying to see how some more complicated and even counterintuitive traits can be favored. See you then!

38 Replies to “Simulating Natural Selection”

  1. Primer

    If you're about to leave a comment saying that faster creatures aren't actually less efficient, read this first. I presented that part a bit strangely.

    At 2:14, I say moving quickly is less efficient, giving the example of a creature moving a unit distance in half the time, using twice the energy. Then, at 4:53, I show a formula for the energy cost per unit time, which depends on the square of the creature's speed.

    I gave distance per time, energy per time, and distance per energy at separate parts of the video, and that was confusing.

    So here's a more explicit summary.
    If we double a creature's speed…
    – its distance per time is doubled (the definition of speed)
    – its energy per time is quadrupled (because it depends on the square of speed)
    – its distance per energy is halved: (2x distance per time) / (4x energy per unit time)

    That last bullet is the "efficiency" from the video. With its starting energy for a day, a 2x-speed creature can only travel half the distance.

  2. Jackie Chiles

    Could anyone kindly guide me to a relatively succinct resource for the actual evidence for macro-evolution, or what is popularly referred to as "evolution" in general? I do own Jerry Coyne's "Why Evolution is True" and am vaguely familiar with many simplistic statements that people make, but I am more looking for something akin to a list of the most persuasive pieces of evidence that could be presented to a skeptic of evolution. Much in the same way that religious apologists compile arguments and evidence to defend their beliefs, I would like to be more educated on the best arguments and evidence for the veracity of evolution. Please note: simply insulting me and stating that it's true because it's true, and anyone who is skeptical is stupid, won't be very helpful for me. This is an honest inquiry. Thanks to anyone who has a serious desire to help.

  3. _Zeallos_

    i think evolving is still the right term, because when a group of squirtle's evolve that particular group of squirtle's have evolved, while if its entering a developmental stage then yes that particular squirtle is doing just that, but if a group evolves then i would argue that then it is evolution
    Edit, its also why usually theres Wartortle's and Blastoises with them aswell as the "older Generation"

  4. brocktechnology

    Fabulous! I've often thought of creating a similar simulation myself, just for fun. It's been at the bottom of my to do list for so long in fact that the original plan was to do it on a Commodore 64.

  5. Thomas Garcia

    Thank you for making that statement about evolution because a lot of people are under the misconception that creatures just transform like Pokemon do

  6. Zachary Lincoln

    When you make at least 50,000$ in youtube ad revenue making a video about a highschool computer science final.

  7. Joe Swank

    you should have made the sense size differ like the speed. So that would have been part of the natural selection. Would have been fun to see that as a part of it.

  8. AidenAndCrymsonRoses

    I would love to see more simulations about this. What would happen with higher values of food. What would happen if you introduced possibly a fourth trait. And what was the energy total you gave them per day to spend? How would increasing their pool of energy effect the generations. Really cool video

  9. Sergey Bel.

    I am interested in another variable like temperature.
    If you give a creature a trait that it has fur and lets say it lives in an very hot environment like Africa. Why does the fur did not go away from the creature?
    Can you run your simulation and see what will happend?

    I want to know why animals still have a lot of fure like apes and gorillas and lions and tigers even if they live in a warm environment for a lot of generations

  10. trusty beetle

    I'm an average person, but in the future all those that survive are the smart ones out there, why do i get the sense that since im average maybe all my future generations will die off?

  11. Kun Kodiik

    You seem to have evolution and adaptation confused. A species can adapt to its environment and not necessarily be better than creatures that adapted to a different environment. But evolution is a product of many environmental adaptations and does in fact make a species better/more advanced.

  12. Nathanboy98

    Larger population doesn't mean more efficient than smaller population. The speedy trait aloud for survival of the fittest and so less margin for error hence the population decrease this is a mixture of evolution and natural selection, fascinating stuff this!

  13. MrTEA2

    When you reduced the food to ten/day you accidently simulated an extinction event and you didn´t even mention it !
    The environment changed so fast that, even through your creatures could live on 10 food a day, they had no time to adjust and died out. This is the reason why currently lots of species die out; they just cant evolve new traits as fast as man changes earth.

  14. Rath'ven

    This made me want to play ARK: Survival evolved, and play with the resource settings and such to see how well I can adapt. I think it could be a fun little experiment

  15. Dipon Basu

    I think the main reason why speed was so important in a Low food environment was because of the time limit set, which meant with lesser food, the time needed to find each food would be more with a lesser speed. This the increase in speed.

Leave a Reply

Your email address will not be published. Required fields are marked *