File:Groimp.png | |
File:Groimp-ui.png | |
Paradigm | multi-paradigm: educational, procedural, rule-based, simulation |
---|---|
Designed by | Ole Kniemeyer |
First appeared | 2003 |
Stable release | 1.4.2
/ June 6, 2013 |
Typing discipline | static |
OS | Cross-platform (JVM) |
License | GPL |
Filename extensions | gsz, rgg, xl |
Website | www |
Influenced by | |
GROGRA |
GroIMP (Growth Grammar-related Interactive Modelling Platform) is an integrated modeling environment specialised in 3-d plant modelling. The integrated programming language XL (eXtended L-System language) is an on Java programming language based implementation of relational growth grammars.
About
editGroIMP was designed and authored by Ole Kniemeyer at the Brandenburg University of Technology.[1] Today, work is continued at the University of Göttingen at the Department Ecoinformatics, Biometrics and Forest Growth.
Many scientific articles have been published using GroIMP.[2]
Features
editVersions
edit- 1.5 (beta version, planed release Oct. 2016)
- 1.4.2 (2013-06-06)
- 1.4.1 (?)
- 1.4 (?)
- 1.3 (2012-02-23)
- 1.2.1 (not official)
- 1.2.0 (2011-03-04)
- 1.1.0 (2010-04-30)
- 1.0.0 (2009-09-24)
- 0.9.8 (2008-04-19)
- 0.9.7 (2007-10-30)
- 0.9.6 (?)
- 0.9.5 (?)
- 0.9.4 (?)
- 0.9.3.2 (?)
User interface
editThe graphical user interface of the GroIMP software provides
- Editor panel (using on JEdit)
- 3-d View with four view mode: OpenGL Proteeus, OpenGL, Wireframe
- 2-d Graph View
- Attribute Editor
- Message Window
- XL Console
- Preference Window
- Explorers for, e.g., datasets, files, textures, shaders, objects, light distributions
XL
editSyntax
editExample
edit"Hello, world!" program
editThe traditional "Hello, world!" program can be written in XL as:
// definition of a module as an extension of a sphere object
module A(float len) extends Sphere(0.1) {
{setShader(GREEN);}
}
// model initialisation; set axiom to a single 'A'
protected void init () [
Axiom ==> A(1);
]
// rule definitions
public void run () [
// search for all A's and replace them by the right-hand side of the rule
A(x) ==> F(x) [RU(30) RH(90) A(x*0.8)] [RU(-30) RH(90) A(x*0.8)];
]
Running the model will generate a three-dimensional binary tree. In this model A can be interpreted as bud while F could be an internode. In this scene, the rule could be translated as: Search for all buds and replace them by an internode and create two branches with an new bud on the top of each.
External links
editReferences
edit- Kniemeyer, O.; Barczik, G.; Hemmerling, R.; Kurth, W. Relational Growth Grammars - a parallel graph transformation approach with applications in biology and architecture In: Applications of Graph Transformations with Industrial Relevance AGTIVE ’07 (eds.: A. Schürr, M. Nagl, A. Zündorf), International Workshop Kassel Oct. 10-12, 2007, Lecture Notes in Computer Science 5088, Springer, Berlin etc. 152-167.
- Hemmerling, R.; Kniemeyer, O.; Lanwert, D.; Kurth, W.; Buck-Sorlin, G.H. The rule-based language XL and the modelling environment GroIMP illustrated with simulated tree competition Functional Plant Biology, 2008, 35(9/10):739–750.
- ^ Ole Kniemeyer (2008). Design and Implementation of a Graph Grammar Based Language for Functional-Structural Plant Modelling (Thesis). Brandenburg University of Technology. Retrieved October 5, 2016.
- ^ "GroIMP References".