# ¶Terminology

## ¶AdonisFX Asset Definition

A JSON file containing the settings, paintable maps and input connections of all AdonisFX nodes of an asset. This file is generated by the AdonisFX Exporter UI from a fully configured scene. Then, it can be loaded and applied onto the asset in a different scene thanks to the AdonisFX Importer UI. This file is referenced later on as *AAD*.

## ¶Constraints

Constraints are rules that an AdonisFX solver applies during simulation to ensure that the relationship between elements involved in the simulation is maintained, such as distance between geometry points, distance between geometry points and external attachments, rig joints or external meshes, etc. The catalog of constraints is presented below.

**Attachment Constraint**. An attachment constraint defines the relationship between a geometry point and an external transform object. During simulation, an attachment constraint will try to keep the geometry point at a constant location relative to the transform.

**Distance Constraint**. A distance constraint defines the relationship between two points of a geometry. During simulation, distance constraints will try to keep the edge lengths of the mesh at rest.

**Fiber Constraint**. A fiber constraint defines the relationship between two points of a muscle geometry. It is an specialization of the distance constraint where the muscle fibers flow is taken into consideration to emulate the behavior of a real fiber contraction.

**Hard Constraint**. A hard constraint defines the location of a geometry point in the tangent space of a polygon. This constraint type is similar to the attachment constraint but in this case the transformation used is the one given by the tangent space at the closest point on an external geometry.

**Slide Constraint**. A slide constraint defines the distance between a geometry point and a surface. This constraint allows the point to travel along the surface. During simulation, this constraint will try to keep the point at a constant distance to the surface in a given radius.

**Slide Collision Constraint**. A slide collision constraint is an extension of a slide constraint that includes information about the relative orientation of the point against the surface (inside/outside) plus the ability to allow the point to be closer to the surface up to a given threshold.

**Slide On Segment Constraint**. A slide on segment constraint defines the relationship between a geometry point and a segment defined by two transform objects (i.e. two joints of a rig). This constraint aims to keep the point at a certain distance to the segment but with the possibility of traveling along the segment. It also includes a restriction by angle, preventing the simulated point to twist around the segment.

**Soft Constraint**. A soft constraint defines the relationship between a geometry point and a another point on a external geometry. This constraints aims to keep the point at a certain distance to the external geometry point without any restrictions of relative orientation.

**Uber Constraint**. A uber constraint is a compound of hard, slide and soft constraints.

**Volume Constraint**. A volume constraint defines the volume at rest of a geometry. During simulation, this constraints will try to preserve the volume of the geometry with the ability to introduce volume gain or lose modulated by the volume ratio parameter.

## ¶Locator

Locators are intended to visualize the output of an AdonisFX sensor. There are three types of locators that require a specific number of inputs and adopt custom shapes in the viewport: AdnLocatorPosition (a squared box at the location of a node), AdnLocatorDistance (a parallelepiped with a line connecting two nodes) and AdnLocatorRotation (an angle with two segments connecting three nodes). Each type is associated with its homologous sensor.

## ¶Muscle

**AdnMuscle** is an AdonisFX solver for muscle simulation including volume preservation. It allows to apply dynamics such as fibers contraction and volume gain to a geometry.

## ¶Muscle Patches

A muscle patch is a group of connected geometry vertices that represent an internal muscle projected onto the skin. A muscle patch is not an actual modelled geometry. Muscle patches are used by AdnSimshape solver for facial simulation, The muscle patches of a facial geometry can be generated with the Learn Muscle Patches Tool which applies Machine Learning techniques to estimate the distribution of muscles based on the set of facial expressions that a facial rig can reproduce.

**AdonisFX Muscle Patches File**. The AdonisFX Muscle Patches File is a propietary file format that stores the distribution of muscle patches generated by the Learn Muscle Patches tool. The file extension is `amp`

.

## ¶Ribbon Muscle

The ribbon muscle or **AdnRibbonMuscle** is an AdonisFX solver for muscle simulation. It allows to apply dynamics such as fibers contraction to a planar geometry.

## ¶Sensor

Sensors are nodes to measure positions, distances, angles, velocities and accelerations. There are three types of sensors that require different number of input transform objects: AdnSensorPosition (one single input to compute its velocity and acceleration), AdnSensorDistance (two inputs to compute the distance between them and their relative velocity and acceleration) and AdnSensorRotation (three inputs to compute the angle between them and the angular velocity and acceleration). Each type is associated with its homologous locator that will allow to visualize the output values.

## ¶Simshape

Simshape or **AdnSimshape** is an AdonisFX solver for facial simulation. It allows to apply dynamics on top of the deformation driven by a facial rig. Also, it has the ability to mimic the change in rigidity of the skin due to the activation of the internal facial muscle patches.

## ¶Skin

Skin or **AdnSkin** is an AdonisFX solver for skin and fascia simulation. It allows to apply dynamics to the skin of a character to produce realistic effects like wrinkles.