## Example Projects for GroIMP

This page lists a couple of example projects. They can be opened within GroIMP by clicking on the hyperlinks. They will pop up in a new window.

In the new window, you will see the RGG toolbar with two menus for the activation of model dynamics: The left one invokes rules once, the right one, where the items are prefixed with "Run", invokes them repeatedly. The "Stop" button stops a repeated invocation of rules.

- Fractals
  - Koch curve
    A classical example of L-systems.
  - Tree with sympodial branching
    This simple L-system models a tree with sympodial branching. The example is based on an example in the book "The Algorithmic Beauty of Plants" of Przemyslaw Prusinkiewicz and Aristid Lindenmayer.
- FSPM
  - FSPM model
    This model simulates a mixed-species beech and spruce forest and competition for light. It was presented at the FSPM07 (5th International Workshop on Functional Structural Plant Models) in Napier, NZ.
  - Simple Rapeseed
    A structural model of a simple rapeseed plant.
  - Tree based on pipe model of branch width
    This L-system models the branching width of a tree based on the pipe model.The example is a translation of the example "tree-shedding" of the L-Studio software.
  - Tree, branch lengths defined by a function of height
    A user-defined function is used to specify the branch length at a given tree height.
  - Bush
    A bush is modelled based on an example in the book "The Algorithmic Beauty of Plants" of Przemyslaw Prusinkiewicz and Aristid Lindenmayer. This example makes use of some of GroIMP's advanced graphics features.
  - Tree with NURBS surfaces
    Stem and branches of this tree are modelled as skinned NURBS surfaces, using the `Surface` turtle command as a generalized cylinder. This is another example of GroIMP's advanced graphics features.
  - Globally-sensitive plants
  - ABC model of flower morphogenesis
    The ABC model predicts flower morphogenesis on the basis of a regulatory network. This simulation produces the wildtype and mutants.
  - Barley Breeder
- Technical Models
  - Virtual Laser Scanner
    Demonstrates the use of the virtual laser scanner to produce a point cloud of some object. The point cloud is then visualised using the PointCloud primitive.
  - GroPhysics
    The GroPhysics plugin uses JBullet for physics simulation. This example demonstrates how this can used to create a growing tree affected by gravity.
  - Simple rate assignment
    A simple example demonstrating usage of the rate assignment operator.
  - ODEs and the rate assignment operator
    The example shows the usage of the rate assignment operator `:'=` to specify the growth equations. Carbon assimilates are produced in the leaves (green spheres) and are transported via diffusion through the whole plant. For each internode, part of its carbon is converted into length.
  - Inhibitor/activator example
    An Inhibitor/activator example without using the rate assignment operator.
  - PointCloud primitive
    This example demonstrates the use of the PointCloud primitive.
  - City Generator
    A city generator designed for the seminar "Artificial Growth Processes" held at BTU Cottbus.
  - MTG-Example
    An example for loading, visualizing and modifying Multiscale Tree Graph (MTG) data in GroIMP.
  - Sierpinski triangle as graph
    An implementation of the Sierpinski triangle as graph with 3D visualization for the AGTIVE 2007 conference.
  - Complex number example and stream output
    Demonstrates use of operator overloading by implementation of a complex number class. There is a small explanation that describes how to specify operator overloads. Also demonstrates and explains how to use operator overloading to implement stream output operators similar to those in C++.
  - NURBS demo
  - NURBS demo 2
  - Water Surface
  - VRML Grid Builder
    A simple example demonstrating usage of the VRML Grid Builder.
  - Height field
- Artificial Life
  - Boids
    Demonstrates animation of virtual birds. The boids (green) follow the master (red) while staying in a group and keeping distance to their neighbours.
  - Carrot field with rodent
    This simplistic model of a carrot field contains a set of carrots that compete for light. A water vole (Arvicola terrestris, a rodent) digs a burrow system and feeds on carrot roots.
  - Game of Life
    Conway's famous Game Of Life, implemented using XL.
  - Ant simulation
    Ants are a popular subject in Artificial Life. A simplistic simulation can be implemented easily.
  - Dawkin's biomorphs
    The implementation of Richard Dawkin's biomorphs shows how genetic operators can be specified within XL.
- Others
  - Ludo Game
    An implementation of the Ludo game ("Mensch Ärgere Dich Nicht") for the AGTIVE 2007 conference.
  - How to create a nerve cell
  - Globally-sensitive lines
    Green and red growing lines that perform collision avoidance.
  - Helicopter
    Demonstration of animated objects, for instance a helicopter.
  - Molecules
    Atoms in a 2D-box, floating around and building molecules.
  - Double-star system with wooded planet
    This model shows a double-star system, according to Newton's gravitational law. A wooded planet orbits the double-star.
  - A Smart Line
    To demonstrate how you can use the class AvoidIntersection. A line grow in a certain direction and tries to avoid intersection with other volumetric objects by changing the direction of growth.
  - Snooker
    An implementation of the snooker game.
  - Veach Room
    A standard reference room to test the accuracy of rendering.