What is L-studio?

a set of sample models, primarily of plants, each stored as an
L-studio object;

a graphical browser for organizing and accessing objects on
local and remote machines;

a series of editors and other modeling tools for
creating and modifying objects; and

a library of environmental programs which simulate
environmental processes that affect plant development.

The simulators cpfg and lpfg

At the heart of L-studio are the simulator programs cpfg and
lpfg. These programs take as input an L-system file, usually
along with one or more related files,
comprised in an L-studio
object.
The simulators produce a visual representation of the model.
Depending on
the L-system, the models may be animated and/or interactively manipulated.
Optionally, the simulators may also produce various output data files.
cpfg and lpfg share a common interface (L-studio
proper). cpfg is more suitable for the rapid creation of simple
models. lpfg is particularly useful when creating complex
models.

L-studio objects

An L-studio object is a set of files kept together in a common
directory. Each of these files specifies one component of the object;
some of these files are required, and some are optional.

The L-system file (*.l) is a text file
containing the L-system which will serve as the primary input to
cpfg or lpfg. Every object must have an L-system
file.

The view file (*.v) specifies drawing and
rendering options, as well as other general parameters for cpfg
or lpfg. Every object must have a view file, though it may be
empty.

The animation file (*.a) contains parameters
which define how cpfg/lpfg will animate the
simulation. Every object must have an animation file, though L-studio
will set up a default file automatically.

A color map (*.map) defines a 256-color palette
which is used by the simulator to draw the model in colormap mode.

Alternately, a material file (*.mat) can be
used if the model is rendered with shaded polygons. Every object must
have either a color map or a material file.

Surfaces (*.s) are user-defined Bezier surfaces
which can be incorporated into 3D models; for example, to capture
the shape of leaves or flower petals.

Contours (*.con or *.cset)
are used to describe the axis or cross-section of elongated limbs,
such as stems.

Functions (*.func or *.fset) are
graphically-defined functions of a single variable that can be
incorporated into L-system models.

Control panels (*.pnl) are used to interact
with the model by manipulating parameters, or turning model features
on or off.

An environmental communication specification file
(*.e) defines how the model will communicate with an external
environmental program (*.exe). The environmental
process may optionally use additional input files.

The object description (description.txt) is a
text file which is typically used to describe the object, how it
works, how it was constructed, and so on. All objects must have a
description, though it may be empty.

The object specification files (specifications
and LSspecifications) are text files which define
object-specific parameters and are used by L-studio to determine how
to handle each particular object. Under the UNIX-based
system vlab, the specifications file is mandatory;
however, neither file is required in an L-studio object.

All L-studio objects will contain an L-system, a view file, an
animation file, an object description, and either a color map or
material file, although these may be empty or contain nothing more
than default values.

The object browser

The object browser is a tool for accessing and navigating
databases of L-studio objects. An object database is stored in an
object oriented file system, or oofs. (This
system is object oriented because it uses a
prototype-extension paradigm; if an object is a refinement
(extension) of another (the prototype), then the
extension is stored in a subdirectory of the prototype.) Using the
browser, you can navigate the oofs and open objects in L-studio.

Modifying an object in L-studio

When an object is opened in L-studio, it is copied to a temporary
location called the lab table. The lab table version can
be experimented upon in any way, and the changes will not be reflected
in the original object until the open object is saved.

When on the lab table, an object's component files can be modified
with L-studio's integrated editors. L-studio has tools to
edit almost all of the files listed above: text files such as the
L-system or object description; 2D or 3D shape files, such as
surfaces, contours, or functions; color files; panels; and options
files, like the animation file or the object's specifications.

Environmental programs

Environmental programs are one object component that is not edited
in L-studio. Instead, these environmental programs must be written in
an external programming language, and the resulting executables placed
somewhere accessible to the object: either in the object's directory,
or in a central environmental program location. L-studio comes with
several useful environmental programs: see the User's manual for environmental
programs for more information on them and how to use them.

More information

More information about modeling using L-systems can be found in the
CPFG User's Manual and the LPFG user's
manual. The manuals are available in PDF format: