# FACS trainer: public-source research

Researched September 6, 2026, before implementation. Scope: Melinda Ozel's public learning hub, FACS and tracking references, learning/capture guidance, facial variation, emotion-tracking critiques, and adjacent speech resources. Public previews were read only up to their access boundary. No account, premium text, course recording, or protected reference asset was accessed. This is a substantive review of relevant public material, not a claim to have audited every URL on the domain.

## Findings that determine the trainer

1. **Teach visible actions.** FACS provides a vocabulary for observable facial movement. A practice app should name AUs and changes in appearance, rather than score happiness, sincerity, personality, or emotional intent. [FAQs](https://melindaozel.com/faqs/), [It's All in the Eyes and Other Lies](https://melindaozel.com/its-all-in-the-eyes-and-other-lies/).
2. **Begin with the learner's face.** Neutral shape can be mistaken for action; individuals differ in facial anatomy and in how their motion looks. The implementation therefore captures a neutral baseline and a comfortable range for each scored action. These are design decisions informed by the research, not a validated calibration protocol from Ozel. [Bias in Emotion Tracking](https://melindaozel.com/bias-in-emotion-tracking/), [Frontalis Variation](https://melindaozel.com/frontalis-variation/), [Eyelid Crease Variation](https://melindaozel.com/eyelid-crease-variation/).
3. **Organize by region and build complexity within it.** The guided path starts with brows, then eyes, midface, and mouth/jaw. Combinations use previously practiced components. Poses, cues, and demonstrations must agree. [Facial Performance: 3 Essential Tips for Data Capture Protocols](https://melindaozel.com/facial-expressions-facial-data-capture/).
4. **Isolation is learned, not assumed.** AU1 can be difficult to pose voluntarily. The trainer permits retries, unscored mirror practice, and skipping an unmeasurable range without marking the action as mastered. [The Secret Life of Inner Brow Raiser](https://melindaozel.com/the-secret-life-of-inner-brow-raiser/).
5. **Keep closely related actions distinct.** AU6 emphasizes the outer eye/cheek area; AU7 involves eyelid tightening. A brief eye closure is not sufficient evidence of either. Wrinkles alone are not a universal criterion. [Cheek Raiser vs. Lid Tightener](https://melindaozel.com/cheek-raiser-vs-lid-tightener/).
6. **Trackers are not FACS coders.** A blendshape is a model output. Shared naming does not establish an exact anatomical mapping or a calibrated probability. In particular, mouthStretch is associated with AU20, not AU27; jawOpen cannot establish whether opening is relaxed or forced; mouthPress does not establish AU23. Unsupported distinctions must remain explicitly unscored. [ARKit to FACS](https://melindaozel.com/arkit-to-facs-cheat-sheet/).
7. **Combinations describe movements.** AU6+12 is a cheek-and-lip-corner combination; its presence does not establish a felt or sincere smile. Cross-region challenges in this app are original practice arrangements, not reproductions of Ozel's premium combination library. [It's All in the Eyes and Other Lies](https://melindaozel.com/its-all-in-the-eyes-and-other-lies/).

## Public material reviewed

| Source | Scope and useful conclusion |
| --- | --- |
| [Homepage](https://melindaozel.com/) | Mapped the public learning resources and distinguished them from paid study guides. |
| [Free resources index](https://melindaozel.com/free-resources/) | Surveyed the FACS/anatomy, tracking/speech, behavior, and comparative-anatomy categories. Human motion and tracking sections received the detailed review relevant to this product. |
| [FACS Cheat Sheet](https://melindaozel.com/facs-cheat-sheet/) | Reviewed all action sections, including jaw actions and descriptors. Preserved standard AU names; did not present Ozel's non-FACS extensions as official AUs. AU25 describes lip separation; AU26 and AU27 differ in the nature of jaw opening. |
| [ARKit to FACS Cheat Sheet](https://melindaozel.com/arkit-to-facs-cheat-sheet/) | Reviewed mappings and missing shapes. Used to check category selection and to identify ambiguous or unsupported movements. The actual MediaPipe category strings are checked independently against its model. |
| [FAQs](https://melindaozel.com/faqs/) | Reviewed learning guidance and the difference between performing facial movements and learning formal facial coding. |
| [Facial capture protocol tips](https://melindaozel.com/facial-expressions-facial-data-capture/) | Region grouping, manageable difficulty, and consistent visual/verbal prompts inform the sequence. |
| [The Secret Life of Inner Brow Raiser](https://melindaozel.com/the-secret-life-of-inner-brow-raiser/) | Reviewed the public article. An isolated inner-brow raise can be difficult despite spontaneous ability to produce it. Embedded video was located but not transcribed or represented as watched. |
| [Cheek Raiser vs. Lid Tightener](https://melindaozel.com/cheek-raiser-vs-lid-tightener/) | Reviewed the action comparison and described visual examples. Co-occurrence and appearance variation warrant cautious feedback. |
| [Bias in Emotion Tracking](https://melindaozel.com/bias-in-emotion-tracking/) | Reviewed classification, labeling, cultural, age-related, and feature-related concerns. Calibration can address offsets; it cannot remove learned model bias. |
| [Eyelid Crease Variation](https://melindaozel.com/eyelid-crease-variation/) | Reviewed public discussion of varied lid folds and blink appearance. No crease-specific rule is used as a universal requirement. |
| [It's All in the Eyes and Other Lies](https://melindaozel.com/its-all-in-the-eyes-and-other-lies/) | Reviewed the critique of sincerity and emotion inference, including the distinction between a facial pattern and the experience behind it. |
| [Frontalis Variation](https://melindaozel.com/frontalis-variation/) | Public preview only. Forehead wrinkles vary with anatomy; subscriber-only diagrams were not accessed. |
| [Squishy Faces & Expressions](https://melindaozel.com/squishy-faces-expressions/) | Public discussion of soft-tissue redistribution. An illustrative line drawing cannot serve as a complete anatomical ground truth. |
| [Viseme Cheat Sheet](https://melindaozel.com/viseme-cheat-sheet/) | Surveyed the public phoneme/viseme reference and variability caveats. Speech matching is outside this trainer's scoring scope. |
| [Viseme Variability: Gritted Teeth & Muted Speech](https://melindaozel.com/viseme-variability-gritted-teeth-muted-speech/) | Reviewed the examples of speech with minimal lip/jaw movement. A sound prompt cannot guarantee one target face shape. |
| [8 Signs the FACS Manual Is Not For You](https://melindaozel.com/reasons-the-facs-manual-is-not-for-you/) | Reviewed distinctions between formal coding rules and animation/capture needs, and the importance of motion and diverse reference faces. |
| [About Melinda Ozel](https://melindaozel.com/who-is-melinda-ozel/) | Read the author's description of her work in facial systems, performance capture, animation, and research. No affiliation or endorsement is implied. |
| [Lip Tightener vs. Lip Presser](https://melindaozel.com/lip-tightener-vs-lip-presser/) | Reached an explicit subscription boundary. No substantive article text used; distinctions are supported by the public FACS and ARKit sheets instead. |

The citation-policy, terms, smile-animation, and bilabial-asymmetry links returned retrieval errors during browsing. They are not counted as read. Images and embedded videos described in extracted text were not independently frame-audited. No Ozel photographs, GIFs, diagrams, branding, or long passages are bundled. The app links directly to her original references and uses original instructions and schematic drawings.

## Technical sources and limits

- [Google MediaPipe Face Landmarker web guide](https://developers.google.com/edge/mediapipe/solutions/vision/face_landmarker/web_js): browser inference, configuration, video timestamps, blendshape output, and execution costs.
- [Google Face Landmarker overview](https://developers.google.com/edge/mediapipe/solutions/vision/face_landmarker): landmark/blendshape task and trained model.
- [MDN getUserMedia](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia): explicit browser permission, secure-context requirements, camera errors, and media-track lifecycle.

The training score is an authored heuristic, not a FACS intensity grade, probability of correctness, or clinically/research-validated measure. It compares neutral-subtracted signals with a user's accepted reference range, requires every target in a combination, and checks selected competing movements. It cannot verify which muscle contracted. Calibration itself can contain the wrong action. Use the reference links and your own observation to review the proposed range before accepting it.

Validation should establish that the model executes, the calibration and scoring state machines behave correctly, unavailable signals cannot pass, face loss pauses progress, and preview data never becomes real progress. Establishing AU accuracy would additionally require consented diverse video data and independent certified FACS annotations; that study is not part of this implementation.


## Follow-up: isolation and directional guides (September 7, 2026)

Ozel's [Secret Life of Inner Brow Raiser](https://melindaozel.com/the-secret-life-of-inner-brow-raiser/) distinguishes medial and lateral frontalis movement; activating both produces a full brow raise. The public portion of [Inner Brow Raiser: Deep Dive](https://melindaozel.com/inner-brow-raiser-deep-dive/) also identifies brow-lowering/knitting contamination as a common error. This trainer therefore checks AU1, AU2, and AU4 separately where their model proxies permit it. It does not treat forehead use as an alternative to AU2: both brow raisers involve frontalis. Small secondary movement and model cross-talk require tolerance. The thresholds are implementation choices awaiting human validation.

Public FacePunk media inspected directly:

- [Hero demo](https://facepunk.app/assets/hero.mp4), 46.6 seconds: sampled frames across 0.2–45 seconds. Around 24 seconds, a small directional cue sits at a brow tail. Around 30 seconds, the face carries several colored guides, including upward/outward mouth-corner arrows and cheek cues. A small expression reference remains above the live face. The sampled colors are observable; their exact success/error semantics cannot be established from these frames alone.
- [Course exercise 1](https://facepunk.app/assets/course-l1-1.mp4), 2.32 seconds, and [course exercise 2](https://facepunk.app/assets/course-l1-2.mp4), 2.8 seconds: three sampled frames per clip. These public clips show expression references rather than the AR overlays seen in the hero demo.
- [Expression-library clip](https://facepunk.app/assets/train-rock.mp4), 3.16 seconds: four sampled frames. It is another expression reference, not evidence of the guide overlay's behavior.

Design adopted: place original directional cues at the relevant facial landmarks, distinguish inner and outer brow anchors, and combine the component arrows for combined actions. Added here: explicitly separate target movement from unwanted co-activation with quiet-region markers and text corrections. These marks indicate training instructions rather than measured motion vectors. No FacePunk footage, photographs, interface assets, health claims, or proprietary scoring is incorporated into the app. Downloaded inspection media was kept separate from the product assets and removed after review.
