{
  "schema_version": 1,
  "type": "skill",
  "slug": "avatar",
  "title": "Avatar",
  "brief": "Use when the agent wants to narrate a demo with a 3D talking avatar, show a character overlay on screen, create voiceover videos, or make the avatar speak text aloud.",
  "version": "1.0.0",
  "tags": [],
  "license": "MIT",
  "source_path": "SKILL.md",
  "readme": "# Adom Avatar — 3D Talking Narrator\n\nA cartoonish 3D avatar that appears as an overlay in the Adom Viewer and speaks text aloud using Piper TTS (text-to-speech) with lip-sync animation.\n\n## Commands\n\nAll commands go through the `avatar` CLI:\n\n```bash\n# Show the avatar in the bottom-right corner\navatar show\n\n# Make the avatar speak (triggers TTS + lip-sync)\navatar say \"Step 1: Open the schematic editor\"\n\n# Hide the avatar\navatar hide\n\n# Run a quick demo\navatar demo\n```\n\nThe `avatar say` command blocks for an estimated speech duration (~150ms per word) so you can chain commands sequentially.\n\n## Narrated Demo Pattern\n\nUse the avatar to create narrated walkthroughs of any Adom feature:\n\n```bash\n# 1. Show avatar\navatar show\n\n# 2. Introduce the demo\navatar say \"Welcome! Today I'll show you how to parse a datasheet.\"\n\n# 3. Perform actions with narration\navatar say \"First, we download the manufacturer PDF.\"\n# ... perform the actual action ...\n\navatar say \"Next, we extract images and run FXAA anti-aliasing.\"\n# ... perform the action ...\n\navatar say \"Finally, we publish to the Adom Wiki.\"\n# ... publish ...\n\n# 4. Wrap up\navatar say \"That's it! The datasheet is now live on the wiki.\"\navatar hide\n```\n\n## Narrated Video Recording\n\nCombine with Hydrogen's screen recording for narrated demo videos:\n\n```bash\n# Request sharing permission\nadom-cli hydrogen sharing request --share tab --reason \"Recording narrated demo\"\n\n# Start recording\nadom-cli hydrogen recording start --countdown 3\n\n# Run the narrated demo\navatar show\navatar say \"Welcome to this demo of the symbol creator.\"\n# ... perform actions with avatar narration ...\navatar say \"Thanks for watching!\"\navatar hide\n\n# Stop and save\nadom-cli hydrogen recording stop --output ~/project/project-content/videos/demo.webm\n\n# Upload to wiki\nadom-wiki asset upload skills/symbol-creator --asset-type video \\\n  --file ~/project/project-content/videos/demo.webm \\\n  --caption \"Narrated demo — symbol creation walkthrough\"\n```\n\n## TTS Details\n\n- **Engine:** Piper (offline neural TTS)\n- **Voice:** en_US-lessac-medium\n- **Port:** 8840 (Piper TTS HTTP server)\n- **Latency:** ~100-300ms per sentence\n- **Audio:** Played in-browser with Web Audio API, drives lip-sync via amplitude analysis\n\n## Avatar Appearance\n\nThe avatar is a cartoonish 3D character rendered in Three.js:\n- Round head with the Adom baseball cap\n- Gold round glasses\n- Big friendly smile that animates during speech\n- Teal shirt (Adom brand color)\n- Transparent background, positioned in bottom-right corner\n- Idle bobbing animation + eye blinks\n\n## Troubleshooting\n\n| Symptom | Fix |\n|---------|-----|\n| No audio | Check Piper TTS is running: `curl http://127.0.0.1:8840/health` |\n| Avatar not visible | Ensure Adom Viewer panel is open |\n| Mouth not moving | Audio may be blocked by browser autoplay policy — click the viewer first |\n| TTS server not running | Start it: `cd ~/gallia && nohup node services/piper-tts/server.js > /tmp/piper-tts.log 2>&1 &` |",
  "author": {
    "name": "Kyle Bergstedt",
    "email": "kyle@adom.inc"
  },
  "visibility": {
    "public": true
  },
  "hero": null,
  "sample_prompts": [],
  "discovery_triggers": [],
  "discovery_pitch": null,
  "metadata": {},
  "created_at": "2026-05-28T05:29:56.109Z",
  "updated_at": "2026-05-28T05:29:56.109Z",
  "sub_skills": [],
  "parent_app": null,
  "org": "adom"
}