Skip to content

Commit 7e286cf

Browse files
jcgglclaude
andcommitted
docs: update API reference, examples table, and guide description
- Add setEmotion()/getEmotion() to llms-full.txt API Reference (V2 only) - Fix V2 VRM mode row: getVrmFrame() supported (was "getFrame() only") - Update Body Motion description with LoopPingPong + asymmetric crossfade - Update guide example description: V1/V2 engine selector - Add Guide row to README examples table - Update comparison example description with VRM mode auto-detect Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent f125006 commit 7e286cf

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,10 @@ Working examples you can run locally — zero npm install, all loaded from CDN.
138138

139139
| Example | Description | Live Demo | Source |
140140
|---------|-------------|-----------|--------|
141+
| **Guide** | 6-step interactive tutorial with V1/V2 engine selector, VRM avatar, live demos. | [Try it](https://animasync.quasar.ggls.dev/examples/guide/) | [index.html](examples/guide/index.html) |
141142
| **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) |
142143
| **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) |
143-
| **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) |
144+
| **V1 vs V2** | Side-by-side dual avatar comparison with VRM mode auto-detect. | [Try it](https://animasync.quasar.ggls.dev/examples/vanilla-comparison/) | [index.html](examples/vanilla-comparison/index.html) |
144145

145146
**Run any example:**
146147

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,7 @@ <h2 class="section-title">See it in action</h2>
698698
<div>
699699
<div class="card-badge">Interactive Guide</div>
700700
<h3>Build Your Own AI Talking Avatar</h3>
701-
<p>6-step interactive tutorial. Download a VRM, wire up AnimaSync V1, apply lip sync, add mic streaming &mdash; with live demos at each step.</p>
701+
<p>6-step interactive tutorial. Choose V1 or V2 engine, load a VRM avatar, apply lip sync, stream from mic &mdash; with live demos at each step.</p>
702702
</div>
703703
<span class="card-cta">Start Guide &#8594;</span>
704704
</div>

llms-full.txt

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ AnimaSync is a browser-native voice-to-animation engine. It takes audio input (f
2828
- **Lip Sync**: ONNX inference maps phonemes to ARKit blendshapes (jaw, mouth, tongue)
2929
- **Facial Expression**: Voice energy and pitch drive brows, cheeks, eyes, and smile
3030
- **Eye Animation**: Stochastic blink injection (2.5-4.5s intervals, 15% double-blink)
31-
- **Body Motion**: Embedded VRMA bone animation clips with idle/speaking crossfade
31+
- **Body Motion**: Embedded VRMA bone animation clips with LoopPingPong idle + asymmetric crossfade (0.8s in, 1.0s out)
3232

3333
### Technology Stack
3434

@@ -126,6 +126,18 @@ Extract a VRM 18-dim frame from a ProcessResult. Converts ARKit blendshapes to V
126126

127127
Get embedded VRMA bone animation clips for idle breathing and speaking gestures.
128128

129+
#### `setEmotion(vector: number[]): void` (V2 only)
130+
131+
Set a 5-dimensional emotion vector: `[neutral, joy, anger, sadness, surprise]` with values 0-1. Applied to all subsequent `processAudio`/`processAudioChunk` calls. Default: `[0, 0, 0, 0, 0]` (neutral).
132+
133+
```javascript
134+
lipsync.setEmotion([0, 0.8, 0, 0, 0]); // 80% joy
135+
```
136+
137+
#### `getEmotion(): number[]` (V2 only)
138+
139+
Returns the current 5-dim emotion vector.
140+
129141
#### `reset(): void`
130142

131143
Clear streaming state. Call between utterances when using `processAudioChunk`.
@@ -156,7 +168,7 @@ interface ProcessResult {
156168
| Model architecture | Phoneme classification -> viseme mapping | Emotion model + FiLM conditioning |
157169
| Post-processing | OneEuroFilter + anatomical constraints | crisp_mouth + fade + auto-blink |
158170
| Expression generation | Built-in IdleExpressionGenerator | Blink injection in post-process |
159-
| VRM mode | getVrmFrame() + convert_arkit_to_vrm() for VRM 18-dim | getFrame() only (52-dim ARKit) |
171+
| VRM mode | getVrmFrame() + convert_arkit_to_vrm() for VRM 18-dim | getVrmFrame() for VRM 18-dim |
160172
| Voice activity | Built-in VoiceActivityDetector | Not included |
161173
| ONNX fallback | Heuristic mode (energy-based) | None (ONNX required) |
162174
| Emotion control | Not included | 5-dim FiLM conditioning (neutral, joy, anger, sadness, surprise) via setEmotion()/getEmotion() |
@@ -212,7 +224,7 @@ Tongue: tongueOut
212224

213225
| Example | Description | URL |
214226
|---------|-------------|-----|
215-
| 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/ |
227+
| Step-by-Step Guide | 6-step interactive tutorial with V1/V2 engine selector, VRM mode auto-detect, idle eye blink, audio-synced playback, LoopPingPong idle, asymmetric crossfade (V1 0.4.5, V2 0.4.7) | https://animasync.quasar.ggls.dev/examples/guide/ |
216228
| V1 Data | V1 phoneme engine — 52 ARKit blendshapes visualization | https://animasync.quasar.ggls.dev/examples/vanilla-basic/ |
217229
| V2 Data | V2 emotion model — 52 ARKit with 5-dim FiLM conditioning | https://animasync.quasar.ggls.dev/examples/vanilla-avatar/ |
218230
| V1 vs V2 | Side-by-side dual avatar comparison | https://animasync.quasar.ggls.dev/examples/vanilla-comparison/ |

0 commit comments

Comments
 (0)