# VAD-to-Facial Expression and ARKit Blendshape Mapping

## Research Document for AnimaSync Emotion-Driven Avatar Animation

**Scope**: This document provides a comprehensive mapping from Valence-Arousal-Dominance (VAD) emotional dimensions to the 52 ARKit blendshapes used in AnimaSync's avatar animation pipeline. It synthesizes established affective science research with practical facial animation requirements.

**Scale Convention**: All VAD values in this document use the **[0, 1] normalized scale** unless otherwise noted, where:
- 0.0 = minimum (most negative valence / lowest arousal / most submissive)
- 0.5 = neutral midpoint
- 1.0 = maximum (most positive valence / highest arousal / most dominant)

---

## 1. VAD Dimension Definitions

### 1.1 Valence (V) --- Pleasure/Displeasure

**Definition**: Valence represents the intrinsic attractiveness (positive valence) or aversiveness (negative valence) of an emotional experience. It is the most fundamental dimension of affect, answering the question: "Is this experience pleasant or unpleasant?"

- **Range**: 0.0 (extremely unpleasant: misery, agony, revulsion) to 1.0 (extremely pleasant: ecstasy, bliss, delight)
- **Midpoint (0.5)**: Neutral affect --- neither pleasant nor unpleasant
- **Neurological basis**: Valence is associated with approach/avoidance motivational systems. Positive valence activates left prefrontal cortex approach circuits; negative valence activates right prefrontal avoidance circuits (Davidson, 1992).
- **Facial signature**: Valence is the dimension most directly readable from facial expressions, primarily through the mouth region (smile vs. frown) and periorbital region (Duchenne markers).

**Key references**: Russell (1980) Circumplex Model; Mehrabian & Russell (1974) PAD framework; Lang, Bradley, & Cuthbert (1997) IAPS/SAM scales.

### 1.2 Arousal (A) --- Activation/Deactivation

**Definition**: Arousal represents the degree of physiological and psychological activation associated with an emotional experience. It answers the question: "How energized or calm is this experience?"

- **Range**: 0.0 (completely deactivated: deep sleep, coma, extreme lethargy) to 1.0 (maximum activation: panic, ecstasy, rage, extreme alertness)
- **Midpoint (0.5)**: Moderate, everyday activation levels
- **Neurological basis**: Arousal is driven by the reticular activating system, sympathetic nervous system engagement, and amygdala activation. High arousal states involve increased heart rate, galvanic skin response, pupil dilation, and muscle tension.
- **Facial signature**: Arousal manifests primarily as increased eye opening, brow activity (both raising and furrowing), mouth tension/opening, and overall facial muscle tension. High arousal also increases the frequency and amplitude of facial micro-movements.

**Key references**: Russell & Barrett (1999); Kuppens et al. (2013); Bradley & Lang (2000) acoustic startle studies.

### 1.3 Dominance (D) --- Control/Submissiveness

**Definition**: Dominance represents the degree of control, power, or influence an individual feels over a situation or emotional experience. It answers the question: "Do I feel in control, or overwhelmed?"

- **Range**: 0.0 (completely submissive: helpless, overpowered, at mercy of circumstance) to 1.0 (completely dominant: powerful, commanding, in total control)
- **Midpoint (0.5)**: Moderate sense of agency
- **Neurological basis**: Dominance is associated with testosterone levels, social status appraisal circuits, and prefrontal executive control. It modulates the behavioral expression of other dimensions --- high-dominance negative emotions (anger) produce approach behaviors, while low-dominance negative emotions (fear) produce avoidance behaviors.
- **Facial signature**: Dominance manifests through brow lowering (V-shape), jaw setting, direct gaze, head position (chin up vs. down), and nostril flare. It is the hardest dimension to read from static facial expressions alone but critical for disambiguating emotions.

**Key references**: Mehrabian (1996); Fontaine et al. (2007) four-dimensional structure; Osgood's "potency" dimension in semantic differentials.

### 1.4 Relationship to Russell's Circumplex Model

Russell's Circumplex Model of Affect (1980) uses only two dimensions: Valence and Arousal, arranged as a circle in 2D space. The VAD model extends this by adding Dominance as a critical third axis.

**Why Dominance matters**: The circumplex model cannot distinguish between emotions that share the same valence-arousal profile but differ in felt control:
- **Anger vs. Fear**: Both are negative-valence, high-arousal. But anger is high-dominance (feeling powerful, wanting to confront) while fear is low-dominance (feeling helpless, wanting to flee). This is the canonical example.
- **Pride vs. Awe**: Both are positive-valence, moderate-to-high arousal. But pride is very high-dominance while awe is low-dominance.
- **Contempt vs. Sadness**: Contempt has high dominance (looking down on something); sadness has low dominance (feeling powerless).

Fontaine et al. (2007) demonstrated through cross-linguistic analysis of 24 emotion terms across 3 languages that a four-dimensional space (adding "unpredictability/novelty" to VAD) accounts for the majority of variance in emotion differentiation, but VAD alone captures approximately 75-80% of the variance.

---

## 2. Core Emotions to VAD Coordinates

All values on the [0, 1] scale. Sources: NRC VAD Lexicon (Mohammad, 2018), Warriner et al. (2013) affective norms, Russell & Mehrabian (1977), Fontaine et al. (2007), and ANEW (Bradley & Lang, 1999). Values for social/complex emotions are reasoned estimates grounded in these sources.

### 2.1 Basic Emotions (Ekman's Six + Contempt)

| Emotion | V | A | D | Key Sources & Reasoning |
|---------|-----|-----|-----|------------------------|
| **Joy** | 0.87 | 0.72 | 0.72 | Highly pleasant, moderately-to-highly activated, in control. NRC VAD: happiness=0.96/0.74/0.73. Adjusted slightly downward for typical (not peak) joy. ANEW "happy": V=8.21, A=6.49 on 1-9 scale. |
| **Anger** | 0.17 | 0.82 | 0.80 | Very unpleasant, very activated, but critically HIGH dominance. NRC: anger=0.17/0.87/0.69. Dominance here is adjusted upward per Mehrabian's (1996) data and FACS literature showing anger as an approach-motivated, power-asserting emotion. The high dominance is what distinguishes anger from fear. |
| **Sadness** | 0.17 | 0.30 | 0.28 | Very unpleasant, deactivated, powerless. NRC: sadness=0.12/0.59/0.28. Arousal adjusted downward from NRC --- empirical evidence (Kreibig, 2010) and Fontaine et al. place sadness as deactivated. NRC arousal may reflect the word's intensity connotation rather than the felt state. |
| **Surprise** | 0.55 | 0.82 | 0.42 | Valence-neutral (can be positive or negative), very high activation, moderate-low dominance (unexpected events reduce felt control). NRC: surprise=0.60/0.85/0.45. Note: surprise is inherently brief and valence-ambiguous. In context, a "positive surprise" would shift V upward; a "negative surprise" (shock) would shift V downward. |
| **Fear** | 0.15 | 0.84 | 0.18 | Very unpleasant, very activated, very LOW dominance. NRC: fear=0.07/0.84/0.15. This is the critical contrast with anger --- same quadrant for V and A, but opposite on D. Fear represents threat without agency. |
| **Disgust** | 0.15 | 0.60 | 0.58 | Very unpleasant, moderately activated, moderate-high dominance. NRC: disgust=0.08/0.69/0.48. Dominance adjusted upward --- disgust is a rejection/expulsion emotion that implies the disguster has agency to withdraw or condemn. Rozin & Fallon (1987) characterize disgust as having a strong "push away" component. |
| **Contempt** | 0.30 | 0.42 | 0.82 | Mildly negative, low-moderate activation, very high dominance. This is the defining feature of contempt: it is fundamentally about superiority. Ekman (1992) describes contempt as unilateral, implying the person feels above the target. Less activated than anger because it lacks the urgency of confrontation. |

### 2.2 Social and Complex Emotions

