{"id":13724797,"url":"https://github.com/traitecoevo/plant","last_synced_at":"2026-01-26T03:08:27.219Z","repository":{"id":8050054,"uuid":"9461072","full_name":"traitecoevo/plant","owner":"traitecoevo","description":"Trait-Driven Models of Ecology and Evolution :evergreen_tree:","archived":false,"fork":false,"pushed_at":"2025-03-09T10:54:04.000Z","size":25713,"stargazers_count":53,"open_issues_count":70,"forks_count":20,"subscribers_count":11,"default_branch":"develop","last_synced_at":"2025-05-02T17:03:08.473Z","etag":null,"topics":["c-plus-plus","demography","dynamic","ecology","evolution","forests","plant-physiology","r","science-research","simulation","trait"],"latest_commit_sha":null,"homepage":"https://traitecoevo.github.io/plant","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/traitecoevo.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-04-16T00:30:53.000Z","updated_at":"2025-03-09T10:54:09.000Z","dependencies_parsed_at":"2024-03-17T06:07:30.090Z","dependency_job_id":"3c7b0dd3-5691-48d6-83fe-fc43d729770c","html_url":"https://github.com/traitecoevo/plant","commit_stats":{"total_commits":1507,"total_committers":9,"mean_commits":"167.44444444444446","dds":"0.27471798274717985","last_synced_commit":"0099e23af89a1ba955004a76b85d111cc16cbeca"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traitecoevo%2Fplant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traitecoevo%2Fplant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traitecoevo%2Fplant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traitecoevo%2Fplant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/traitecoevo","download_url":"https://codeload.github.com/traitecoevo/plant/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252377118,"owners_count":21738169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","demography","dynamic","ecology","evolution","forests","plant-physiology","r","science-research","simulation","trait"],"created_at":"2024-08-03T01:02:03.570Z","updated_at":"2026-01-26T03:08:22.181Z","avatar_url":"https://github.com/traitecoevo.png","language":"C++","funding_links":[],"categories":["Biosphere"],"sub_categories":["Plants and Vegetation"],"readme":"# plant: A package for modelling forest trait ecology and evolution\n\n\u003c!-- badges: start --\u003e\n[![R-CMD-check](https://github.com/traitecoevo/plant/workflows/R-CMD-check/badge.svg)](https://github.com/traitecoevo/plant/master)\n[![Codecov test coverage](https://codecov.io/gh/traitecoevo/plant/branch/master/graph/badge.svg)](https://codecov.io/gh/traitecoevo/plant?branch=master)\n\u003c!-- badges: end --\u003e\n\nThe plant package for R is an extensible framework for modelling size- and trait-structured demography, ecology and evolution in simulated forests. At its core, plant is an individual-based model where plant physiology and demography are mediated by traits. Individual plants from multiple species can be grown in isolation, in patches of competing plants or in metapopulations under a disturbance regime. These dynamics can be integrated into metapopulation-level estimates of invasion fitness and vegetation structure. Accessed from R, the core routines in plant are written in C++. The package provides for alternative physiology models and for capturing trade-offs among parameters. A detailed test suite is provided to ensure correct behaviour of the code.\n\n## Citation\n\nFalster DS, FitzJohn RG, Brännström Å, Dieckmann U, Westoby M (2016) plant: A package for modelling forest trait ecology \u0026 evolution. *Methods in Ecology and Evolution* 7: 136-146. doi: [10.1111/2041-210X.12525](http://doi.org/10.1111/2041-210X.12525)\n\n## Documentation\n\nAn overview of the plant package is given by the above publication. Further background on the default `FF16` growth model is available in Falster *et al* 2011 ([10.1111/j.1365-2745.2010.01735.x](http://doi.org/10.1111/j.1365-2745.2010.01735.x)) and Falster *et al* 2017 ([10.1101/083451](http://doi.org/10.1101/083451)).\n\n`plant` comes with a lot of documentation, available at [https://traitecoevo.github.io/plant/](https://traitecoevo.github.io/plant/). Initial versions for some of the material there was also  included as supplementary material with the publication about plant, which can be accessed [here](http://onlinelibrary.wiley.com/doi/10.1111/2041-210X.12525/abstract#footer-support-info). \n\n## Package structure\n\nPlant is a complex package, using [c++14](https://en.wikipedia.org/wiki/C%2B%2B14) behind the scenes for speed with [R6 classes](https://cran.r-project.org/web/packages/R6/vignettes/Introduction.html) (via the [Rcpp](https://cran.r-project.org/web/packages/Rcpp/index.html) and [RcppR6](https://github.com/richfitz/RcppR6) packages).  In this blog post, Rich FitzJohn and I describe the [key technologies used to build the plant package](https://methodsblog.wordpress.com/2016/02/23/plant/). \n\nIf you are interested in developing plant you should read the Developer Notes.\n\n## Installation\n\n**Requirements**\n\n- You must be using R 4.1.0 or newer. At this stage the package is not on CRAN. You're options for installing are described below.\n\n- Installation requires a [c++14](https://en.wikipedia.org/wiki/C%2B%2B14) compatible C compiler (OSX \u003e= 10.10/Yosemite satisfies this, as do standard linux Ubuntu 12.04 and 14.04). On Windows machines you will need to install [Rtools](http://cran.r-project.org/bin/windows/Rtools/). When I tried this in [Rstudio](https://www.rstudio.com/), the program [automagically](https://en.oxforddictionaries.com/definition/automagically) sensed the absence of a compiler and asked if I wanted to install Rtools. Click `Yes`!\n\n**Option 1, using `remotes::install_github`**\n\nThe `plant` package can be installed direct from github using the [`remotes`](https://cran.r-project.org/web/packages/remotes/index.html) package:\n\n```r\nremotes::install_github(\"traitecoevo/plant\", dependencies=TRUE)\n```\n\nTo install a specific (older) release, decide for the version number that you want to install in https://github.com/traitecoevo/plant/releases  e.g.\n\n```r\nremotes::install_github(\"traitecoevo/plant@v1.0.0\", dependencies=TRUE)\n```\n\nwith `\"v1.0.0\"` replaced by the appropriate version number. Note, the latest version of `plant` resides on the `develop` branch, which is sporadically released. `plant` follows [semantic versioning](https://semver.org/) meaning that major version indicate a potential break in backward compatibility.\n\n**Option 2, building from source**\n\nIf familiar with [git](https://git-scm.com/) you might find it easiest to build `plant` directly from the source code. This is most useful if developing new models or strategies, or to contribute new features.\n\nFirst, clone the `plant` repository\n\n```\ngit clone https://github.com/traitecoevo/plant\n```\n\nOpen an R session in the folder, then to install dependencies run\n\n```\ndevtools::install_deps()\n```\n\nThen to compile the project\n\n```\ndevtools::install()\n```\nor \n\n```\ndevtools::load_all()\n```\n\n## Usage\n\nHere are some example publications using plant:\n\n- Falster DS, FitzJohn RG, Brännström Å, Dieckmann U, Westoby M (2016) plant: A package for modelling forest trait ecology \u0026 evolution. *Methods in Ecology and Evolution* 7: 136-146. DOI: [10.1111/2041-210X.12525](http://doi.org/10.1111/2041-210X.12525)\u0026nbsp; code: [github](https://github.com/traitecoevo/plant_paper)\n- Falster DS, Duursma RA, FitzJohn RG (2018) How functional traits influence plant growth and shade tolerance across the life cycle. *Proceedings of the National Academy of Sciences* 115: E6789–E6798. DOI: [10.1073/pnas.1714044115](http://doi.org/10.1073/pnas.1714044115)\u0026nbsp; code: [github](https://github.com/traitecoevo/growth_trajectories)\n- Falster DS, Kunstler GK, FitzJohn RG, Westoby M (2021) Emergent shapes of trait-based competition functions from resource-based models: a Gaussian is not normal in plant communities. *The American Naturalist* 198: 256–267. DOI: [10.1086/714868](http://doi.org/10.1086/714868)\u0026nbsp; code: [github](https://github.com/traitecoevo/competition_kernels)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftraitecoevo%2Fplant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftraitecoevo%2Fplant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftraitecoevo%2Fplant/lists"}