The IVL language is designed to be a rapid prototyping language for
VRML/Inventor graphics programming. IVL programs are much shorter than
functionally-equivalent C++ implementations and require no compilation
as the language is interpreted---that is, commands are executed and the
result apparent in the viewer window immediately.
IVL commands resemble English rather than a typical programming
language. This feature makes it easy for even
non-programmers to assemble and manipulate scenes.
IVL has four basic capabilities:
Defining new graphical object classes.
New classes can be defined
as any existing scene graph and can be read from a file or from a URL.
The scene graph can be either a VRML graph or an Inventor graph.
These new classes augment the predefined, atomic classes.
Defining new graphical objects.
Objects do not exist until they are instanced.
The programmer must create objects before drawing anything.
Drawing objects in the browser window.
This amounts to modifying
the scene graph being viewed by the browser. All objects except for
the first are drawn in relation to another already-drawn object.
Moving objects according to data files.
This is a special case of keyframe animation.
The programmer can ``attach'' a data file with an x,y,z coordinate
list (one SFVec3f per line) which is used as a motion path.
The relative coordinates are placed in a SoTransform attached
to the graphics object and repeatedly updated to simulate motion.
In addition, this particular IVL implementation is capable of writing
out the scene graph at any point and can read in this graph (or
any other VRML ascii file, stored locally or at some URL)
as a new graphical object class.
Further, programs may be stored in text files and executed as if they
had been typed in manually, allowing programmatic control of the scene
graph. Applications can effect animations or control the ``behavior''
of objects in this manner.