Skip to main content
Version: Current (v5.0)

Tracking Standard Comparison Overview


How to read this section

This page goes over specific translations for each standard into Unified Expressions. For more concrete examples of each standard listed, please refer to the appropriate standards' documentation.

Base and Blended shapes from Unified Expressions will be matched directly with other standards' shapes. Some caveats such as unique shapes will be given more detailed explanations on how they can translate to Unified Expressions.

Table Explained

This table provides a comprehensive understanding of the relationship between various shapes and Unified Expressions:

When multiple shapes are listed in the same row, they collaboratively contribute to the formation of a specific standard shape.

~ indicates that the expression in a row is directly connected elsewhere.

indicates that the expression in a row is not tracked.

Some shapes have an extra condition (While X, Negates X) that indicates that specified cell needs the presence or absence of specific shapes to convey a specific expression accurately in order to correlate it to the other expressions in that row. This often necessitates particular adjustments (animation or blendshape) for compatibility with Unified Expressions, while maintaining anatomical consistency within the given row.

  • While signifies that a standard requires a shape to be active to match the row.
  • Negates signifies that a standard requires a shape to be inactive to match the row.

Regardless of the conditions, the shape can be converted into Unified Expressions without compromising tracking quality or expression behavior.

This section only provides a generalized comparison across all standards; for more specific information refer to the dedicated sections for each standard.

Standard Comparisons

