ARKit 52 Blendshapes
What the parent explanation assumed you knew:
You understand that iPhone face tracking provides data that drives MetaHuman expressions, but not the specifics of what data or how it maps to the face.
What this page explains:
The exact 52 blendshape parameters that ARKit extracts, what each one controls, and how they combine to create realistic facial expressions.
The Explanation
ARKit's Face Tracking uses the iPhone's TrueDepth camera (30,000 infrared dots + machine learning) to extract 52 specific blendshape coefficients at 60 FPS. Each coefficient is a float from 0.0 to 1.0.
The 52 Blendshapes by Category:
**Eyes (12 parameters):**
- •`eyeBlinkLeft/Right` - Eyelid closure (0=open, 1=closed)
- •`eyeLookUpLeft/Right`, `eyeLookDownLeft/Right` - Vertical gaze direction
- •`eyeLookInLeft/Right`, `eyeLookOutLeft/Right` - Horizontal gaze direction
- •`eyeSquintLeft/Right` - Squinting/crow's feet
- •`eyeWideLeft/Right` - Eyes wide open (surprise)
**Brows (4 parameters):**
- •`browDownLeft/Right` - Frown, anger
- •`browInnerUp` - Worry, sadness (center brow raise)
- •`browOuterUpLeft/Right` - Surprise (outer brow raise)
**Mouth (26 parameters):**
- •`jawOpen`, `jawForward`, `jawLeft`, `jawRight` - Jaw movement
- •`mouthClose` - Lips together (independent of jaw)
- •`mouthFunnel` - 'O' shape (as in 'ooh')
- •`mouthPucker` - Kiss shape
- •`mouthLeft/Right` - Mouth shift sideways
- •`mouthSmileLeft/Right` - Smile
- •`mouthFrownLeft/Right` - Frown
- •`mouthDimpleLeft/Right` - Cheek dimples
- •`mouthStretchLeft/Right` - Stretching mouth corners
- •`mouthRollLower/Upper` - Rolling lips inward
- •`mouthShrugLower/Upper` - Lip shrug
- •`mouthPressLeft/Right` - Pressing lips together
- •`mouthLowerDownLeft/Right` - Lower lip down
- •`mouthUpperUpLeft/Right` - Upper lip up
**Cheeks & Nose (6 parameters):**
- •`cheekPuff` - Puffed cheeks
- •`cheekSquintLeft/Right` - Cheek raise (smiling eyes)
- •`noseSneerLeft/Right` - Nose wrinkle (disgust)
**Tongue (2 parameters):**
- •`tongueOut` - Tongue protrusion (limited tracking)
How They Combine:
Expressions are additive combinations:
`
Smile = mouthSmileLeft(0.8) + mouthSmileRight(0.8) + cheekSquintLeft(0.5) + cheekSquintRight(0.5)
Surprise = eyeWideLeft(1.0) + eyeWideRight(1.0) + browInnerUp(0.7) + jawOpen(0.6)
Disgust = noseSneerLeft(0.8) + noseSneerRight(0.8) + browDownLeft(0.4) + mouthFrownLeft(0.5)
`
**Limitations:**
- •Binary tongue tracking (out or not, no position)
- •No micro-expressions (faster than 60 FPS)
- •No asymmetric eye gaze (both eyes look in same direction)
- •Occlusion causes loss of tracking (hair, hands, glasses)
- •Fixed 52 parameters can't capture every nuance
Visual Aid
Manipulate individual ARKit blendshapes and see how they combine to create expressions.
Open interactive demo →The "Aha" Moment
Your face has 43 muscles, but ARKit simplifies this to 52 independent 'sliders' that, when mixed, can approximate nearly any expression humans make.
Go Even Deeper
This explanation assumes you understand these fundamentals. Click to learn more:
infrared depth sensing
Level 1 fundamental
mesh deformation
Level 1 fundamental