| Emotion | V | A | D | Key Sources & Reasoning |
|---------|-----|-----|-----|------------------------|
| **Gratitude** | 0.85 | 0.45 | 0.52 | Highly pleasant, calm-to-moderate activation, moderate dominance. Gratitude is warm but not typically energizing. Slight dominance because it acknowledges having received something (mild vulnerability), but the overall experience is empowering. Warriner: "grateful" V=7.43, A=4.58. |
| **Apology** | 0.32 | 0.48 | 0.25 | Mildly negative (acknowledging wrongdoing), moderate activation (social anxiety), low dominance (submitting to the wronged party). The apologizer cedes power. NRC "sorry"=0.26/0.49/0.27. |
| **Relief** | 0.78 | 0.30 | 0.62 | Pleasant (threat removed), low arousal (tension dissipating), moderate-high dominance (regaining control). Relief is characterized by parasympathetic rebound --- arousal dropping from a prior high state. Warriner: "relief" V=7.00, A=4.15. |
| **Embarrassment** | 0.20 | 0.65 | 0.18 | Unpleasant, moderately-to-highly activated (blushing, fidgeting), very low dominance (exposed, no control over others' perception). Similar to shame but more situational and less identity-threatening. NRC: "embarrassment"=0.12/0.67/0.13. |
| **Politeness** | 0.62 | 0.32 | 0.50 | Mildly pleasant (prosocial), low activation (calm, regulated), neutral dominance (politeness can be either deferential or magnanimous). This is more of a social stance than a true emotion. Estimated from Warriner norms for related words. |
| **Admiration** | 0.82 | 0.58 | 0.38 | Highly pleasant, moderate activation (inspired but not agitated), below-neutral dominance (the admired person/thing is elevated above the self). Related to awe but warmer and more interpersonally directed. Warriner: "admire" V=7.38, A=5.11. |
| **Pride** | 0.82 | 0.58 | 0.88 | Highly pleasant, moderate activation, very high dominance. Pride is fundamentally about self-aggrandizement and perceived superiority. Tracy & Robins (2007) distinguish "authentic pride" (achievement-based) from "hubristic pride" (narcissistic); this mapping represents authentic pride. Both forms are very high dominance. |
| **Shame** | 0.12 | 0.55 | 0.12 | Very unpleasant, moderate activation (internal turmoil, not calm but not panic), very low dominance (powerless, identity-threatened). NRC: shame=0.05/0.55/0.12. Shame differs from guilt in being more global ("I am bad" vs. "I did bad") and from embarrassment in being more identity-core. |
| **Guilt** | 0.18 | 0.58 | 0.30 | Very unpleasant, moderate activation, low dominance. Guilt is similar to shame but slightly higher dominance because it implies agency ("I did something wrong" = I had the power to act). NRC: "guilt"=0.13/0.61/0.28. The reparative urge in guilt suggests slightly more felt control than shame. |
| **Compassion** | 0.72 | 0.42 | 0.55 | Pleasant (warmth, caring), calm-to-moderate activation, moderate dominance. Compassion involves resonating with others' suffering while maintaining enough equanimity to want to help. The helper role implies moderate agency. Warriner: "compassion" V=6.83, A=4.30. |
| **Jealousy** | 0.15 | 0.75 | 0.30 | Very unpleasant, highly activated (rumination, vigilance, hostility), low dominance (the jealous person feels threatened and unable to control the situation). NRC: "jealousy"=0.10/0.72/0.24. Jealousy is a blend of fear (of loss), anger (at rival/partner), and sadness (at perceived inadequacy). |
| **Nostalgia** | 0.68 | 0.38 | 0.45 | Bittersweet --- moderately pleasant (warm memories dominate but with a tinge of loss). Low-to-moderate arousal (reflective, wistful). Near-neutral dominance (the past cannot be controlled, but memories are willfully engaged). Sedikides et al. (2015) characterize nostalgia as predominantly positive. Estimated: V slightly above neutral, A low reflecting its contemplative quality. |
| **Hope** | 0.78 | 0.55 | 0.48 | Pleasant (anticipating good outcomes), moderate activation (engaged, forward-looking), near-neutral dominance (hopeful states acknowledge uncertainty --- one hopes precisely because one cannot fully control outcomes). NRC: "hope"=0.85/0.50/0.56. Adjusted D slightly down to reflect inherent uncertainty. |
| **Disappointment** | 0.18 | 0.42 | 0.28 | Unpleasant (expectations violated negatively), low-to-moderate arousal (more deflating than energizing), low dominance (events did not go as one wished, felt powerlessness). NRC: "disappointment"=0.10/0.53/0.22. Lower arousal than anger because disappointment tends to be resigned rather than confrontational. |
| **Awe** | 0.75 | 0.72 | 0.25 | Pleasant, high arousal (the vastness/power of the stimulus is activating), low dominance (feeling small in the face of something much greater). Keltner & Haidt (2003) define awe by perceived vastness and need for accommodation. The low dominance is what distinguishes awe from simple excitement. |
| **Boredom** | 0.28 | 0.18 | 0.38 | Mildly unpleasant, very low arousal (the defining feature --- insufficient stimulation), below-neutral dominance (boredom implies one cannot change the situation easily, but it is not threatening). NRC: "boredom"=0.22/0.27/0.38. Boredom is the canonical low-arousal, mildly-negative state. |
| **Confusion** | 0.35 | 0.55 | 0.25 | Mildly unpleasant (cognitive dissonance), moderate arousal (mental effort, searching for resolution), low dominance (lack of understanding = lack of control). NRC: "confusion"=0.27/0.58/0.22. Confusion is epistemically aversive but not strongly valenced. |
| **Determination** | 0.62 | 0.72 | 0.82 | Mildly positive (purposeful engagement), high arousal (mobilization of effort), very high dominance (assertion of agency against obstacles). Determination is not a prototypical emotion but an action-tendency/motivational state. V is above neutral because the determined person is engaged rather than suffering. Estimated from Warriner "determined" V=6.46, A=6.33. |
| **Excitement** | 0.85 | 0.88 | 0.65 | Highly pleasant, very high arousal (the defining feature), moderate-high dominance. Excitement is essentially high-arousal joy. NRC: "excitement"=0.86/0.81/0.63. Excitement implies positive anticipation with enough agency to feel empowered rather than overwhelmed. |
| **Serenity** | 0.82 | 0.18 | 0.68 | Highly pleasant, very low arousal, moderate-high dominance. Serenity is peace with control --- one feels content AND in command of the situation. NRC: "serenity"=0.88/0.22/0.72. This is the classic positive-valence, low-arousal, high-dominance state. |

### 2.3 Summary Visualization (Conceptual VAD Space)

```
                    High Arousal (1.0)
                         |
           Fear          |         Excitement
           Anger    Surprise       Joy
           Jealousy      |
                         |
Low Valence -------------|------------- High Valence
(0.0)                    |                    (1.0)
           Sadness       |         Serenity
           Boredom       |         Relief
           Shame         |         Nostalgia
                         |
                    Low Arousal (0.0)

        [Dominance as depth/Z-axis]
        Front (High D): Anger, Contempt, Pride, Determination
        Back (Low D): Fear, Shame, Awe, Embarrassment
```

---

## 3. VAD Dimensions to Facial Region Effects

This section maps each VAD dimension to specific observable changes in facial regions, grounded in Ekman & Friesen's Facial Action Coding System (FACS) and empirical studies of facial expression in dimensional emotion spaces.

### 3.1 Valence (Positive <-> Negative)

Valence is the most facially expressive dimension. Research by Smith & Scott (1997), Ekman (1972), and computational studies by Nicolle et al. (2012) consistently show that the mouth and periorbital regions carry the strongest valence signals.

#### Mouth Region
| Direction | Effect | FACS Action Units |
|-----------|--------|-------------------|
| Positive (V > 0.5) | Lip corners pull upward and laterally (smile). Intensity scales with distance from neutral. At V > 0.8, upper teeth may become visible (parted-lip smile). At very high V with high A, mouth may open into a grin. | AU12 (Lip Corner Puller) is the primary smile AU. AU6+AU12 = Duchenne smile. AU25 (Lips Part) at higher intensities. |
| Negative (V < 0.5) | Lip corners pull downward (frown). At moderate negative V, lips may compress/press together (suppression). At strong negative V, lower lip may push up and lip corners depress significantly. Mouth may stretch laterally in fear/distress. | AU15 (Lip Corner Depressor) for frown. AU17 (Chin Raiser) for pout/displeasure. AU20 (Lip Stretcher) in fear. AU23/24 (Lip Tightener/Presser) for anger/suppression. |
| Neutral (V ~ 0.5) | Relaxed mouth, lips gently closed or slightly parted. No upward or downward pull on corners. | Neutral/baseline. |

#### Cheek Region
| Direction | Effect | FACS Action Units |
|-----------|--------|-------------------|
| Positive (V > 0.5) | Cheeks raise, pushing up tissue below the eyes. This is the hallmark of genuine positive emotion (Duchenne marker). Cheek raising creates crow's feet wrinkles. At very high V, cheek puff may occur briefly in laughter. | AU6 (Cheek Raiser) --- the single most reliable indicator of genuine positive affect per Ekman. |
| Negative (V < 0.5) | Cheeks flatten or may be pulled slightly downward by the depressor muscles. In disgust, the cheek/nose area bunches upward asymmetrically (nasolabial fold deepening). | Absence of AU6. In disgust: AU9 (Nose Wrinkler) engages the cheek area differently. |

#### Eye Region
| Direction | Effect | FACS Action Units |
|-----------|--------|-------------------|
| Positive (V > 0.5) | Eyes narrow slightly due to cheek raising from below and orbicularis oculi contraction (eye crinkle). This "squint" is the periorbital Duchenne marker. NOT the same as eye squeezing shut --- it is a gentle narrowing with crow's feet wrinkling. | AU6 pushes up from below. AU7 (Lid Tightener) may engage slightly. The key is that the narrowing comes from below (cheek) rather than above (brow). |
| Negative (V < 0.5) | Eyes may widen (fear, surprise-negative) or narrow with tension (anger, disgust). In sadness, the inner corners of the brows pull up, creating a sad/puppy-dog eye appearance. Eye moisture may increase. | Varies by specific negative emotion. AU1 (Inner Brow Raise) for sadness. AU4+AU7 for angry narrowing. AU5 (Upper Lid Raise) for fear. |

#### Brow Region
| Direction | Effect | FACS Action Units |
|-----------|--------|-------------------|
| Positive (V > 0.5) | Brows are generally relaxed or slightly raised in moderate joy. Strong positive affect does NOT typically involve strong brow movement --- the brow tends to follow arousal more than valence. | Neutral to mild AU1+AU2 (Inner+Outer Brow Raise). |
| Negative (V < 0.5) | Brows contract and lower (anger), or inner brows raise while outer brows stay/lower (sadness/worry --- the "oblique brow"). This is a key discriminator among negative emotions. | AU4 (Brow Lowerer) for anger. AU1 alone or AU1+AU4 for sadness/worry. |

#### Nose Region
| Direction | Effect | FACS Action Units |
|-----------|--------|-------------------|
| Positive (V > 0.5) | Minimal nose involvement in positive emotions. Nostrils may flare slightly with laughter (secondary to breathing changes). | Minimal. |
| Negative (V < 0.5) | Nose wrinkle is the primary disgust indicator. Nasal flare occurs in anger (increased respiration). | AU9 (Nose Wrinkler) for disgust. AU38 (Nostril Dilator) for anger. |

### 3.2 Arousal (Calm <-> Excited)

Arousal modulates the intensity and dynamism of facial expressions. Sander et al. (2005) and Scherer & Ellgring (2007) show that arousal primarily affects eye opening, facial tension, and the temporal dynamics of expression.

#### Eye Openness
| Level | Effect |
|-------|--------|
| High Arousal (A > 0.7) | Eyes widen significantly. Upper eyelid retracts to expose more sclera (white). In extreme arousal, the "startled" wide eye appears. Pupil dilation occurs (not visible in blendshape systems but relevant context). |
| Moderate Arousal (A ~ 0.5) | Normal eye opening. Alert, engaged appearance. |
| Low Arousal (A < 0.3) | Eyes partially close. Lids droop. In very low arousal (drowsiness, boredom), eyes may be half-lidded. Blink rate decreases and blink duration increases. The "sleepy eye" look. |

#### Brow Movement Intensity/Frequency
| Level | Effect |
|-------|--------|
| High Arousal (A > 0.7) | Brow movements become more pronounced in amplitude. Both raising and lowering are intensified. Rapid brow flashes (brief raises lasting <500ms) increase in frequency. The specific direction of brow movement depends on valence and dominance, but arousal amplifies it. |
| Moderate Arousal (A ~ 0.5) | Normal brow expressiveness. |
| Low Arousal (A < 0.3) | Brow movements become minimal. The face appears "flat" or "mask-like." Little to no brow fluctuation. In very low arousal, brows may settle into a slightly lowered/relaxed position. |

#### Mouth Opening/Tension
| Level | Effect |
|-------|--------|
| High Arousal (A > 0.7) | Increased jaw opening. Mouth may drop open in surprise/fear. In high-arousal positive states, the smile becomes open-mouthed. Lip tension increases (stretched, taut). Vocalizations become louder, contributing to more mouth opening. |
| Moderate Arousal (A ~ 0.5) | Normal mouth posture. Lips may be slightly parted during speech. |
| Low Arousal (A < 0.3) | Mouth closes or becomes slack. Jaw relaxes. Lips may part slightly due to muscle relaxation (not tension). Very little mouth movement. In extreme low arousal, the jaw may hang slightly open passively. |

#### Overall Facial Muscle Tension
| Level | Effect |
|-------|--------|
| High Arousal (A > 0.7) | All facial muscles show increased baseline tension (tonic activation). This creates a more "sculpted" or "taut" facial appearance. Micro-movements increase. The face appears more animated and dynamic. Asymmetric movements may increase (stress/high arousal can disrupt bilateral coordination). |
| Moderate Arousal (A ~ 0.5) | Normal muscle tone. |
| Low Arousal (A < 0.3) | Global muscle relaxation. The face appears softer, smoother, less defined. Gravitational effects become more visible (slight droop). Fewer micro-movements. The face appears still and placid. |

#### Blink Rate
| Level | Effect | Approximate Rate |
|-------|--------|-----------------|
| High Arousal (A > 0.7) | Blink rate increases under stress and arousal. Blinks become quicker (shorter duration). Incomplete blinks (flutter) may occur. | 20-26 blinks/minute (Bentivoglio et al., 1997) |
| Moderate Arousal (A ~ 0.5) | Normal spontaneous blink rate. | 15-20 blinks/minute |
| Low Arousal (A < 0.3) | Blink rate decreases. Blinks become slower and longer in duration (heavier lids). In drowsiness, extended blink closures occur. | 8-15 blinks/minute |

### 3.3 Dominance (Submissive <-> Dominant)

Dominance is the most subtle facial dimension and is often conveyed more through head position and gaze than through individual facial muscle activation. Research by Hess et al. (2005, 2009), Hareli et al. (2009), and Tiedens (2001) on power and facial expression informs this section.

#### Brow Position
| Level | Effect |
|-------|--------|
| High Dominance (D > 0.7) | Brows lower and draw together, creating a "V-shape" frown or glare. This is the classic power/dominance brow. Even in positive-dominant states (pride), the brows tend to be level or slightly lowered rather than raised. The lowered brow reduces the visible sclera above the iris, creating an intense, focused gaze. |
| Neutral Dominance (D ~ 0.5) | Relaxed brow, natural resting position. |
| Low Dominance (D < 0.3) | Brows raise, especially the inner portions (the "worry brow" or "sad puppy" look). Raised brows signal vulnerability, openness, and submission. In fear, the brows raise and draw together simultaneously. The raised brow exposes more sclera, making the eyes appear larger and more vulnerable. |

#### Jaw
| Level | Effect |
|-------|--------|
| High Dominance (D > 0.7) | Jaw sets or clenches. The masseter muscles tighten, creating a squared, defined jawline. In anger, the jaw may jut forward slightly. Teeth may clench or bite down. The overall impression is of firmness and resolve. |
| Neutral Dominance (D ~ 0.5) | Relaxed jaw, natural position. |
| Low Dominance (D < 0.3) | Jaw relaxes or may tremble. In fear, the jaw may drop open passively (different from the active opening of surprise or shouting). The mouth area may appear slack or uncertain. Lip quivering may occur. |

#### Gaze Direction
| Level | Effect |
|-------|--------|
| High Dominance (D > 0.7) | Direct, sustained gaze. The dominant individual does not look away. Gaze may be slightly downward (looking down on others) or level. Staring behavior. Less blinking (maintaining eye contact is a dominance signal). |
| Neutral Dominance (D ~ 0.5) | Normal gaze behavior with regular shifts. |
| Low Dominance (D < 0.3) | Gaze aversion. Eyes look downward and/or away. The submissive individual breaks eye contact frequently. In shame, gaze drops down and to the side. In fear, gaze may fixate on the threat source but with wide, vulnerable eyes. |

#### Head Tilt
| Level | Effect |
|-------|--------|
| High Dominance (D > 0.7) | Chin up, head level or tilted slightly back. This exposes the throat (a signal of confidence --- "I don't need to protect my vulnerable neck") and creates the literal "looking down one's nose" posture. In contempt, a slight head tilt to one side may accompany the asymmetric lip raise. |
| Neutral Dominance (D ~ 0.5) | Head level, natural position. |
| Low Dominance (D < 0.3) | Chin tucks down toward chest. Head may bow forward. The protective posture shields the throat. In shame, the head drops. In fear, the chin tucks as part of the defensive crouch. A sideways tilt toward the shoulder can signal submissive appeasement. |

*Note: Head tilt is a head bone rotation, not a blendshape, in most avatar systems. AnimaSync would need to handle this through skeletal animation rather than the 52 blendshapes.*

#### Nostril Flare
| Level | Effect |
|-------|--------|
| High Dominance (D > 0.7) | Nostrils flare (dilate). This is associated with increased respiration preparatory to action, and is a reliable anger/dominance indicator. The flare is active and sustained. |
| Neutral Dominance (D ~ 0.5) | Normal nostril position. |
| Low Dominance (D < 0.3) | Nostrils may constrict slightly or show no active dilation. In crying/distress, the nose may wrinkle but without the aggressive flare seen in dominance. |

---

## 4. Specific ARKit Blendshape Responses to VAD Dimensions

This section provides concrete mappings from each VAD dimension to the 52 ARKit blendshapes. Values represent the **scaling coefficient** by which the blendshape weight should be modulated per unit of dimensional deviation from neutral (0.5).

### Notation Convention

For each blendshape, the notation indicates:
- **Direction**: which end of the dimension activates the blendshape (e.g., "V+" means positive valence)
- **Scaling**: approximate weight contribution at the extreme of that dimension (before clamping to [0,1])
- **Curve**: whether the relationship is linear, quadratic, or threshold-gated

A blendshape weight of 0.0 means no activation; 1.0 means full activation. The final weight for any blendshape is the **combined** result of all three VAD dimensions (see Section 5 for interaction rules).

### 4.1 Valence-Driven Blendshapes

These blendshapes are primarily modulated by the Valence dimension.

#### Positive Valence (V > 0.5) --- Blendshapes that INCREASE

| Blendshape | Max Weight at V=1.0 | Curve | Notes |
|------------|---------------------|-------|-------|
| mouthSmileLeft | 0.85 | Quadratic (accelerating) | Primary smile. Quadratic because smiles are perceptually nonlinear --- small valence increases produce little visible smile, but high valence produces strong smiles. At V=0.6, weight ~0.08; at V=0.8, weight ~0.40; at V=1.0, weight ~0.85. |
| mouthSmileRight | 0.85 | Quadratic (accelerating) | Mirror of left. Slight asymmetry (L > R by ~5-10%) can add naturalness per Ekman's observations of genuine vs. posed smiles. |
| cheekSquintLeft | 0.65 | Quadratic, gated | Duchenne marker. Activates significantly only at V > 0.65 (genuine happiness threshold). Without this, smiles appear "fake." |
| cheekSquintRight | 0.65 | Quadratic, gated | Mirror of left. |
| eyeSquintLeft | 0.40 | Quadratic, gated | Periorbital squint from AU6. Gentle narrowing, not closure. Activates at V > 0.6. |
| eyeSquintRight | 0.40 | Quadratic, gated | Mirror of left. |
| mouthDimpleLeft | 0.25 | Linear | Subtle dimpling that accompanies broader smiles. |
| mouthDimpleRight | 0.25 | Linear | Mirror of left. |
| mouthUpperUpLeft | 0.15 | Linear, gated at V > 0.75 | Upper lip raises slightly in broad smiles, showing upper teeth. |
| mouthUpperUpRight | 0.15 | Linear, gated at V > 0.75 | Mirror of left. |

#### Negative Valence (V < 0.5) --- Blendshapes that INCREASE

| Blendshape | Max Weight at V=0.0 | Curve | Notes |
|------------|---------------------|-------|-------|
| mouthFrownLeft | 0.75 | Quadratic (accelerating) | Primary frown. Similar nonlinear curve as smile but inverted. At V=0.4, weight ~0.05; at V=0.2, weight ~0.35; at V=0.0, weight ~0.75. |
| mouthFrownRight | 0.75 | Quadratic (accelerating) | Mirror of left. |
| browInnerUp | 0.55 | Linear from V=0.35 downward | Inner brow raise for sadness/worry. This is the oblique brow configuration. Competes with browDown in anger (resolved by Dominance dimension). |
| mouthPressLeft | 0.30 | Linear | Lip pressing/compression for suppressed negative emotion. |
| mouthPressRight | 0.30 | Linear | Mirror of left. |
| mouthStretchLeft | 0.20 | Threshold at V < 0.2 | Lip stretch for distress/fear. Only at strong negative valence. |
| mouthStretchRight | 0.20 | Threshold at V < 0.2 | Mirror of left. |
| mouthRollLower | 0.20 | Linear | Lower lip rolls inward in sadness/holding-back-tears. |
| mouthRollUpper | 0.15 | Linear | Upper lip rolls inward for suppression. |

#### Valence-Driven Blendshapes that DECREASE as Valence Decreases

| Blendshape | Effect | Notes |
|------------|--------|-------|
| mouthSmileLeft/Right | Forced to 0.0 when V < 0.35 | Smiling and frowning are mutually exclusive. A transition zone from V=0.35-0.55 blends between them. |
| cheekSquintLeft/Right | Drops to 0.0 when V < 0.45 | Duchenne marker disengages at negative valence. |

### 4.2 Arousal-Driven Blendshapes

These blendshapes are primarily modulated by the Arousal dimension.

#### High Arousal (A > 0.5) --- Blendshapes that INCREASE

| Blendshape | Max Weight at A=1.0 | Curve | Notes |
|------------|---------------------|-------|-------|
| eyeWideLeft | 0.70 | Quadratic (accelerating) | Eye widening scales strongly with arousal. At A=0.6, weight ~0.07; at A=0.8, weight ~0.30; at A=1.0, weight ~0.70. This is the primary arousal indicator. |
| eyeWideRight | 0.70 | Quadratic (accelerating) | Mirror of left. |
| jawOpen | 0.45 | Linear | Jaw drops progressively with arousal. Capped at 0.45 for emotion expression (lip sync can override higher). Interacts with valence: positive high arousal = open smile; negative high arousal = gasp/grimace. |
| browInnerUp | 0.45 | Linear | Brow raises with arousal (amplification effect). Note: this same blendshape is driven by negative valence AND low dominance, making it a multi-driver shape. |
| browOuterUpLeft | 0.40 | Linear | Outer brow raise for surprise/alertness. |
| browOuterUpRight | 0.40 | Linear | Mirror of left. |
| mouthShrugUpper | 0.20 | Linear | Upper lip area tightens/lifts with arousal. |
| mouthShrugLower | 0.20 | Linear | Lower lip area tightens with arousal. |
| noseSneerLeft | 0.15 | Threshold at A > 0.75 | Subtle nose flare at high arousal (increased respiration). |
| noseSneerRight | 0.15 | Threshold at A > 0.75 | Mirror of left. |

#### Low Arousal (A < 0.5) --- Blendshapes that INCREASE

| Blendshape | Max Weight at A=0.0 | Curve | Notes |
|------------|---------------------|-------|-------|
| eyeBlinkLeft | +0.25 (additive to baseline) | Linear | Increased eye droop/partial closure at low arousal. NOT a full blink --- this is the "heavy-lidded" sleepy look. Applied as a baseline offset, not pulsed. |
| eyeBlinkRight | +0.25 (additive to baseline) | Linear | Mirror of left. |
| eyeSquintLeft | 0.20 | Linear (low arousal only) | Slight squinting from relaxation (different from the Duchenne squint which is cheek-driven). |
| eyeSquintRight | 0.20 | Linear (low arousal only) | Mirror of left. |

#### Arousal-Driven Dynamic Effects (Temporal)

These are not static blendshape offsets but temporal modulation patterns:

| Effect | A > 0.7 | A ~ 0.5 | A < 0.3 |
|--------|---------|---------|---------|
| Blink frequency | 20-26/min | 15-20/min | 8-15/min |
| Blink duration | 100-150ms | 150-250ms | 250-400ms |
| Expression transition speed | Fast (150-300ms) | Normal (300-500ms) | Slow (500-1000ms) |
| Micro-movement amplitude | High (noise +-0.03) | Normal (+-0.01) | Minimal (+-0.005) |

### 4.3 Dominance-Driven Blendshapes

These blendshapes are primarily modulated by the Dominance dimension.

#### High Dominance (D > 0.5) --- Blendshapes that INCREASE

| Blendshape | Max Weight at D=1.0 | Curve | Notes |
|------------|---------------------|-------|-------|
| browDownLeft | 0.55 | Linear | Brow lowering is the primary dominance signal. Creates the furrowed, intense look. At D=0.7, weight ~0.22; at D=1.0, weight ~0.55. |
| browDownRight | 0.55 | Linear | Mirror of left. |
| jawForward | 0.25 | Linear, gated at D > 0.7 | Jaw juts forward in dominant/aggressive states. Subtle but impactful. |
| noseSneerLeft | 0.35 | Linear | Nostril flare for dominance/anger. Stacks with arousal-driven flare. |
| noseSneerRight | 0.35 | Linear | Mirror of left. |
| mouthPressLeft | 0.25 | Linear | Lip pressing for determination/resolve. |
| mouthPressRight | 0.25 | Linear | Mirror of left. |
| eyeSquintLeft | 0.30 | Linear | Narrowed eyes for intensity/focus. Different from Duchenne squint --- this is a deliberate, tense narrowing. |
| eyeSquintRight | 0.30 | Linear | Mirror of left. |
| mouthShrugUpper | 0.20 | Linear | Lip stiffness/firmness. |
| cheekPuff | 0.10 | Threshold at D > 0.8, V < 0.3 | Subtle cheek puff for contempt/disdain (one-sided in asymmetric mapping). Very context-specific. |

#### Low Dominance (D < 0.5) --- Blendshapes that INCREASE

| Blendshape | Max Weight at D=0.0 | Curve | Notes |
|------------|---------------------|-------|-------|
| browInnerUp | 0.60 | Quadratic (accelerating) | The "worried brow" is the strongest submissive facial signal. Inner brow raise without outer brow raise creates the classic fear/worry/submission expression. |
| browOuterUpLeft | 0.35 | Linear | Outer brow raises with inner for full brow elevation (vulnerability signal). |
| browOuterUpRight | 0.35 | Linear | Mirror of left. |
| eyeWideLeft | 0.30 | Linear | Eyes widen in vulnerability/fear. Stacks with arousal-driven widening. |
| eyeWideRight | 0.30 | Linear | Mirror of left. |
| eyeLookDownLeft | 0.30 | Linear, gated at D < 0.3 | Gaze aversion downward in submission/shame. |
| eyeLookDownRight | 0.30 | Linear, gated at D < 0.3 | Mirror of left. |
| mouthFunnel | 0.15 | Threshold at D < 0.25 | Lip funneling/rounding in whimpering/submissive vocalization. |
| mouthLowerDownLeft | 0.20 | Linear | Lower lip drops in vulnerability/uncertainty. |
| mouthLowerDownRight | 0.20 | Linear | Mirror of left. |

#### Dominance-Driven Blendshapes that DECREASE

| Blendshape | Effect | Notes |
|------------|--------|-------|
| browDownLeft/Right | Forced toward 0.0 when D < 0.3 | Submissive states do not lower brows (that would signal dominance/anger). |
| browInnerUp | Forced toward 0.0 when D > 0.7 | Dominant states do not raise inner brow (that would signal vulnerability). Exception: high-dominance surprise can briefly raise brows. |

### 4.4 Complete Blendshape Reference Table

This table lists every ARKit blendshape with its primary VAD driver(s), secondary influences, and resting/neutral contribution.

| # | Blendshape | Primary Driver | Secondary Driver(s) | Neutral (no emotion) | Notes |
|---|-----------|----------------|---------------------|---------------------|-------|
| 1 | browDownLeft | D+ (dominance) | V- (anger) | 0.00 | Mutually inhibited by low D (fear/sadness raise brows instead) |
| 2 | browDownRight | D+ (dominance) | V- (anger) | 0.00 | Mirror |
| 3 | browInnerUp | D- (submission), V- (sadness), A+ (surprise) | Multi-driver: sadness, fear, worry, surprise | 0.00 | Most complex brow shape. D-, V-, and A+ all raise it. D+ suppresses it. |
| 4 | browOuterUpLeft | A+ (arousal) | D- (vulnerability) | 0.00 | Surprise, fear, awe |
| 5 | browOuterUpRight | A+ (arousal) | D- (vulnerability) | 0.00 | Mirror |
| 6 | cheekPuff | Special | D+ with V- (contempt) | 0.00 | Rarely driven by VAD alone. More common in speech and voluntary expressions. |
| 7 | cheekSquintLeft | V+ (positive valence) | --- | 0.00 | Duchenne marker. Only active in genuine positive affect. |
| 8 | cheekSquintRight | V+ (positive valence) | --- | 0.00 | Mirror |
| 9 | eyeBlinkLeft | A- (low arousal, baseline) | Temporal/stochastic | 0.00 | Driven by blink system, not static VAD mapping. Low arousal increases baseline lid droop. |
| 10 | eyeBlinkRight | A- (low arousal, baseline) | Temporal/stochastic | 0.00 | Mirror |
| 11 | eyeLookDownLeft | D- (submission) | Shame, guilt, sadness | 0.00 | Gaze aversion. Implementation note: may be better as eye bone rotation in AnimaSync. |
| 12 | eyeLookDownRight | D- (submission) | Shame, guilt, sadness | 0.00 | Mirror |
| 13 | eyeLookInLeft | --- | --- | 0.00 | Gaze targeting, not VAD-driven. Cross-eye / convergence. |
| 14 | eyeLookInRight | --- | --- | 0.00 | Mirror |
| 15 | eyeLookOutLeft | --- | --- | 0.00 | Gaze targeting, not VAD-driven. |
| 16 | eyeLookOutRight | --- | --- | 0.00 | Mirror |
| 17 | eyeSquintLeft | V+ (Duchenne), D+ (intensity) | Compound shape driven by both positive valence and dominance | 0.00 | V+ squint = warm/genuine; D+ squint = intense/threatening. Same shape, different meaning. |
| 18 | eyeSquintRight | V+ (Duchenne), D+ (intensity) | Same as left | 0.00 | Mirror |
| 19 | eyeWideLeft | A+ (arousal) | D- (vulnerability) | 0.00 | Eye widening. Arousal opens eyes; low dominance amplifies. |
| 20 | eyeWideRight | A+ (arousal) | D- (vulnerability) | 0.00 | Mirror |
| 21 | jawForward | D+ (dominance) | V- (anger, contempt) | 0.00 | Aggressive jaw protrusion. Subtle but important for dominance. |
| 22 | jawLeft | --- | --- | 0.00 | Rarely VAD-driven. May appear in asymmetric expressions or speech. |
| 23 | jawOpen | A+ (arousal) | V+/A+ (laughter), V-/A+ (gasp) | 0.02 | Multi-context: surprise, fear, joy, speech. Slight resting value for natural look. |
| 24 | jawRight | --- | --- | 0.00 | Rarely VAD-driven. Mirror of jawLeft. |
| 25 | mouthClose | A- (low arousal) | Neutral state | 0.05 | Counteracts jawOpen. Keeps mouth closed during low-arousal states. |
| 26 | mouthDimpleLeft | V+ (positive valence) | --- | 0.00 | Dimpling in smiles. |
| 27 | mouthDimpleRight | V+ (positive valence) | --- | 0.00 | Mirror |
| 28 | mouthFrownLeft | V- (negative valence) | --- | 0.00 | Primary frown. Strongest single negative-valence indicator. |
| 29 | mouthFrownRight | V- (negative valence) | --- | 0.00 | Mirror |
| 30 | mouthFunnel | D- (low dominance) | V- (fear vocalization) | 0.00 | Lip rounding/funneling in submissive/fearful states. |
| 31 | mouthLeft | --- | --- | 0.00 | Asymmetric mouth shift. Not directly VAD-driven. Can be used for contempt (unilateral). |
| 32 | mouthLowerDownLeft | D- (vulnerability) | V- (sadness) | 0.00 | Lower lip drops in vulnerable states. |
| 33 | mouthLowerDownRight | D- (vulnerability) | V- (sadness) | 0.00 | Mirror |
| 34 | mouthPressLeft | D+ (dominance), V- (suppression) | Determination, anger suppression | 0.00 | Lip pressing for resolve or suppressed anger. |
| 35 | mouthPressRight | D+ (dominance), V- (suppression) | Same as left | 0.00 | Mirror |
| 36 | mouthPucker | --- | Special (kisses, certain phonemes) | 0.00 | Rarely VAD-driven. Lip pucker for specific actions. |
| 37 | mouthRight | --- | --- | 0.00 | Asymmetric shift. Not directly VAD-driven. |
| 38 | mouthRollLower | V- (negative, suppression) | Sadness, holding back | 0.00 | Lower lip rolls inward when suppressing emotion. |
| 39 | mouthRollUpper | V- (negative, suppression) | Frustration, suppression | 0.00 | Upper lip rolls inward for suppression. |
| 40 | mouthShrugLower | A+ (arousal) | D+ (firmness) | 0.00 | Lower lip area tenses with activation. |
| 41 | mouthShrugUpper | A+ (arousal) | D+ (firmness) | 0.00 | Upper lip area tenses with activation. |
| 42 | mouthSmileLeft | V+ (positive valence) | --- | 0.00 | Primary positive valence indicator. The most important single blendshape for valence. |
| 43 | mouthSmileRight | V+ (positive valence) | --- | 0.00 | Mirror |
| 44 | mouthStretchLeft | V- (distress), A+ (arousal) | Fear, pain | 0.00 | Lip stretching in high-arousal negative states. |
| 45 | mouthStretchRight | V- (distress), A+ (arousal) | Same as left | 0.00 | Mirror |
| 46 | mouthUpperUpLeft | V+ (broad smile) | A+ (laughter) | 0.00 | Upper lip raises to show teeth in intense positive states. |
| 47 | mouthUpperUpRight | V+ (broad smile) | A+ (laughter) | 0.00 | Mirror |
| 48 | noseSneerLeft | D+ (dominance), V- (disgust) | A+ (respiration) | 0.00 | Nose wrinkle for disgust; nostril flare for dominance/anger. Same shape, two mechanisms. |
| 49 | noseSneerRight | D+ (dominance), V- (disgust) | A+ (respiration) | 0.00 | Mirror |
| 50 | tongueOut | --- | --- | 0.00 | Not VAD-driven. Speech/voluntary only. |
| 51 | eyeLookUpLeft | --- | --- | 0.00 | Gaze targeting, not emotion-driven. |
| 52 | eyeLookUpRight | --- | --- | 0.00 | Mirror |

*Note: The ARKit specification includes eyeLookUpLeft/Right in its 52 blendshapes. These are listed here for completeness but are gaze-direction shapes, not emotion shapes.*

---

## 5. Interaction Effects

VAD dimensions do not operate independently --- they interact in complex, sometimes non-linear ways. This section describes the key interactions and their implications for blendshape computation.

### 5.1 Valence x Arousal Interactions

| Combination | Emotion Region | Facial Result | Key Blendshape Pattern |
|-------------|---------------|---------------|----------------------|
| V+ / A+ (high valence, high arousal) | Excitement, ecstasy, elation | Broad open smile, wide eyes, raised cheeks. The "beaming" face. Mouth opens with smile. | mouthSmileL/R (0.8+), cheekSquintL/R (0.6+), eyeWideL/R (0.5+), jawOpen (0.3+), mouthUpperUpL/R (0.15) |
| V+ / A- (high valence, low arousal) | Serenity, contentment, calm satisfaction | Gentle closed-mouth smile, soft eyes (slightly narrowed), relaxed brows. The "Mona Lisa" face. | mouthSmileL/R (0.3-0.5), cheekSquintL/R (0.2-0.3), eyeSquintL/R (0.15), all subtle |
| V- / A+ (negative valence, high arousal) | Fear, anger, panic, rage (depends on D) | Intense facial activation. Wide or narrowed eyes (D-dependent), strong mouth shapes. The face is maximally expressive. | See D interactions below --- this quadrant requires D to disambiguate. |
| V- / A- (negative valence, low arousal) | Sadness, depression, resignation, boredom | Flat face with subtle downward signals. Frown, drooping lids, minimal movement. The face "collapses." | mouthFrownL/R (0.3-0.5), eyeBlinkL/R baseline +0.15 (droopy), browInnerUp (0.2, slight), minimal dynamics |

### 5.2 Valence x Dominance Interactions

| Combination | Emotion Region | Facial Result | Key Blendshape Pattern |
|-------------|---------------|---------------|----------------------|
| V+ / D+ (positive, dominant) | Pride, triumph, smugness | Slight smile with lowered brows and direct gaze. Controlled positive expression. The "I won" face. | mouthSmileL/R (0.4-0.6), browDownL/R (0.2), eyeSquintL/R (0.25), noseSneerL/R (0.1) |
| V+ / D- (positive, submissive) | Gratitude, awe, relief | Open, vulnerable positive expression. Raised brows, wide eyes, gentle smile. The "thank you so much" face. | mouthSmileL/R (0.4-0.6), browInnerUp (0.35), browOuterUpL/R (0.25), eyeWideL/R (0.2) |
| V- / D+ (negative, dominant) | Anger, contempt, disgust | Intense, confrontational expression. Lowered brows, compressed or sneering mouth, narrowed eyes. The "threat" face. | browDownL/R (0.5), noseSneerL/R (0.35), eyeSquintL/R (0.3), mouthPressL/R (0.25), jawForward (0.2) |
| V- / D- (negative, submissive) | Fear, shame, sadness, helplessness | Withdrawn, vulnerable expression. Raised inner brows, wide or averted eyes, trembling mouth. The "please don't hurt me" face. | browInnerUp (0.5), eyeWideL/R (0.4) or eyeLookDownL/R (0.3, shame), mouthFrownL/R (0.4), mouthLowerDownL/R (0.15) |

### 5.3 Arousal x Dominance Interactions

| Combination | Effect on Expression |
|-------------|---------------------|
| A+ / D+ (activated, dominant) | Maximum facial intensity. Fast, decisive movements. Strong brow lowering, jaw clenching, nostril flare. Think "battle ready." |
| A+ / D- (activated, submissive) | Maximum facial vulnerability. Fast, jittery movements. Brow raising, eye widening, mouth trembling. Think "deer in headlights." |
| A- / D+ (calm, dominant) | Minimal but controlled expression. Contempt territory. Slight brow lower, slight asymmetric mouth. Think "cold authority." |
| A- / D- (calm, submissive) | Minimal and collapsed expression. Depression, resignation. Almost no facial movement. Think "given up." |

### 5.4 Non-Linear Relationships and Override Rules

#### Rule 1: Extreme Arousal Amplitude Override
When A > 0.85, arousal amplifies all other blendshape weights by a factor of 1.0 + (A - 0.85) * 2.0. This means at A = 1.0, all weights are multiplied by ~1.3. Rationale: extreme emotional states produce exaggerated facial expressions that exceed the "normal" range.

#### Rule 2: Valence Polarity Exclusion
Positive-valence shapes (mouthSmile, cheekSquint) and negative-valence shapes (mouthFrown, mouthStretch) are mutually exclusive with a soft transition zone:
- When V > 0.55: positive shapes only, negative shapes forced to 0
- When V < 0.45: negative shapes only, positive shapes forced to 0
- When 0.45 <= V <= 0.55: both are attenuated; linear crossfade between positive and negative sets. Weight = base_weight * (1.0 - abs(V - 0.5) / 0.05) for the "losing" side.

Exception: certain emotions like bittersweet nostalgia or relieved-crying can produce blended smiles-with-tears. This requires explicit categorical override, not purely dimensional mapping.

#### Rule 3: Dominance-Brow Conflict Resolution
browInnerUp (submission signal) and browDownL/R (dominance signal) are antagonistic. The resolution:
```
if D > 0.6:
    browDown weight = dominance_contribution
    browInnerUp weight = max(0, arousal_contribution - dominance_suppression)
elif D < 0.4:
    browInnerUp weight = submission_contribution + sadness_contribution
    browDown weight = 0
else:
    // Transition zone: both attenuated
    blend_factor = (D - 0.4) / 0.2  // 0 at D=0.4, 1 at D=0.6
    browDown weight = dominance_contribution * blend_factor
    browInnerUp weight = submission_contribution * (1 - blend_factor)
```

#### Rule 4: Arousal Gates Expression Visibility
Very low arousal (A < 0.15) attenuates ALL emotion-driven blendshapes by a factor of (A / 0.15). Rationale: an extremely deactivated state (near sleep) produces almost no visible facial expression regardless of valence or dominance. This prevents the system from generating strong smiles or frowns during sleep-like states.

#### Rule 5: Jaw Open Competition
jawOpen is driven by arousal, speech/lip sync, and certain emotion states. Priority order:
1. Lip sync (phoneme-driven) --- highest priority, overrides emotion
2. Emotion-driven jaw (surprise, fear gasp, laughter) --- second priority
3. Arousal baseline --- lowest priority

The final jawOpen = max(lipSync_jaw, emotion_jaw, arousal_baseline_jaw). This prevents emotion from fighting with speech animation.

### 5.5 Multi-Driver Blendshapes (Shapes Controlled by Multiple VAD Dimensions)

These blendshapes receive input from two or more VAD dimensions and require careful combination logic.

| Blendshape | Drivers | Combination Rule |
|------------|---------|-----------------|
| browInnerUp | V- (sadness), A+ (surprise), D- (submission) | Additive with clamp: weight = clamp(sadness_V + surprise_A + submission_D, 0, 1). All three contribute because inner brow raise is a convergent signal across worry, alertness, and vulnerability. |
| eyeSquintL/R | V+ (Duchenne), D+ (intensity), A- (relaxation) | Context-dependent: if V > 0.5, use Duchenne coefficient; if D > 0.6, use dominance coefficient; if A < 0.3, use relaxation coefficient. Take max of applicable coefficients. |
| eyeWideL/R | A+ (arousal), D- (vulnerability) | Additive: weight = arousal_wide + vulnerability_wide. Both widen eyes, and they stack (fearful surprise produces maximum eye wideness). |
| noseSneerL/R | D+ (dominance/anger), V- (disgust), A+ (respiration) | Additive with priority: disgust contribution takes precedence (it uses the same AU9 wrinkle). Dominance adds nostril flare. Arousal adds subtle dilation. weight = max(disgust_V, dominance_D) + arousal_A * 0.3 |
| mouthPressL/R | D+ (determination), V- (suppression) | Additive: weight = dominance_press + suppression_press. Both compress the lips --- resolve and anger-suppression use the same muscles. |
| jawOpen | A+ (arousal), V+ with A+ (laughter), V- with A+ (gasp/cry) | See Rule 5 above. Context: positive = laughing mouth; negative = gasping/wailing mouth; neutral = arousal-only jaw drop. |

---

## 6. Practical Mapping Strategy

### 6.1 Recommended Architecture: Hybrid Parametric + Lookup

A pure linear mapping from VAD to 52 blendshapes is insufficient because of the non-linear interactions described in Section 5. A pure lookup table from categorical emotions is too coarse and produces discrete jumps. The recommended approach is a **hybrid** system.

#### Layer 1: Parametric Base Layer (Continuous)
Each blendshape has a parametric function of V, A, D:

```
blendshape_weight[i] = f_i(V, A, D)
```

Where f_i is a composition of:
1. **Primary driver function**: The dominant VAD dimension for that blendshape (e.g., valence for mouthSmile)
2. **Modulation functions**: How other dimensions scale or gate the primary contribution
3. **Conflict resolution**: Mutual exclusion and competition rules

The recommended function form for each primary driver is a **sigmoid-scaled quadratic**:

```
// For a blendshape driven by positive valence:
primary = max(0, V - 0.5) * 2.0        // Map [0.5, 1.0] to [0.0, 1.0]
shaped = primary^gamma                   // gamma > 1 for accelerating curve
scaled = shaped * max_weight             // Scale to maximum contribution
gated = scaled * gate(A, D)             // Apply arousal/dominance gates

// For a blendshape driven by negative valence:
primary = max(0, 0.5 - V) * 2.0        // Map [0.5, 0.0] to [0.0, 1.0]
// ... same shaping pipeline
```

Recommended gamma values:
- **Smile/frown shapes**: gamma = 1.8 (perceptually, small smiles need to be bigger to be visible)
- **Eye shapes**: gamma = 1.3 (eyes are perceptually sensitive, less exaggeration needed)
- **Brow shapes**: gamma = 1.5 (moderate nonlinearity)
- **Nose shapes**: gamma = 2.0 (nose sneer looks unnatural at low intensities, needs strong gating)

#### Layer 2: Emotion Archetype Blending (Discrete Anchors)
Define a set of **emotion archetype blendshape vectors** --- pre-designed 52-dimensional vectors for each core emotion:

```javascript
const ARCHETYPES = {
    joy:         { mouthSmileLeft: 0.8, mouthSmileRight: 0.8, cheekSquintLeft: 0.6, ... },
    anger:       { browDownLeft: 0.5, browDownRight: 0.5, noseSneerLeft: 0.4, ... },
    fear:        { browInnerUp: 0.6, eyeWideLeft: 0.7, eyeWideRight: 0.7, ... },
    sadness:     { mouthFrownLeft: 0.5, mouthFrownRight: 0.5, browInnerUp: 0.4, ... },
    surprise:    { browInnerUp: 0.5, browOuterUpLeft: 0.6, eyeWideLeft: 0.8, jawOpen: 0.4, ... },
    disgust:     { noseSneerLeft: 0.6, noseSneerRight: 0.6, mouthUpperUpLeft: 0.3, ... },
    contempt:    { mouthSmileRight: 0.25, mouthDimpleRight: 0.3, browDownLeft: 0.15, ... },
    // ... social emotions
};
```

For each VAD input, compute the **proximity** to each archetype in VAD space (using Euclidean distance) and blend nearby archetypes weighted by inverse distance:

```javascript
function archetypeBlend(V, A, D) {
    const weights = {};
    let totalWeight = 0;

    for (const [name, archetype] of Object.entries(ARCHETYPES)) {
        const dist = euclideanDistance(
            [V, A, D],
            [archetype.V, archetype.A, archetype.D]
        );
        // Gaussian RBF kernel for smooth blending
        const w = Math.exp(-dist * dist / (2 * sigma * sigma));
        weights[name] = w;
        totalWeight += w;
    }

    // Normalize and blend
    const result = new Float32Array(52).fill(0);
    for (const [name, w] of Object.entries(weights)) {
        const normalized = w / totalWeight;
        for (let i = 0; i < 52; i++) {
            result[i] += ARCHETYPES[name].blendshapes[i] * normalized;
        }
    }
    return result;
}
```

Recommended sigma: 0.25-0.35 (controls how sharply archetypes dominate as you get close to them).

#### Layer 3: Combination
Blend the parametric and archetype layers:

```javascript
function vadToBlendshapes(V, A, D, parametricWeight = 0.6) {
    const parametric = parametricLayer(V, A, D);       // Layer 1
    const archetype = archetypeBlend(V, A, D);         // Layer 2

    const result = new Float32Array(52);
    for (let i = 0; i < 52; i++) {
        result[i] = parametric[i] * parametricWeight
                   + archetype[i] * (1.0 - parametricWeight);
    }

    // Apply conflict resolution (Section 5.4 rules)
    applyMutualExclusions(result, V, A, D);

    // Clamp all values to [0, 1]
    for (let i = 0; i < 52; i++) {
        result[i] = Math.max(0, Math.min(1, result[i]));
    }

    return result;
}
```

The parametricWeight of 0.6 is recommended because:
- The parametric layer handles continuous transitions smoothly
- The archetype layer ensures recognizable expressions at canonical emotion points
- 60/40 favoring parametric produces natural-looking movement while hitting the right targets

### 6.2 Temporal Dynamics: Transition Handling

Emotions do not switch instantaneously. The transition between emotional states must be temporally smoothed to avoid jarring animation. Key principles from affective dynamics research (Kuppens et al., 2010):

#### Onset/Offset Asymmetry
Emotions onset faster than they offset. Ekman (1984) observed:
- **Onset**: 150-500ms for basic emotions (surprise is fastest at ~150ms; sadness is slowest at ~500ms)
- **Offset**: 300-1000ms (emotions linger, especially negative ones)

Implementation: use asymmetric exponential smoothing:

```javascript
function smoothVAD(currentVAD, targetVAD, deltaTime) {
    const onsetTau = 0.15;   // 150ms time constant for moving toward target
    const offsetTau = 0.40;  // 400ms time constant for moving away from target

    const result = [0, 0, 0];
    for (let i = 0; i < 3; i++) {
        const diff = targetVAD[i] - currentVAD[i];
        const intensity_increasing = Math.abs(targetVAD[i] - 0.5) > Math.abs(currentVAD[i] - 0.5);
        const tau = intensity_increasing ? onsetTau : offsetTau;
        const alpha = 1.0 - Math.exp(-deltaTime / tau);
        result[i] = currentVAD[i] + diff * alpha;
    }
    return result;
}
```

#### Arousal-Dependent Transition Speed
High-arousal transitions are faster than low-arousal transitions:

```javascript
const arousalSpeedFactor = 0.5 + currentArousal * 1.0;  // Range: 0.5x to 1.5x speed
const adjustedTau = baseTau / arousalSpeedFactor;
```

#### Micro-Expression Injection
Real faces are never perfectly still. Even in a sustained emotional state, small fluctuations occur. Add Perlin noise or sinusoidal micro-movements:

```javascript
function addMicroExpressions(blendshapes, arousal, time) {
    const amplitude = 0.005 + arousal * 0.025;  // Higher arousal = more micro-movement
    const frequency = 0.5 + arousal * 2.0;       // Higher arousal = faster fluctuations

    for (let i = 0; i < 52; i++) {
        if (blendshapes[i] > 0.01) {  // Only add noise to active shapes
            const noise = perlinNoise(time * frequency + i * 7.3) * amplitude;
            blendshapes[i] = Math.max(0, Math.min(1, blendshapes[i] + noise));
        }
    }
    return blendshapes;
}
```

#### Blink System Integration
Blinks must be handled as a separate temporal system that overlays on the emotion blendshapes:

```javascript
class BlinkController {
    constructor() {
        this.nextBlinkTime = 0;
        this.blinkPhase = 0;  // 0 = waiting, 1 = closing, 2 = opening
        this.blinkProgress = 0;
    }

    update(deltaTime, arousal) {
        // Arousal modulates blink interval
        const meanInterval = 4.5 - arousal * 3.0;  // Range: 1.5s (high A) to 4.5s (low A)
        const intervalVariance = meanInterval * 0.3;

        // Arousal modulates blink speed
        const blinkDuration = 0.25 - arousal * 0.12;  // Range: 0.13s to 0.25s

        // ... blink state machine ...
        // Returns eyeBlinkLeft/Right values to overlay
    }
}
```

### 6.3 Implementation Pipeline Summary

```
Audio Input
    |
    v
[AnimaSync WASM Engine]
    |
    +--> Phoneme extraction --> Lip sync blendshapes (mouth region)
    |
    +--> Vocal feature extraction --> VAD estimation
              |                          |
              v                          v
         [Energy, Pitch,          [V, A, D values]
          Spectral features]           |
                                       v
                                [Temporal Smoothing]
                                (onset/offset asymmetry)
                                       |
                                       v
                              [VAD -> Blendshapes]
                              (Hybrid: parametric + archetype)
                                       |
                                       v
                              [Conflict Resolution]
                              (mutual exclusion, priority, clamping)
                                       |
                                       v
                              [Micro-Expression Injection]
                              (Perlin noise, arousal-modulated)
                                       |
                                       v
                              [Blink Overlay]
                              (independent stochastic system)
                                       |
                                       v
                              [Merge with Lip Sync]
                              (lip sync overrides mouth region;
                               emotion owns eyes, brows, cheeks, nose)
                                       |
                                       v
                              [Final 52-dim Blendshape Vector]
                                       |
                                       v
                              [Apply to VRM/Avatar Mesh]
```

### 6.4 Region Priority and Lip Sync Coexistence

When lip sync and emotion expression target the same blendshapes, conflicts must be resolved. The recommended approach:

**Mouth region** (jawOpen, mouthClose, mouthFunnel, mouthPucker, mouthSmileL/R, mouthFrownL/R, mouthUpperUpL/R, mouthLowerDownL/R, mouthStretchL/R, mouthShrugL/R, mouthPressL/R, mouthRollLower, mouthRollUpper, mouthDimpleL/R, mouthLeft, mouthRight, tongueOut):
- **Lip sync shapes** (jaw, tongue, funnel, pucker, close, lower/upper lip) take priority
- **Emotion shapes** (smile, frown, dimple, press) are blended additively but clamped
- Formula: `final = clamp(lipSync + emotion * emotionInfluence, 0, 1)` where emotionInfluence = 0.3-0.5 during speech (emotions are subdued while talking) and 1.0 during silence

**Upper face region** (brows, eyes, cheeks, nose):
- **Emotion owns this region entirely** during both speech and silence
- Lip sync does not affect brows, eyes, cheeks, or nose
- This separation is anatomically grounded: humans can smile with their eyes while saying any phoneme

---

## Key References

1. **Russell, J.A.** (1980). A circumplex model of affect. *Journal of Personality and Social Psychology, 39*(6), 1161-1178.
2. **Mehrabian, A., & Russell, J.A.** (1974). *An approach to environmental psychology*. MIT Press.
3. **Mehrabian, A.** (1996). Pleasure-arousal-dominance: A general framework for describing and measuring individual differences in temperament. *Current Psychology, 14*, 261-292.
4. **Ekman, P., & Friesen, W.V.** (1978). *Facial Action Coding System: A technique for the measurement of facial movement*. Consulting Psychologists Press.
5. **Ekman, P.** (1992). An argument for basic emotions. *Cognition & Emotion, 6*(3-4), 169-200.
6. **Fontaine, J.R., Scherer, K.R., Roesch, E.B., & Ellsworth, P.C.** (2007). The world of emotions is not two-dimensional. *Psychological Science, 18*(12), 1050-1057.
7. **Mohammad, S.M.** (2018). Obtaining reliable human ratings of valence, arousal, and dominance for 20,000 English words. *ACL 2018*.
8. **Warriner, A.B., Kuperman, V., & Brysbaert, M.** (2013). Norms of valence, arousal, and dominance for 13,915 English lemmas. *Behavior Research Methods, 45*(4), 1191-1207.
9. **Bradley, M.M., & Lang, P.J.** (1999). Affective norms for English words (ANEW). NIMH Center for the Study of Emotion and Attention.
10. **Keltner, D., & Haidt, J.** (2003). Approaching awe, a moral, spiritual, and aesthetic emotion. *Cognition & Emotion, 17*(2), 297-314.
11. **Tracy, J.L., & Robins, R.W.** (2007). The prototypical pride expression: Development of a nonverbal behavior coding system. *Emotion, 7*(4), 789-801.
12. **Hess, U., Adams, R.B., & Kleck, R.E.** (2005). Who may frown and who should smile? Dominance, affiliation, and the display of happiness and anger. *Cognition & Emotion, 19*(4), 515-536.
13. **Kreibig, S.D.** (2010). Autonomic nervous system activity in emotion: A review. *Biological Psychology, 84*(3), 394-421.
14. **Scherer, K.R., & Ellgring, H.** (2007). Multimodal expression of emotion: Affect programs or componential appraisal patterns? *Emotion, 7*(1), 158-171.
15. **Sedikides, C., Wildschut, T., Routledge, C., Arndt, J., Hepper, E.G., & Zhou, X.** (2015). To nostalgize: Mixing memory with affect and desire. *Advances in Experimental Social Psychology, 51*, 189-273.
16. **Kuppens, P., Oravecz, Z., & Tuerlinckx, F.** (2010). Feelings change: Accounting for individual differences in the temporal dynamics of affect. *Journal of Personality and Social Psychology, 99*(6), 1042-1060.
17. **Bentivoglio, A.R., Bressman, S.B., Cassetta, E., Carretta, D., Tonali, P., & Albanese, A.** (1997). Analysis of blink rate patterns in normal subjects. *Movement Disorders, 12*(6), 1028-1034.
18. **Rozin, P., & Fallon, A.E.** (1987). A perspective on disgust. *Psychological Review, 94*(1), 23-41.
19. **Davidson, R.J.** (1992). Anterior cerebral asymmetry and the nature of emotion. *Brain and Cognition, 20*(1), 125-151.

---

## Appendix A: Quick Reference --- Emotion to Dominant Blendshapes

For rapid implementation, here are the top 5 most important blendshapes for each core emotion:

| Emotion | Blendshape 1 | Blendshape 2 | Blendshape 3 | Blendshape 4 | Blendshape 5 |
|---------|-------------|-------------|-------------|-------------|-------------|
| Joy | mouthSmileL/R (0.8) | cheekSquintL/R (0.6) | eyeSquintL/R (0.3) | mouthDimpleL/R (0.2) | jawOpen (0.15) |
| Anger | browDownL/R (0.5) | noseSneerL/R (0.4) | eyeSquintL/R (0.3) | mouthPressL/R (0.3) | jawForward (0.2) |
| Sadness | mouthFrownL/R (0.5) | browInnerUp (0.4) | eyeBlinkL/R +0.15 | mouthRollLower (0.2) | eyeLookDownL/R (0.2) |
| Surprise | eyeWideL/R (0.8) | browOuterUpL/R (0.6) | browInnerUp (0.5) | jawOpen (0.4) | mouthFunnel (0.1) |
| Fear | browInnerUp (0.6) | eyeWideL/R (0.7) | mouthStretchL/R (0.3) | mouthFrownL/R (0.3) | jawOpen (0.2) |
| Disgust | noseSneerL/R (0.6) | mouthUpperUpL/R (0.3) | browDownL/R (0.2) | mouthFrownL/R (0.2) | cheekSquintL/R (0.15) |
| Contempt | mouthSmileR only (0.25) | mouthDimpleR (0.3) | browDownL (0.15) | eyeSquintL/R (0.1) | noseSneerL (0.1) |
| Excitement | mouthSmileL/R (0.85) | eyeWideL/R (0.5) | cheekSquintL/R (0.5) | jawOpen (0.35) | browOuterUpL/R (0.3) |
| Serenity | mouthSmileL/R (0.35) | cheekSquintL/R (0.2) | eyeSquintL/R (0.15) | --- | --- |
| Pride | mouthSmileL/R (0.45) | browDownL/R (0.2) | noseSneerL/R (0.1) | eyeSquintL/R (0.2) | jawForward (0.1) |
| Shame | eyeLookDownL/R (0.4) | browInnerUp (0.35) | mouthFrownL/R (0.25) | mouthRollLower (0.15) | eyeBlinkL/R +0.1 |
| Fear | browInnerUp (0.6) | eyeWideL/R (0.7) | mouthStretchL/R (0.3) | jawOpen (0.25) | mouthFrownL/R (0.25) |

*Note: L/R notation means both left and right variants receive the listed weight. For contempt, the asymmetry is intentional --- contempt is characteristically unilateral (Ekman, 1992).*

## Appendix B: Blendshapes NOT Primarily Driven by VAD

These blendshapes are part of the ARKit 52 set but are not meaningfully driven by VAD dimensions in isolation:

| Blendshape | Primary Use | Notes |
|------------|------------|-------|
| jawLeft, jawRight | Speech co-articulation | Lateral jaw movement for phonemes |
| mouthLeft, mouthRight | Speech, asymmetric expressions | Can be used for contempt (mouthRight for right-side smirk) |
| mouthPucker | Lip rounding phonemes (oo, u) | Primarily lip sync |
| mouthFunnel | Lip rounding phonemes (oh, aw) | Some fear contribution but mainly speech |
| tongueOut | Speech, voluntary | Not emotion-driven |
| eyeLookInL/R, eyeLookOutL/R | Gaze direction | Driven by attention/gaze system, not VAD |
| eyeLookUpL/R | Gaze direction | Same as above |
| cheekPuff | Breath holding, exasperation | Rarely pure VAD; more often voluntary/speech |

These shapes should be handled by their respective subsystems (lip sync, gaze controller) and left at 0.0 by the emotion/VAD layer unless specifically needed for an archetype expression.
