Skip to content

Commit dd1a46b

Browse files
jcgglclaude
andcommitted
feat: rename V2 from Student Model to Emotion Model across all pages and docs
V2 engine now uses FiLM-conditioned emotion model (neutral, joy, anger, sadness, surprise) instead of the previous student distillation model. Updated all references in homepage, example pages, meta tags, structured data, README, llms docs, and AI discovery configs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 6ff1f8f commit dd1a46b

File tree

8 files changed

+26
-26
lines changed

8 files changed

+26
-26
lines changed

.well-known/ai-catalog.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
},
5454
{
5555
"name": "@goodganglabs/lipsync-wasm-v2",
56-
"description": "V2 engine — 52-dim ARKit blendshapes via student distillation with 5-dim emotion control (FiLM conditioning).",
56+
"description": "V2 engine — 52-dim ARKit blendshapes via emotion model with 5-dim FiLM conditioning (neutral, joy, anger, sadness, surprise).",
5757
"url": "https://www.npmjs.com/package/@goodganglabs/lipsync-wasm-v2"
5858
}
5959
]

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Extracts emotion from speech and generates lip sync, facial expressions, and bod
1212

1313
[![npm V1](https://img.shields.io/npm/v/@goodganglabs/lipsync-wasm-v1?label=V1%20%E2%80%A2%20Phoneme&color=f59e0b&style=for-the-badge)](https://www.npmjs.com/package/@goodganglabs/lipsync-wasm-v1)
1414
&nbsp;
15-
[![npm V2](https://img.shields.io/npm/v/@goodganglabs/lipsync-wasm-v2?label=V2%20%E2%80%A2%20Student&color=10b981&style=for-the-badge)](https://www.npmjs.com/package/@goodganglabs/lipsync-wasm-v2)
15+
[![npm V2](https://img.shields.io/npm/v/@goodganglabs/lipsync-wasm-v2?label=V2%20%E2%80%A2%20Emotion&color=10b981&style=for-the-badge)](https://www.npmjs.com/package/@goodganglabs/lipsync-wasm-v2)
1616
&nbsp;
1717
[![Deploy](https://github.com/GoodGangLabs/AnimaSync/actions/workflows/pages.yml/badge.svg)](https://github.com/GoodGangLabs/AnimaSync/actions/workflows/pages.yml)
1818
&nbsp;
@@ -139,7 +139,7 @@ Working examples you can run locally — zero npm install, all loaded from CDN.
139139
| Example | Description | Live Demo | Source |
140140
|---------|-------------|-----------|--------|
141141
| **V1 Data** | V1 phoneme engine — 52 ARKit blendshapes visualization, ONNX inference, playback. | [Try it](https://animasync.quasar.ggls.dev/examples/vanilla-basic/) | [index.html](examples/vanilla-basic/index.html) |
142-
| **V2 Data** | V2 student model — 52 ARKit blendshapes direct prediction, crisp mouth. | [Try it](https://animasync.quasar.ggls.dev/examples/vanilla-avatar/) | [index.html](examples/vanilla-avatar/index.html) |
142+
| **V2 Data** | V2 emotion model — 52 ARKit blendshapes with 5-dim FiLM conditioning. | [Try it](https://animasync.quasar.ggls.dev/examples/vanilla-avatar/) | [index.html](examples/vanilla-avatar/index.html) |
143143
| **V1 vs V2** | Side-by-side dual avatar comparison. Same voice, two animation engines. | [Try it](https://animasync.quasar.ggls.dev/examples/vanilla-comparison/) | [index.html](examples/vanilla-comparison/index.html) |
144144

145145
**Run any example:**
@@ -167,7 +167,7 @@ The production site is available at **[animasync.quasar.ggls.dev](https://animas
167167
|---|---|---|
168168
| **npm** | `@goodganglabs/lipsync-wasm-v1` | `@goodganglabs/lipsync-wasm-v2` |
169169
| **Output** | 111-dim ARKit blendshapes | 52-dim ARKit blendshapes |
170-
| **Model** | Phoneme classification → viseme mapping | Student distillation (direct prediction) |
170+
| **Model** | Phoneme classification → viseme mapping | Emotion model + FiLM conditioning |
171171
| **Post-processing** | OneEuroFilter + anatomical constraints | crisp_mouth + fade + auto-blink |
172172
| **Expression generation** | Built-in `IdleExpressionGenerator` (blinks + micro-expressions) | Blink injection in post-process |
173173
| **Voice activity** | Built-in `VoiceActivityDetector` (body pose switching) | Not included |
@@ -220,7 +220,7 @@ The production site is available at **[animasync.quasar.ggls.dev](https://animas
220220
```
221221
Audio 16kHz PCM
222222
→ [WASM] librosa-compatible features: 141-dim @30fps
223-
→ [JS] ONNX student model → 52-dim (lip sync + expressions)
223+
→ [JS] ONNX emotion model + FiLM conditioning → 52-dim (lip sync + expressions)
224224
→ [WASM] crisp_mouth (mouth sharpening) → fade_in_out (natural onset/offset)
225225
→ [WASM] add_blinks (stochastic eye animation)
226226
→ [WASM] Preset blending: expression channels (brows, eyes) blended with lip sync

examples/vanilla-avatar/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Vanilla Avatar (V2)
22

3-
Full 3D VRM avatar driven by AnimaSync V2 — the 52-dim student model engine. Lip sync, facial expressions, natural eye blinks, and body motion — all generated from a single audio stream via direct blendshape prediction.
3+
Full 3D VRM avatar driven by AnimaSync V2 — the 52-dim emotion model engine with 5-dim FiLM conditioning. Lip sync, facial expressions, natural eye blinks, and body motion — all generated from a single audio stream.
44

55
## What it demonstrates
66

7-
- **52-dim ARKit output**: Standard blendshape channels via student model direct prediction
7+
- **52-dim ARKit output**: Standard blendshape channels via emotion model with FiLM conditioning
88
- **Lip sync**: Crisp mouth shapes with threshold-based sharpening
99
- **Facial expressions**: Brows and eye area respond to vocal characteristics
1010
- **Eye animation**: Natural stochastic blinks injected by post-processing

examples/vanilla-avatar/index.html

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,22 @@
33
<head>
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6-
<title>AnimaSync — V2: Student Model Animation Data (52-dim)</title>
7-
<meta name="description" content="AnimaSync V2 demo — student model lip sync engine with 52-dim ARKit blendshapes. Direct prediction, crisp mouth animation, real-time visualization.">
6+
<title>AnimaSync — V2: Emotion Model Animation Data (52-dim)</title>
7+
<meta name="description" content="AnimaSync V2 demo — emotion model lip sync engine with 52-dim ARKit blendshapes. 5-dim FiLM conditioning, crisp mouth animation, real-time visualization.">
88
<meta name="robots" content="index, follow">
99

1010
<!-- Open Graph -->
1111
<meta property="og:site_name" content="AnimaSync">
12-
<meta property="og:title" content="AnimaSync V2 Demo — Student Model Lip Sync">
13-
<meta property="og:description" content="Upload audio and visualize 52 ARKit blendshapes from the V2 student model. Crisp mouth animation via direct prediction.">
12+
<meta property="og:title" content="AnimaSync V2 Demo — Emotion Model Lip Sync">
13+
<meta property="og:description" content="Upload audio and visualize 52 ARKit blendshapes from the V2 emotion model. 5-dim FiLM conditioning with crisp mouth animation.">
1414
<meta property="og:type" content="website">
1515
<meta property="og:url" content="https://animasync.quasar.ggls.dev/examples/vanilla-avatar/">
1616
<meta property="og:image" content="https://animasync.quasar.ggls.dev/assets/readme/hero-banner.svg">
1717

1818
<!-- Twitter Card -->
1919
<meta name="twitter:card" content="summary_large_image">
20-
<meta name="twitter:title" content="AnimaSync V2 Demo — Student Model Lip Sync">
21-
<meta name="twitter:description" content="Upload audio and visualize 52 ARKit blendshapes from the V2 student model.">
20+
<meta name="twitter:title" content="AnimaSync V2 Demo — Emotion Model Lip Sync">
21+
<meta name="twitter:description" content="Upload audio and visualize 52 ARKit blendshapes from the V2 emotion model with FiLM conditioning.">
2222
<meta name="twitter:image" content="https://animasync.quasar.ggls.dev/assets/readme/hero-banner.svg">
2323

2424
<!-- Canonical & Favicon -->
@@ -31,7 +31,7 @@
3131
"@context": "https://schema.org",
3232
"@type": "WebApplication",
3333
"name": "AnimaSync V2 Demo",
34-
"description": "Student model lip sync engine demo — 52-dim ARKit blendshapes with direct prediction, running entirely in the browser via Rust/WASM.",
34+
"description": "Emotion model lip sync engine demo — 52-dim ARKit blendshapes with 5-dim FiLM conditioning, running entirely in the browser via Rust/WASM.",
3535
"url": "https://animasync.quasar.ggls.dev/examples/vanilla-avatar/",
3636
"applicationCategory": "DeveloperApplication",
3737
"operatingSystem": "Browser",
@@ -183,7 +183,7 @@ <h2>Audio Input</h2>
183183

184184
<!-- Right: Blendshapes -->
185185
<div class="card">
186-
<h2>52 ARKit Blendshapes — V2 Student</h2>
186+
<h2>52 ARKit Blendshapes — V2 Emotion</h2>
187187
<div class="bs-grid" id="bs-grid"></div>
188188
</div>
189189
</main>
@@ -195,7 +195,7 @@ <h2>52 ARKit Blendshapes — V2 Student</h2>
195195

196196
<script type="module">
197197
// ================================================================
198-
// AnimaSync — V2 Student Model Example
198+
// AnimaSync — V2 Emotion Model Example
199199
// No 3D avatar, no Three.js. Pure audio → lip sync data (52-dim).
200200
// ================================================================
201201

examples/vanilla-comparison/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"@context": "https://schema.org",
3131
"@type": "WebApplication",
3232
"name": "AnimaSync V1 vs V2 Comparison",
33-
"description": "Side-by-side comparison of V1 phoneme and V2 student model lip sync engines with dual 3D avatar rendering.",
33+
"description": "Side-by-side comparison of V1 phoneme and V2 emotion model lip sync engines with dual 3D avatar rendering.",
3434
"url": "https://animasync.quasar.ggls.dev/examples/vanilla-comparison/",
3535
"applicationCategory": "DeveloperApplication",
3636
"operatingSystem": "Browser",
@@ -206,7 +206,7 @@ <h1>Anima<span>Sync</span></h1>
206206
</div>
207207
<div class="pane">
208208
<div class="pane-header">
209-
<span class="pane-title v2">V2 — Student Model</span>
209+
<span class="pane-title v2">V2 — Emotion Model</span>
210210
<span class="pane-dim">52-dim ARKit</span>
211211
</div>
212212
<div class="canvas-wrap">

index.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -673,7 +673,7 @@ <h2 class="section-title">Install from npm</h2>
673673
<div class="pkg-name">@goodganglabs/lipsync-wasm-v2</div>
674674
<span class="pkg-tag pkg-tag-full">Lightweight</span>
675675
</div>
676-
<p class="pkg-desc">Student distillation model &mdash; direct 52-dim ARKit blendshape prediction with 5-dim emotion control (FiLM conditioning).</p>
676+
<p class="pkg-desc">Emotion model &mdash; 52-dim ARKit blendshape prediction with 5-dim FiLM conditioning (neutral, joy, anger, sadness, surprise).</p>
677677
<div class="pkg-meta">
678678
<div class="pkg-meta-item">Output: <span>52-dim</span> ARKit</div>
679679
<div class="pkg-meta-item">Emotion: <span>5-dim</span> FiLM conditioning</div>
@@ -714,8 +714,8 @@ <h3>Phoneme Visualization</h3>
714714
<a href="examples/vanilla-avatar/" class="example-card">
715715
<div class="example-card-body">
716716
<div class="card-badge">V2 Engine</div>
717-
<h3>Student Model Demo</h3>
718-
<p>V2 student distillation model &mdash; 52 ARKit blendshapes with direct prediction. Crisp mouth, real-time rendering.</p>
717+
<h3>Emotion Model Demo</h3>
718+
<p>V2 emotion model &mdash; 52 ARKit blendshapes with 5-dim FiLM conditioning. Emotion-aware lip sync, real-time rendering.</p>
719719
<span class="card-link">Try it &#8594;</span>
720720
</div>
721721
</a>
@@ -747,7 +747,7 @@ <h2 class="section-title">Choose your engine</h2>
747747
</thead>
748748
<tbody>
749749
<tr><td>Output</td><td>111-dim ARKit blendshapes</td><td>52-dim ARKit blendshapes</td></tr>
750-
<tr><td>Architecture</td><td>Phoneme classification + viseme mapping</td><td>Student distillation (direct)</td></tr>
750+
<tr><td>Architecture</td><td>Phoneme classification + viseme mapping</td><td>Emotion model + FiLM conditioning</td></tr>
751751
<tr><td>Post-processing</td><td>OneEuroFilter + anatomical constraints</td><td>crisp_mouth + fade + auto-blink</td></tr>
752752
<tr><td>Idle expressions</td><td>Built-in IdleExpressionGenerator</td><td>Blink injection in post-process</td></tr>
753753
<tr><td>Voice activity</td><td>Built-in VoiceActivityDetector</td><td>&mdash;</td></tr>

llms-full.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ interface ProcessResult {
153153
|---------|-------------------|-------------------|
154154
| npm package | @goodganglabs/lipsync-wasm-v1 | @goodganglabs/lipsync-wasm-v2 |
155155
| Output dimension | 111-dim ARKit blendshapes | 52-dim ARKit blendshapes |
156-
| Model architecture | Phoneme classification -> viseme mapping | Student distillation (direct prediction) |
156+
| Model architecture | Phoneme classification -> viseme mapping | Emotion model + FiLM conditioning |
157157
| Post-processing | OneEuroFilter + anatomical constraints | crisp_mouth + fade + auto-blink |
158158
| Expression generation | Built-in IdleExpressionGenerator | Blink injection in post-process |
159159
| VRM mode | getVrmFrame() + convert_arkit_to_vrm() for VRM 18-dim | getFrame() only (52-dim ARKit) |
@@ -172,7 +172,7 @@ interface ProcessResult {
172172
```
173173
Audio 16kHz PCM
174174
-> [WASM] librosa-compatible features: 141-dim @30fps
175-
-> [JS] ONNX student model -> 52-dim (lip sync + expressions)
175+
-> [JS] ONNX emotion model + FiLM conditioning -> 52-dim (lip sync + expressions)
176176
-> [WASM] crisp_mouth (mouth sharpening) -> fade_in_out (natural onset/offset)
177177
-> [WASM] add_blinks (stochastic eye animation)
178178
-> [WASM] Preset blending: expression channels blended with lip sync
@@ -214,7 +214,7 @@ Tongue: tongueOut
214214
|---------|-------------|-----|
215215
| Step-by-Step Guide | 6-step interactive tutorial: VRM + AnimaSync V1 lip sync with live demos (CDN 0.4.5, VRM mode auto-detect, idle eye blink, audio-synced playback, LoopPingPong idle, asymmetric crossfade) | https://animasync.quasar.ggls.dev/examples/guide/ |
216216
| V1 Data | V1 phoneme engine — 52 ARKit blendshapes visualization | https://animasync.quasar.ggls.dev/examples/vanilla-basic/ |
217-
| V2 Data | V2 student model — 52 ARKit direct prediction | https://animasync.quasar.ggls.dev/examples/vanilla-avatar/ |
217+
| V2 Data | V2 emotion model — 52 ARKit with 5-dim FiLM conditioning | https://animasync.quasar.ggls.dev/examples/vanilla-avatar/ |
218218
| V1 vs V2 | Side-by-side dual avatar comparison | https://animasync.quasar.ggls.dev/examples/vanilla-comparison/ |
219219

220220
Run locally:

llms.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ AnimaSync extracts emotion from speech and generates lip sync, facial expression
1414
## Two Engine Versions
1515

1616
- **V1 (Recommended)**: Phoneme classification, 111-dim ARKit output, built-in VAD
17-
- **V2 (Lightweight)**: Student distillation model, 52-dim ARKit output, direct prediction, 5-dim emotion control (FiLM conditioning)
17+
- **V2 (Emotion)**: Emotion model, 52-dim ARKit output, 5-dim FiLM conditioning (neutral, joy, anger, sadness, surprise)
1818

1919
## Quick Start
2020

0 commit comments

Comments
 (0)