https://github.com/anushapb/evodoodle
A doodling game for understanding evolution across space
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.7%) to scientific vocabulary
Repository
A doodling game for understanding evolution across space
Basic Info
Statistics
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 1
- Releases: 0
Metadata Files
README.md
Evodoodle 
Draw your own custom landscapes and watch as your species evolves across them! Evodoodle is a drawing game for learning how evolution plays out across landscapes. Evodoodle allows you to control population density, connectivity, and selection across space and then simulates evolution using Geonomics, a powerful landscape genomic simulation package.
Setup
Evodoodle can either be run locally on your own computer or right in your browser using GitHub Codespaces.
Running evodoodle in GitHub Codespaces
GitHub codespaces provides a cloud-based environment for running evodoodle right in your browser. To start a GitHub codespace, click the green CODE button in the upper-right corner of this repository and select Open with Codespaces. This will open a new codespace in your browser with all the required packages installed and ready to go. The codespace will take some time to start (5+ minutes). For more information on codespaces check out the GitHub documentation.
GitHub codespaces by default uses Visual Studio Code, a popular open-source code editor. To get started, open quick_demo.py or evodoodle_notebook.py by clicking on the file in the file explorer (left-hand side of the screen). You can run chunks by clicking "run chunk" or by pressing shift + enter (or shift + return) when the chunk is selected.
BEFORE YOU START: Evodoodle requires an interactive display for drawing which takes a few simple steps to set-up on codespaces. We have a virtual desktop which you can acccess by:
1. Clicking the Ports tab at the bottom of the screen in codespaces
2. Find the desktop (6080) port in the list (it should be the first one)
3. Click Open in Browser in the Forwarded Address column for desktop (6080) (click the button that looks like a globe next to the link or Ctrl + click the link).

- This will open a new tab with the interactive display called noVNC. To start the display click
Connect. The screen will initially appear blank, but when you run the code to draw a landscape (i.e., rundraw_landscape()) the landscape will appear in the noVNC display tab. Once you have drawn your landscape, clickSAVEand the code will continue in your codespace tab.
Cost of codespaces: GitHub Free personal accounts come with 120 codespace core hours per month for free. When a personal account hits its limit and has no spending limit configured, use of GitHub Codespaces will be blocked (so don't worry about accidentally running up a bill). For more information on pricing check out the GitHub billing. Our codespace uses 2 cores, so you can run it for 60 hours per month for free (or more if you have a Pro account).
You can download files from your codespace by right-clicking on the file in the Explorer panel and clicking Download... and you can upload files by right-clicking in the Explorer panel and selecting Upload....
Running evodoodle on your own computer
Evodoodle relies on several geospatial libraries that must be installed first (GEOS, GDAL, and PROJ). Once they are installed, you can install evodoodle from GitHub:
python
pip install git+https://github.com/AnushaPB/evodoodle.git
Evodoodle has requires several other python packages which can be installed using pip or your package manager of choice:
python
pip install bitarray
pip install geopandas
pip install geonomics
pip install matplotlib
pip install msprime
pip install numpy
pip install nlmpy
pip install pandas
pip install pygame
pip install rasterio
pip install scikit-learn
pip install scipy
pip install seaborn
pip install shapely
pip install statsmodels
Quick start
To start evodoodle, simply run the following code. Whenever draw_landscape() is run a pop-up will appear that allows you to draw on a landscape. Once you have drawn your landscape, click SAVE and the code will continue:

```python import matplotlib.pyplot as plt import numpy as np import seaborn as sns import geonomics as gnx import evodoodle as evo from gnx_params import params import geonomics as gnx
Draw landscapes
carrryingcapacity = evo.drawlandscape(d = 10) connectivity = evo.drawlandscape(d = 10) environment = evo.drawlandscape(d = 10)
Plot the landscapes
evo.plotlandscapes(carrryingcapacity, connectivity, environment)
Start the model
mod = evo.initmod(params, carrryingcapacity, connectivity, environment)
Run the model for 200 steps
mod.walk(200)
Plot the results
evo.plot_popgen(mod)
From here you can continue to run the model for more steps and plot the results
```

For a more in-depth walkthrough check out the evodoodle_notebook.ipynb jupyter notebook or evodoodle_notebook.py python script. For a complete lab activity with conservation-themed challenges, check out the evodoodle_lab.ipynb jupyter notebook.
Owner
- Name: Anusha Bishop
- Login: AnushaPB
- Kind: user
- Company: UC Berkeley
- Twitter: anusha_bishop
- Repositories: 3
- Profile: https://github.com/AnushaPB
GitHub Events
Total
- Watch event: 1
- Delete event: 2
- Push event: 14
- Pull request event: 1
- Create event: 4
Last Year
- Watch event: 1
- Delete event: 2
- Push event: 14
- Pull request event: 1
- Create event: 4
Dependencies
- python 3.12.4 build
- actions/checkout v4 composite
- docker/login-action v3 composite
- bitarray *
- geonomics *
- geopandas *
- matplotlib *
- msprime *
- nlmpy *
- numba *
- numpy *
- pandas *
- pygame *
- rasterio *
- scikit-learn *
- scipy *
- seaborn *
- shapely *
- statsmodels *
- geonomics *
- matplotlib *
- numpy *
- pygame *
- scikit-learn *
- seaborn *