AERO User Guide
===============

AERO is started with the command
  xaero

(be sure to have the file "xaero" installed in your local "bin"
 directory and the file "XAero" in your local "app-defaults" directory.
 In case of problems: place both files in your home directory and start
 from there)

You may start the program with command line parameters to compute a sequence
off-line (in batch mode). 
 
Command line parameters are :

 -b         run program in batch mode
 -f  name   specify input file of sequence or world (single state)
 -s  name   specify output file for sequence
 -nb count  number of images to be computed for sequence

Without command line parameters, the program starts in interactive mode
and displays the editor window. Scenes may loaded from file or edited
from scratch. All objects can be given material types. The regular table 
of materials may be replaced by loading another table from file, or it may
be edited (only possible if at least a single object is in the scene).


EDITOR WINDOW & OBJECT WINDOW
-----------------------------
New objects may be selected from the menu "insert new object": sphere, 
cylinder, cuboid (box), immovable point or plane. They appear in the center 
of the coordinate system and may be translated using cursor keys in one 
of the 2D views or the appropriate buttons in the object window. Objects may 
be rotated using the buttons in the object window. For each object, material 
and color may be set independently. The material determines an objects 
density, which together with its volume determines its weight. 
However, one may choose button "no gravitation" to inhibit the gravitational 
force on an object.  Button "fixed" locks an object in its position (it cannot 
be moved by gravitation or other forces, e.g. collision with moving objects).

Objects may be selected one after the other by pressing the "select next object"
button in the main window. A selected object may be deleted by pressing the 
appropriate button or liked to another object by selecting one of the link 
types: rod, spring, damper or joint. The object to be linked with and some 
parameter have to be specified. The link position is displayed with an "X". 
Links may be removed by first selecting the link and then deleting the selected 
link by pressing the appropriate buttons.

Forces may be exerted onto objects (button "add force"): directed force (always
directed to the current position of another object), force with respect to 
an object, and force with respect to the coordinate system. The target point 
and the goal position (directed force) or the direction (other forces) have 
to be specified together with the duration and strength of the force.

Quite a number of parameters for performing the rigid body simulation
may be entered from the parameters menu (e.g. setting the gravity value,
frames per second ratio, or the computation and simulation methods). 

The buttons "zoom in" and "zoom out" change the camera zoom. Button step
computes a single successor image according to the rules selected. Note,
this function cannot be un-done.


ANIMATION WINDOW
----------------
Button "Animation" opens the animation window with all objects in their
current state. Note, not all image frames computed will also be stored!
Only those image frames marked as "sync points" will be stored (use button
"sync point" / "no sync point" for setting/unsetting). Similar to movie
editing, cuts may be inserted into an animation sequence by means of the
button "same scene" / "new scene".

The animation may be controlled via the buttons representing the functions
of a video recorder. For returning to the editor window, press button "close".


CALCULATION PARAMETERS
----------------------

integration step width
error control
accuracy between steps
min. step width
max. step width

The simulator integrates the acceleration and velocity to compute the
positions of the objects. It uses a Runga-Kutta process to do this. If
the error control is not set, it is done with the constant
time-step-rate of "integration step width". If the user choose "error control",
the value in "accuracy between steps" is used to compute a step rate,
which lies between min. and max. step width.


collision detection
collision step width
max. resting speed
min. penetration depth
min. sliding speed
min. rolling speed
spring impact

If the collision detection is active, at least every "collision step
width" a collision detection is invoked to determine if objects
penetrate each other. The collision detection routine generates a list
of collision points with the velocity and penetration depth. The
collision velocities that are lower than the "max. rest speed" are
handled as touching, all others as impact. The penetration depth should
always be greater than the "min. penetration depth". The "min. sliding
speed" and "min. rolling speed" determine the type of friction which
is applied: static or dynamic friction. Normally, an analytic solution
to determine the velocities after an impact is used. The computation
method by using springs and dampers (penality-method) for the
collision handling is used for the handling of the touching process
and can also be applied to impacts when "spring impact" is activated. 
Please note that the material constants of the material-table are used 
in the analytical and penality method.


random gravitation
random gravitation rate

By setting "random gravitation" a random value is added to the gravity 
applied at every object.


joint damping
joint spring constant
rod damping
rod spring constant
min. spring stretching

The upper values are necessary because of the approximation of a "rod" and 
a "joint" by a spring and damper pair. 


air resistance
cw for sphere
cw for cuboid
cw for cylinder

A simplified air resistance can be activated, which uses the projected 
body-plane and the cw-value to compute a force opposing the direction of
movement. 

