{"id":348409,"name":"L-Py","description":"L-systems were conceived as a mathematical framework for modeling growth of plants.","url":"https://github.com/openalea/lpy","last_synced_at":"2026-04-29T20:00:32.271Z","repository":{"id":3364450,"uuid":"49213209","full_name":"openalea/lpy","owner":"openalea","description":"An open source python version of the Lindenmayer Systems.","archived":false,"fork":false,"pushed_at":"2026-02-11T22:11:59.000Z","size":18818,"stargazers_count":86,"open_issues_count":15,"forks_count":31,"subscribers_count":11,"default_branch":"master","last_synced_at":"2026-04-27T19:02:49.878Z","etag":null,"topics":["3d","lsystem","lsystem-plant-generator","openalea","python"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openalea.png","metadata":{"files":{"readme":"README.rst","changelog":"ChangeLog.txt","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-01-07T15:37:39.000Z","updated_at":"2026-04-25T02:49:04.000Z","dependencies_parsed_at":"2025-10-27T10:22:27.765Z","dependency_job_id":"a2626b00-de0d-45bc-95f7-490a47e38224","html_url":"https://github.com/openalea/lpy","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/openalea/lpy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openalea%2Flpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openalea%2Flpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openalea%2Flpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openalea%2Flpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openalea","download_url":"https://codeload.github.com/openalea/lpy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openalea%2Flpy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32408919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T02:37:21.628Z","status":"ssl_error","status_checked_at":"2026-04-29T02:36:50.947Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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"}},"owner":{"login":"openalea","name":"OpenAlea","uuid":"1106941","kind":"organization","description":"OpenAlea is an open source project aimed at the plant research community. It includes modules to analyse and model growth and functioning of plant architectures","email":null,"website":"http://openalea.rtfd.io","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1106941?v=4","repositories_count":54,"last_synced_at":"2024-04-24T06:01:48.372Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/openalea","funding_links":[],"total_stars":293,"followers":44,"following":0,"created_at":"2022-11-03T16:02:38.060Z","updated_at":"2024-04-24T06:02:01.618Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openalea","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openalea/repositories"},"packages":[],"commits":{"id":11685967,"full_name":"openalea/lpy","default_branch":"master","total_commits":811,"total_committers":26,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":31.192307692307693,"dds":0.3193588162762022,"past_year_total_commits":49,"past_year_total_committers":3,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":16.333333333333332,"past_year_dds":0.24489795918367352,"last_synced_at":"2026-04-29T19:24:11.421Z","last_synced_commit":"4a365a3fbcb5cde4305e5e43db1d661404973591","created_at":"2026-03-14T09:35:11.576Z","updated_at":"2026-04-29T19:23:56.619Z","committers":[{"name":"Frederic Boudon","email":"frederic.boudon@cirad.fr","login":"fredboudon","count":552},{"name":"Christophe Pradal","email":"christophe.pradal@inria.fr","login":"pradal","count":48},{"name":"Ethan Margaillan","email":"ethan.margaillan@gmail.com","login":"Ethan13310","count":44},{"name":"baugetfa","email":"fabrice.bauget@cirad.fr","login":"baugetfa","count":37},{"name":"Anthony SCRIVEN","email":"scriven.anthony@gmail.com","login":"Antoki","count":28},{"name":"Jonathan LEVY","email":"23365238+j-levy","login":"j-levy","count":18},{"name":"Thomas Cokelaer","email":"cokelaer@gmail.com","login":"cokelaer","count":15},{"name":"benoit_g","email":"julien1.benoit@epitech.eu","login":null,"count":10},{"name":"cauvin_m","email":"cauvin_m@epitech.eu","login":null,"count":8},{"name":"Christian Fournier","email":"Christian.Fournier@inra.fr","login":"christian34","count":6},{"name":"CABEL Tristan","email":"tristan.cabel@inria.fr","login":"tristancabel","count":6},{"name":"Julien Coste","email":"julien.coste@inria.fr","login":null,"count":6},{"name":"Julien Wintz","email":"julien.wintz@inria.fr","login":"jwintz","count":5},{"name":"jvail","email":"6503378+jvail","login":"jvail","count":5},{"name":"Christophe Godin","email":"christophe.godin@inria.fr","login":"cgodin","count":4},{"name":"Etienne Farcot","email":"etienne.farcot@inria.fr","login":null,"count":3},{"name":"Mik Cieslak","email":"mikolaj.cieslak@inria.fr","login":null,"count":3},{"name":"Eric Moscardi","email":"eric.moscardi@gmail.com","login":"ricomos","count":2},{"name":"Romain Fernandez","email":"romainfernandez06@gmail.com","login":"Rocsg","count":2},{"name":"Julien Wintz","email":"Julien Wintz julien.wintz@inria.fr","login":null,"count":2},{"name":"Camille Chambon","email":"cchambon@grignon.inra.fr","login":null,"count":2},{"name":"karamoko","email":"karamoko.samassa@inria.fr","login":"KaramokoS","count":1},{"name":"Arthur Luciani","email":"arthur.luciani@inria.fr","login":null,"count":1},{"name":"David Da Silva","email":"dodasilva@ucdavis.edu","login":null,"count":1},{"name":"Guillaume Baty","email":"guillaume.baty@inria.fr","login":"gbaty","count":1},{"name":"Daniel Barbeau","email":"daniel.barbeau@sophia.inria.fr","login":"dbarbeau","count":1}],"past_year_committers":[{"name":"baugetfa","email":"fabrice.bauget@cirad.fr","login":"baugetfa","count":37},{"name":"Christian Fournier","email":"Christian.Fournier@inra.fr","login":"christian34","count":6},{"name":"pradal","email":"christophe.pradal@cirad.fr","login":"pradal","count":6}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/openalea%2Flpy/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-29T00:00:10.453Z","repositories_count":6223003,"commits_count":899915120,"contributors_count":34898902,"owners_count":1147513,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"openalea/lpy","html_url":"https://github.com/openalea/lpy","last_synced_at":"2026-04-27T19:02:06.663Z","status":"error","issues_count":7,"pull_requests_count":7,"avg_time_to_close_issue":115754435.0,"avg_time_to_close_pull_request":9777233.833333334,"issues_closed_count":2,"pull_requests_closed_count":6,"pull_request_authors_count":4,"issue_authors_count":6,"avg_comments_per_issue":3.0,"avg_comments_per_pull_request":0.42857142857142855,"merged_pull_requests_count":5,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":3,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":6540718.0,"past_year_avg_time_to_close_pull_request":595518.75,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.3333333333333333,"past_year_avg_comments_per_pull_request":0.4,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":4,"created_at":"2025-08-29T14:52:13.584Z","updated_at":"2026-04-27T19:02:06.663Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/openalea%2Flpy","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/openalea%2Flpy/issues","issue_labels_count":{"question":1,"release2025":1},"pull_request_labels_count":{"sync":1},"issue_author_associations_count":{"NONE":4,"CONTRIBUTOR":3},"pull_request_author_associations_count":{"CONTRIBUTOR":6,"NONE":1},"issue_authors":{"pradal":2,"baugetfa":1,"azazdeaz":1,"siulkilulki":1,"deltayoung":1,"22343522":1},"pull_request_authors":{"christian34":3,"pradal":2,"baugetfa":1,"fredboudon":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-29T00:00:10.439Z","repositories_count":14445349,"issues_count":34175535,"pull_requests_count":112225290,"authors_count":11248883,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"question":1,"release2025":1},"past_year_pull_request_labels_count":{"sync":1},"past_year_issue_author_associations_count":{"CONTRIBUTOR":3},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":4,"NONE":1},"past_year_issue_authors":{"pradal":2,"baugetfa":1},"past_year_pull_request_authors":{"christian34":3,"baugetfa":1,"pradal":1},"maintainers":[],"active_maintainers":[]},"events":{"total":{"ReleaseEvent":1,"DeleteEvent":6,"PullRequestEvent":5,"IssuesEvent":11,"WatchEvent":14,"IssueCommentEvent":20,"PushEvent":27,"PullRequestReviewEvent":1,"CreateEvent":6},"last_year":{"ReleaseEvent":1,"DeleteEvent":6,"PullRequestEvent":5,"IssuesEvent":11,"WatchEvent":12,"IssueCommentEvent":17,"PushEvent":27,"PullRequestReviewEvent":1,"CreateEvent":6}},"keywords":["3d","lsystem","lsystem-plant-generator","openalea","python"],"dependencies":[{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2024-11-15T05:42:46.125Z","updated_at":"2024-11-15T05:42:46.125Z","repository_link":"https://github.com/openalea/lpy/blob/master/setup.py","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/openalea_ci.yml","sha":null,"kind":"manifest","created_at":"2025-10-27T10:22:24.362Z","updated_at":"2025-10-27T10:22:24.362Z","repository_link":"https://github.com/openalea/lpy/blob/master/.github/workflows/openalea_ci.yml","dependencies":[]}],"score":7.873217054862742,"created_at":"2026-03-14T09:35:12.399Z","updated_at":"2026-04-29T20:00:32.279Z","avatar_url":"https://github.com/openalea.png","language":"C++","category":"Biosphere","sub_category":"Plants and Vegetation","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":".. image:: https://img.shields.io/badge/License-GPL-blue.svg\n   :target: https://opensource.org/licenses/GPL-3.0\n\n.. image:: https://github.com/openalea/lpy/actions/workflows/openalea_ci.yml/badge.svg\n    :target: https://github.com/openalea/lpy/actions/workflows/openalea_ci.yml\n    :alt: Github Actions Continuous Integration Status\n\n.. image:: https://ci.appveyor.com/api/projects/status/8bd8xhc9wy0bee0k/branch/master?svg=true\n   :target: https://ci.appveyor.com/project/fredboudon/lpy\n   :alt: AppVeyor Continuous Integration Status\n\n.. image:: https://readthedocs.org/projects/lpy/badge/?version=latest\n    :target: https://lpy.readthedocs.io/en/latest/?badge=latest\n    :alt: Documentation Status\n\n\n=======\nL-Py\n=======\n\nL-systems were conceived as a mathematical framework for modeling growth of plants. \nL-Py is a simulation software that mixes L-systems construction with the Python high-level modeling language. \n\nIn addition to this software module, an integrated visual development environment has been developed that facilitates the creation of plant models.\nIn particular, easy to use optimization tools have been integrated. \nThanks to Python and its modular approach, this framework makes it possible to integrate a variety of tools defined in different modeling context, in particular tools from the OpenAlea platform. Additionally, it can be integrated as a simple growth simulation module \ninto more complex computational pipelines.\n\n**L-Py** is released under a **CeCILL** license, which is compatible to the **GNU GPL**.\n\n.. image:: doc/_images/screenshot2-3d.png\n    :scale: 50% \n\n=======\nGallery\n=======\n\n.. image:: doc/_images/gallery/gallery.png\n    :scale: 50% \n\nExamples of models created with L-Py. Images credits: C. Godin, J. Chopard, F. Boudon. Models credits: C. Godin, F. Boudon, F. Normand, I. Grechi, E. Costes, M. Beziz, Y. Caraglio et al.\n\n=============\nInstallation\n=============\n\n\n``L-Py`` distribution is based on the ``conda`` software environment management system.\nTo install conda, you may refer to its installation page: https://docs.conda.io/projects/conda/en/latest/user-guide/install/\n\nTo install L-Py, you need to create an environment (named for instance lpy) :\n\n.. code-block:: bash\n\n        \u003e\u003e\u003e conda create -n lpy openalea.lpy -c openalea3 -c conda-forge\n\nThe package ``openalea.lpy`` is retrieved from the ``openalea3`` channel (developement) and its dependencies will be taken from ``conda-forge`` channel.\n\nThen, you need to activate the L-Py environment\n\n.. code-block:: bash\n\n        \u003e\u003e\u003e conda activate lpy\n\nAnd then run L-Py\n\n.. code-block:: bash\n\n        \u003e\u003e\u003e lpy\n\n=============\nDocumentation\n=============\n\nDocumentation is available at `\u003chttp://lpy.readthedocs.io/en/latest/\u003e`_\n\nHelp and Support\n----------------\n\nPlease open an **Issue** if you need support or you run into any error (Installation, Runtime, etc.).\nWe'll try to resolve it as soon as possible.\n\n=============\nAuthors\n=============\n\nL-Py was mainly developped by Frédéric Boudon with different contributions from Christophe Godin, Christophe Pradal et al.\n\n\n==============\nCitation\n==============\nIf you find our work useful in your research, please consider citing:\n\n   - F. Boudon, T. Cokelaer, C. Pradal, P. Prusinkiewicz and C. Godin, L-Py: an L-system simulation framework for modeling plant architecture development based on a dynamic language, Frontiers in Plant Science, 30 May 2012.\n\n\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["arabidopsis-thaliana","hydraulic-modeling","root","root-system"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/348409","html_url":"https://ost.ecosyste.ms/projects/348409"}