Simulated Evolution — Day 1: Introduction

Introducing a new set of projects in simulated evolution.

Objective: Establish what this project is, explain the work I have accomplished thus far, and explain plans for this project.

Introduction and Project Goals

Today I would like to introduce a past project I worked on that is based on simulated evolution, which I accomplish with agent-based modeling. Today I will demonstrate a model I worked on which simulates how differential birth rates affect ratios of two groups in a population. The project I will demonstrate today, and all current foreseeable projects I create on simulated evolution, are inspired by Northwestern CCL and their BEAGLE models. I will not be taking any code from the models, but I will use them as motivation for coming up with my own models, and then will be introducing new variables to see how that affects the overall model I have created. With this set of projects, all of them will be for educational purposes and the pursuit of knowledge.

As a note, this project is currently a side project of mine, and I will not be doing daily updates for this. I will likely only release an article every time I complete a model. Even though today’s model is not complete, I wanted to take the time to introduce this project as a whole.

Work So Far

In the project, I currently have two models. One named Simple Birth Rates (which I will show today), and another named Wolf-Sheep Predation. Now, when it comes to Simple Birth Rates, our goal is to demonstrate how changing the birth rates of two species in a population can affect the overall ratio of species A to species B. To do this, we need an environment with a carrying capacity for both species. I accomplish this with a script that acts as my environment controller.

As can be seen, 100 is the current carrying capacity, so the total population of both species will stay around that.

As can be seen in the screenshot above, you can also set the fertility rate of each species. The fertility rates are floats. This means a rate of 2.2 means at minimum, the species will spawn 2 others of the same kind, with a 20% chance of spawning 3 of the same kind.

Simulation at 10 carrying capacity
Simulation at 100 carrying capacity
Simulation at 1000 carrying capacity

Things to Work On

Let’s be honest, the application and models can use some TLC. Before I consider this project done for the first release, I will be adding in UI to allow for control of the variables, I will be improving many of the imperfections currently in place, and other general improvements.


Thanks for reading this article. I will provide another update once this model is complete!




Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Flutter Web — Readiness for the world

Day 51 — Looking into light probes in Unity

Incident Bot on Azure Functions

How to begin with JAVA

I was fired and it’s the best thing that happened in my software engineer career

How to convert a scanned document into text with location in Python using OCR

Make your own Operating System#1

How to Create an Online Event Site on WordPress

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Gabe Gomez

Gabe Gomez

More from Medium

Generate Stylized MNIST Digits (and Other Cool Stuff) with Differentiable Rasterization

Resampling of images and video sequences


A Comprehensive Understanding of Human Pose Estimation