Skip to content

Simulates evolution based on a simple environment of mice eating grass, while being hunted by owls.

Notifications You must be signed in to change notification settings

koefoeden/Evolution-Simulator

Repository files navigation

Image of app An image of the interactive simulation environment.

Welcome to the Evolution Simulator!

This tool allows you to simulate the natural process of evolution in a simplified, artificial environment. Essentially, the tool simulates an environment filled with mice and owls. The mice strive to survive by eating grass, while the owls prey on the mice. Both animals are capable of propagating and pass down their genes to the offspring. Let evolution do its work, and see the marvelous effects of natural selection!

Every simulation is based on a number of settings that you will specify before beforehand - or you can choose a pre-determined configuration if you like!

The tool has two different modes:

  1. Interactive mode, where you can see evolution working in real-time.
  2. Simulation mode, where you can test a range of different custom configurations, figuring out which variables are important for stimulating evolution.

In the environment, male and female mice are coloured dark and light blue respectively, while male and female owls are colored red and orange respectively. Each animal is given a number, indicating its level of speed. If the number is underlined, it means the animal is currently pregant, and will soon produce offspring.

Installation and usage

Install the package through PyPi:

pip install evolutionsimulator

Run it in your terminal through the following command:

simulate

Voilá, the GUI will take you on from there.

Variables

Below is a list of the settings for each simulation that you can explore.

Environment

  • dimensions - number of vertical and horizontal tiles in the environment
  • rock_chance - the probability in percent that a tile is an obstructive rock instead of grass
  • grass_grow_back - number of ticks before grass grows back after being eaten

Simulation mechanics

  • rand_catch - determines if catching is probability based or deterministic
  • in_medias_res - determines if simulation is started cold or warm
  • rand_variance_trait - the amount in percentage that offspring can vary in the speed trait from the average of its parents
  • speed - determines whether or not the speed trait is inherited

Mice

  • m_number - number of mice upon start of simulation
  • m_die_of_hunger - number of ticks before a given mouse dies of hunger
  • m_preg_time - number of ticks that a female mouse is pregnant
  • m_max_age - number of ticks before a mouse dies of old age

Owls

Same as for mice above

  • o_number
  • o_die_of_hunger
  • o_preg_time
  • o_max_age

Tick_time (only for interactive mode)

  • slow_mode_sleep_time - time between each tick when slow-mode is enabled

Auto_testing (only for simulation mode)

  • ticks - number of ticks desired to be run for the simulation
  • repetitions - number of repetitions to be run for each given configuration

About

Simulates evolution based on a simple environment of mice eating grass, while being hunted by owls.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published