                          Introduction
-----------------------------------------------------------------

 Dust operates on different kinds of structures:
  objects, particle-objects, windows, textures and brushes.

 Every structure can be reached specifiing its identifier, there
 are the following identifiers:
  objectID, particleID, windowID, textureID and brushID.

 Dust is a kind of a programming language so it interpretes
 commands, knows mathematical expressions, global variables
 and can perform loops.

 All commands have an unique structure:
  identifier([<argument1>[,<argument2>[,...]]]).
 Identifiers are lower case, arguments enclosed in "[" and "]" are
 optional.

 All numeric arguments can be omitted as mathematical expressions
 containing global variables, rounding is done automatically, e.g.
  "load(4/3,obj)" is identical to "load(1,obj)".

 You can define global variables using the CALC-command or the
 online-calculator-mode, e.g.:
  "calc("a=3*sin(46")".

 Strings, e.g. filenames can contain special format-characters.
 If a Dust-command recognises such a format-character it inserts the
 recent value of the loop-counter. The loop-counter is equal to the
 loop-variable of the innerst FOR-loop or the value ACTVAL outside of
 loops.
 Example:
  "load(1,obj.%)" will load "obj.0034" if the loop-counter is 34.


 If you want to lineracombine some F/X you will need loops and the
 FRAME-commands.
 Example:
  The command
   "XYZ(<objectID>,<n>,<filename>)"
  performs such an effect creating n objects. In case of a linear-
  combination it's not necessary to save all object to disk.
  Usually there is a complementary command of the structure
   "XYZFRAME(<objectID>,<n>,<i>,<dest>)" which only creates the
  i-th object of the sequence and stores it to buffer dest.
 For more explanation the example-script "interfere.bat".

