A binding provides an XML description of the mapping from a BML behavior to one or more units on the motor plan. While bindings are in principle Engine-dependent, several shared concepts occur in multiple bindings.


A binding contains different specs, each mapping from a BML behavior with certain properties to one or more motor units.

motor unit definition

Defines the motor unit for the spec. This is Engine dependent. For example:

<FaceUnitSpec type="faceLexeme">
  <FaceUnit type="Morph"/>

This hooks up the spec to a motor unit that morphs the face.


Each spec has a type, which specifies from which BML behavior type it maps (e.g. gesture, faceFacs, ..).


Constraints specify which BML behavior parameters should be satisfied to bind this specific spec to a BML behavior

For example:

<FaceUnitSpec type="faceLexeme">
    <constraint name="lexeme" value="smilemouth"/>

binds this spec to the BML behavior

<faceLexeme lexeme="smilemouth" ... />

A namespace attribute can be used in constraint to refer to parameters in an external namespace (that is: not the default bml 1.0 namespace).

For example:

<MotionUnitSpec type="gaze">
    <constraint name="influence" value="EYES"/>	
    <constraint namespace="" name="dynamic" value="true"/>			

binds this spec to the BML behavior

<gaze xmlns:bmlt="" influence="EYES" bmlt:dynamic="true"... />


The parametermap maps parameter values from BML to the motor unit. For example:

  <parameter src="amount" dst="intensity"/>

sets the value of BML behavior parameter "amount" to motor parameter "intensity".


Set default parameter values for a motor unit. Such defaults are overwritten by values set through the parametermap.


  <parameterdefault name="intensity" value="1"/>
  <parameterdefault name="targetname" value="KevinHead.mesh-Smile"/>