Daisy World – cellular automata style

Planet where only two species of white and dark flowers exist was introduced to me as classic concept supporting Gaia hypothesis during very thought provoking seminar. This seemingly simple model, merely thought experiment, brought interesting insights on global ecosystems. Idea that remarkably simple feedback responses can have impact on global variables was very interesting. Fact that two seemingly competing species can be actually in some kind of symbiosis increasing survival chance for both of them was just incredible.

More formal introduction to this idea can be found here. Less formal here and here.

I knew I had to check it myself. MS Excel style. Cellular automata style!

Clock

Click to download file.
CHANGE EXTENSION FROM “XLSX” TO “XLSM”!

What is this spreadsheet?

So here it is, my small world: square containing 30×30 cells. Those are 900 plots fertile, grey land that can be inhabited by shiny white or ebony black daisy. Plot has certain probability of germinating daisy each cycle (“day”). This probability will depend on temperature and species’ preferences. Once grown, daisy has certain probability to make it to the next cycle.

Actually, how light and how dark each plant is can be freely changed by user. This is done by manipulating cells with “albedo” value for each type. One is also free to play with parameters describing temperature preferences – optimal average temperature of growth, width of preference distribution and scale factor. Also, through math trick I am very proud of, one can even pick average lifespan of daisies. Once again it is measured in “cycles” that can be regarded as “days”.

Remaining parameters are:

  • minimal (starting) and maximal (finish) luminosity of star that shines over our little planed.
  • length of simulation, measured in cycles (“days”)as well.

And that’s it! At least in “Linear” type of simulation when we observe how population fluctuates when luminosity of star changes from minimal to maximal values over chosen time span.

I have added one more trick in separate sheet: “Cyclic” simulation, where user can define length of periods that can be regarded as “years” on the planet. Through chosen length of “period” values of luminosity fluctuate in simple sinusoidal manner between minimal to maximal value.

And now it is definitely it.

Only 13 variables. So many possibilities!

What is this purpose?

Look, with this simple setup, I managed to totally recreate graphs describing planet’s temperature and populations of daisies over time! How cool is that?

Daisies

Looking at fluctuating mode I could establish what are minimal and maximal values of luminosity, that are appropriate for plants. Having that, I could see if changing germination probability and/or distribution impacts global greenery coverage…

Seriously, for one week I was neglecting family, it was SUCH fun.

Why?

I did mentioned clever mathematical trick about picking average age of daisies. I like it, because it is truly “average” value, not fixed thing. Each iteration every daisy has the same chance of being victim of cruel word and fertilizing plot for next generations. This probability is chosen based on average age.

Secondly, amount of things about stability, climate, tipping points I could witness when cells were changing colors was remarkable.

There are interesting lessons learned here in this little project. It was definitely worth it.

***

PS. I see that something happened with wordpress tolerance towards spreadsheets with macros. In order to share my work with broader audience I turn to ol’ trick of leaving user to change file extensions manually.



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s