Whenever the VRGestureRecognizer is called without a string indicating a custom Gesture-Data directory, it assumes the directory "gesture_dir", in which it will find a file named "gesture.dat" containing in the first line the number of features listed in this file. This is followed by a list of names of features each on on line. The spelling of these features has to be exactly the same as that of the actual gesture-data-files. These are named with the extension .dat so that a gesture named "select" in the gesture.dat file would have a file "select.dat" associated with it and in the same directory as the gesture.dat file.

Each gesture-data-file has four columns and a row for each feature that the system uses. In the columns are listed (from left to right):
Minimum, Maximum, Average & normalised Standard Deviation.
1221.332 1258.312 1234.323 0.0343

The current system doesn't make use of the Min and Max values. It relies on error-minimisation using the average value to make its judgment. The normalised standard deviation is used as an indication of how good a feature recognises a particular gesture. The validator also makes use of the average value and the normalised standard deviation to examine if two gestures lie too close on the value-line for a given feature.

When selecting gestures for a new system several factors have to be taken into account:

  • Consistency
    When learning the gesture or gathering data for the evaluator, it has to be seen to it, that successive iterations of the same gesture are done with as little alteration as possible.
  • Selecting the right gesture
    New gestures can easily be tested with the VRGestureRecognizer without having been implemented yet. As a rule of thumb: If by inspection the different features return similar values for successive iterations of the gesture (e.g. Feature0 returns {12.3,13.1,12.8,...}, Feature2 returns (103.2,105.1,103.9,...} and so on), then the features will reliably identify the gesture. Care has still to be taken not to select several gesture with the same featurevalues.
  • Thinking like a machine
    The system has a limited set of features it can identify in a gesture. It is useful to understand these features to be able to select gestures efficiently. A "kinky" feature for example can determine how many edges or "kinks" are in a gesture. Selecting gestures that only differ by curvature would be a poor choice. This principle also applies when using the system as an input-device: When executing different gestures care should be taken to stress the features of a particular gesture.

A complete list of the deafult gestures (used for testing) can be found below... The black arrows indicate the starting direction or general direction of the gesture. This is important seeing as even though the regocnition process is independent of rotation and scale of the gestures some features are not independent of orientation (e.g. drawing a circle clock-wise or anti-clock-wise). A desciption of the gesture can be found in the middle column and and example of how it may be used in the right-most column.



This gesture is almost identical to the Cross
gesture, with an additional leg at the end.

As can be seen, in praxis gestures are
often not fully completed.


This gesture has recognition rates of
about 99%. The extrodinarily high
curvature and length of the gesture
ensure this.


This gesture is a difficult one to
recognise. If drawn too smoothly
it resembles an overlooped Select.
If one side is exaggerated it might
look like an arrow.


The Hill was introduced to show
that the new system would be able
to cope with similar gestures better
than the old one. It is very like a
rotated Tick (N.B. rotation is ignored
by the system) but without the
"kink" in it.


In the new system Select has come
from being one with a very high error
rate to one with a very high success
rate. As can be seen in the picture it
it is difficult to actually draw a round
circle and edges are easily introduced.


The Scribble feature is in the midfield
of troublesome gestures. While the
Circles, Select and Tick are basic-
ally never mistaken, the Scribble and
Hill are decent gestures. The Cross
and Arrow gestures are the ones most
likely to be confused.


Being one of the more reliable
gestures, it is still necessary to draw
the Tick in the sense indicated by the
picture. While it is true that rotation
and scale are largely ignored by the
system, this doesn't hold for
orientation, since it affects the curvature
of the gesture (positive or negative).