UnifiedARKitSRanipalMeta Movement (Quest Pro)
BrowDownLeft
CheekSquintLeft
EyeSquintLeft
While EyeClosedLeft
~Eye_Left_squeeze¹~
BrowDownLeftbrowDownLeftBROW_LOWERER_L
BrowDownRight
CheekSquintRight
EyeSquintRight
While EyeClosedRight
~Eye_Right_squeeze¹~
BrowDownRightbrowDownRightBROW_LOWERER_R
BrowInnerUpbrowInnerUp~
BrowInnerUpLeft~INNER_BROW_RAISER_L
BrowInnerUpRight~INNER_BROW_RAISER_R
BrowOuterUpLeftbrowOuterUpLeftOUTER_BROW_RAISER_L
BrowOuterUpRightbrowOuterUpRightOUTER_BROW_RAISER_R
CheekPuffcheekPuff~~
CheekPuffLeft~Cheek_Puff_LeftCHEEK_PUFF_L
CheekPuffRight~Cheek_Puff_RightCHEEK_PUFF_R
CheekSquintLeftcheekSquintLeft~CHEEK_RAISER_L
CheekSquintRightcheekSquintRight~CHEEK_RAISER_R
CheekSuckCheek_Suck~
CheekSuckLeft~CHEEK_SUCK_L
CheekSuckRight~CHEEK_SUCK_R
EyeClosedLefteyeBlinkLeftEye_Left_BlinkEYES_CLOSED_L
EyeClosedRighteyeBlinkRightEye_Right_BlinkEYES_CLOSED_R
EyeConstrictLeftEye_Left_Constrict
EyeConstrictRightEye_Right_Constrict
EyeDilationLeftEye_Left_Dilation
EyeDilationRightEye_Right_Dilation
EyeLookDownLefteyeLookDownLeftEye_Left_Look_DownEYES_LOOK_DOWN_L
EyeLookDownRighteyeLookDownRightEye_Right_Look_DownEYES_LOOK_DOWN_R
EyeLookInLefteyeLookInLeftEye_Left_RightEYES_LOOK_IN_L
EyeLookInRighteyeLookInRightEye_Right_LeftEYES_LOOK_IN_R
EyeLookOutLefteyeLookOutLeftEye_Left_LeftEYES_LOOK_OUT_L
EyeLookOutRighteyeLookOutRightEye_Right_RightEYES_LOOK_OUT_R
EyeLookUpLefteyeLookUpLeftEye_Left_Look_UpEYES_LOOK_UP_L
EyeLookUpRighteyeLookUpRightEye_Right_Look_UpEYES_LOOK_UP_R
EyeSquintLefteyeSquintLeft~EYES_SQUINT_L
EyeSquintRighteyeSquintRight~EYES_SQUINT_R
EyeWideLefteyeWideLeftEye_Left_WideEYES_WIDEN_L
EyeWideRighteyeWideRightEye_Right_WideEYES_WIDEN_R
JawForwardjawForwardJaw_ForwardJAW_THRUST
JawLeftjawLeftJaw_LeftJAW_SIDEWAYS_LEFT
JawOpenjawOpenJaw_OpenJAW_DROP
JawRightjawRightJaw_RightJAW_SIDEWAYS_RIGHT
LipFunnelmouthFunnel~~
LipFunnelLowerLeft~~LIP_FUNNELER_LB
LipFunnelLowerRight~~LIP_FUNNELER_RB
LipFunnelUpper~Mouth_Upper_Overturn¹~
LipFunnelUpperLeft~~LIP_FUNNELER_LT
LipFunnelUpperRight~~LIP_FUNNELER_RT
LipPuckermouthPuckerMouth_Pout
LipPuckerUpperLeft
LipPuckerLowerLeft
~~LIP_PUCKER_L
LipPuckerUpperRight
LipPuckerLowerRight
~~LIP_PUCKER_R
LipSuckLowermouthRollLowerMouth_Lower_Inside~
LipSuckLowerLeft~~LIP_SUCK_LB
LipSuckLowerRight~~LIP_SUCK_RB
LipSuckUppermouthRollUpperMouth_Upper_Inside~
LipSuckUpperLeft~~LIP_SUCK_LT
LipSuckUpperRight~~LIP_SUCK_RT
MouthClosedmouthCloseMouth_Ape_Shape¹
Negates Jaw_Open
LIPS_TOWARD
MouthDimplerLeftmouthDimpleLeft~DIMPLER_L
MouthDimplerRightmouthDimpleRight~DIMPLER_R
MouthFrownLeftmouthFrownLeft~LIP_CORNER_DEPRESSOR_L
MouthFrownRightmouthFrownRight~LIP_CORNER_DEPRESSOR_R
MouthLowerDownLeftmouthLowerUpLeftMouth_Lower_Down_LeftLOWER_LIP_DEPRESSER_L
MouthLowerDownRightmouthLowerUpRightMouth_Lower_Down_RightLOWER_LIP_DEPRESSOR_R
MouthPressLeftmouthPressLeft¹LIP_PRESSOR_L
MouthPressRightmouthPressRight¹LIP_PRESSOR_R
MouthRaiserLowermouthShrugLowerMouth_Lower_OverlayCHIN_RAISER_B
MouthRaiserUppermouthShrugUpperCHIN_RAISER_T
MouthSadLeft~Mouth_Sad_Left~
MouthSadRight~Mouth_Sad_Right~
MouthSmileLeftmouthSmileLeftMouth_Smile_LeftLIP_CORNER_PULLER_L
MouthSmileRightmouthSmileRightMouth_Smile_RightLIP_CORNER_PULLER_R
MouthStretchLeftmouthStretchLeft~LIP_STRETCHER_L
MouthStretchRightmouthStretchRight~LIP_STRETCHER_R
MouthTightenerLeftLIP_TIGHTENER_L
MouthTightenerRightLIP_TIGHTENER_R
MouthUpperUpLeftmouthUpperUpLeftMouth_Upper_Up_LeftUPPER_LIP_RAISER_L
MouthUpperUpRightmouthUpperUpRightMouth_Upper_Up_RightUPPER_LIP_RAISER_R
NoseSneerLeftnoseSneerLeftNOSE_WRINKLER_L
NoseSneerRightnoseSneerRightNOSE_WRINKLER_R
TongueDownTongue_Down
TongueLeftTongue_Left
TongueOuttongueOutTongue_LongStep1
Tongue_LongStep2
TONGUE_OUT
TongueRightTongue_Right
TongueRollTongue_Roll
TongueUpTongue_Up
  • ¹ Requires the use of a specialized animation setup to work with VRCFT V2 tracking.
  • Bold Blended Shape.

Standard Documentation