Limits...
L-py: an L-system simulation framework for modeling plant architecture development based on a dynamic language.

Boudon F, Pradal C, Cokelaer T, Prusinkiewicz P, Godin C - Front Plant Sci (2012)

Bottom Line: In the last decade, the formalism of L-systems has emerged as a major paradigm for modeling plant development.We show that the use of dynamic language properties makes it possible to enhance the development of plant growth models: (i) by keeping a simple syntax while allowing for high-level programming constructs, (ii) by making code execution easy and avoiding compilation overhead, (iii) by allowing a high-level of model reusability and the building of complex modular models, and (iv) by providing powerful solutions to integrate MTG data-structures (that are a common way to represent plants at several scales) into L-systems and thus enabling to use a wide spectrum of computer tools based on MTGs developed for plant architecture.We then illustrate the use of L-Py in real applications to build complex models or to teach plant modeling in the classroom.

View Article: PubMed Central - PubMed

Affiliation: CIRAD, Virtual Plants INRIA Team Montpellier, France.

ABSTRACT
The study of plant development requires increasingly powerful modeling tools to help understand and simulate the growth and functioning of plants. In the last decade, the formalism of L-systems has emerged as a major paradigm for modeling plant development. Previous implementations of this formalism were made based on static languages, i.e., languages that require explicit definition of variable types before using them. These languages are often efficient but involve quite a lot of syntactic overhead, thus restricting the flexibility of use for modelers. In this work, we present an adaptation of L-systems to the Python language, a popular and powerful open-license dynamic language. We show that the use of dynamic language properties makes it possible to enhance the development of plant growth models: (i) by keeping a simple syntax while allowing for high-level programming constructs, (ii) by making code execution easy and avoiding compilation overhead, (iii) by allowing a high-level of model reusability and the building of complex modular models, and (iv) by providing powerful solutions to integrate MTG data-structures (that are a common way to represent plants at several scales) into L-systems and thus enabling to use a wide spectrum of computer tools based on MTGs developed for plant architecture. We then illustrate the use of L-Py in real applications to build complex models or to teach plant modeling in the classroom.

No MeSH data available.


The L-Py IDE with its utility windows for parameter edition.
© Copyright Policy - open-access
Related In: Results  -  Collection

License
getmorefigures.php?uid=PMC3362793&req=5

Figure 2: The L-Py IDE with its utility windows for parameter edition.

Mentions: The L-Py IDE is also inspired by programming environments such as Visual Studio (Microsoft Corporation, 2011). Its configurable interface using dockablepanelwidgets (see Figure 2) makes it possible to easily customize the working environment and its advanced development tools (profiler and debugger, etc.). The L-Py IDE incorporates two tools that help optimize models. First, a debugger shows the user the successive rule applications that occur during a derivation step with actual parameters and global variable values. The debugging can be constrained to detect the application of particular rules only. Second, a profiler provides the user with a detailed report of the time spent in each rule and function, and makes it possible to identify bottlenecks in the execution. The creation of these tools was facilitated by the introspection property of dynamic languages (introspection is the ability of a program to explore and possibly modify its own code). For instance, access at runtime to the names and values of the different variables involved in a procedure is simple in a dynamic language and facilitates, for instance, the creation of the debugger.


L-py: an L-system simulation framework for modeling plant architecture development based on a dynamic language.

Boudon F, Pradal C, Cokelaer T, Prusinkiewicz P, Godin C - Front Plant Sci (2012)

The L-Py IDE with its utility windows for parameter edition.
© Copyright Policy - open-access
Related In: Results  -  Collection

License
Show All Figures
getmorefigures.php?uid=PMC3362793&req=5

Figure 2: The L-Py IDE with its utility windows for parameter edition.
Mentions: The L-Py IDE is also inspired by programming environments such as Visual Studio (Microsoft Corporation, 2011). Its configurable interface using dockablepanelwidgets (see Figure 2) makes it possible to easily customize the working environment and its advanced development tools (profiler and debugger, etc.). The L-Py IDE incorporates two tools that help optimize models. First, a debugger shows the user the successive rule applications that occur during a derivation step with actual parameters and global variable values. The debugging can be constrained to detect the application of particular rules only. Second, a profiler provides the user with a detailed report of the time spent in each rule and function, and makes it possible to identify bottlenecks in the execution. The creation of these tools was facilitated by the introspection property of dynamic languages (introspection is the ability of a program to explore and possibly modify its own code). For instance, access at runtime to the names and values of the different variables involved in a procedure is simple in a dynamic language and facilitates, for instance, the creation of the debugger.

Bottom Line: In the last decade, the formalism of L-systems has emerged as a major paradigm for modeling plant development.We show that the use of dynamic language properties makes it possible to enhance the development of plant growth models: (i) by keeping a simple syntax while allowing for high-level programming constructs, (ii) by making code execution easy and avoiding compilation overhead, (iii) by allowing a high-level of model reusability and the building of complex modular models, and (iv) by providing powerful solutions to integrate MTG data-structures (that are a common way to represent plants at several scales) into L-systems and thus enabling to use a wide spectrum of computer tools based on MTGs developed for plant architecture.We then illustrate the use of L-Py in real applications to build complex models or to teach plant modeling in the classroom.

View Article: PubMed Central - PubMed

Affiliation: CIRAD, Virtual Plants INRIA Team Montpellier, France.

ABSTRACT
The study of plant development requires increasingly powerful modeling tools to help understand and simulate the growth and functioning of plants. In the last decade, the formalism of L-systems has emerged as a major paradigm for modeling plant development. Previous implementations of this formalism were made based on static languages, i.e., languages that require explicit definition of variable types before using them. These languages are often efficient but involve quite a lot of syntactic overhead, thus restricting the flexibility of use for modelers. In this work, we present an adaptation of L-systems to the Python language, a popular and powerful open-license dynamic language. We show that the use of dynamic language properties makes it possible to enhance the development of plant growth models: (i) by keeping a simple syntax while allowing for high-level programming constructs, (ii) by making code execution easy and avoiding compilation overhead, (iii) by allowing a high-level of model reusability and the building of complex modular models, and (iv) by providing powerful solutions to integrate MTG data-structures (that are a common way to represent plants at several scales) into L-systems and thus enabling to use a wide spectrum of computer tools based on MTGs developed for plant architecture. We then illustrate the use of L-Py in real applications to build complex models or to teach plant modeling in the classroom.

No MeSH data available.