{
  "markdown": "<div align=\"center\">\n\n# Emotive Engine\n\n**Expressive AI mascots for modern interfaces**\n\n[![npm version](https://img.shields.io/npm/v/@joshtol/emotive-engine.svg)](https://www.npmjs.com/package/@joshtol/emotive-engine)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE.md)\n[![Downloads](https://img.shields.io/npm/dm/@joshtol/emotive-engine.svg)](https://www.npmjs.com/package/@joshtol/emotive-engine)\n\n<img src=\"assets/previews/elemental-gestures.gif\" alt=\"Emotive Engine — 8 elemental shaders, 160+ gestures\" width=\"100%\" />\n\nReal-time character animation engine with **Canvas 2D** and **WebGL 3D**\nrendering.<br/> 8 elemental shader systems. 160+ elemental gestures. One\nreplicable pattern.\n\n**[Live Demo](https://joshtol.github.io/emotive-engine)** ·\n**[Elemental Gestures Demo](https://joshtol.github.io/emotive-engine/examples/3d/elemental-gestures.html)**\n· **[NPM](https://www.npmjs.com/package/@joshtol/emotive-engine)**\n\n</div>\n\n---\n\n## Quick Start\n\n```bash\nnpm install @joshtol/emotive-engine\n```\n\n### 3D Mode (WebGL)\n\n```javascript\nimport { EmotiveMascot3D } from '@joshtol/emotive-engine/3d';\n\nconst mascot = new EmotiveMascot3D({\n    coreGeometry: 'crystal',\n    assetBasePath: '/assets', // self-hosted assets (see below)\n});\n\nmascot.init(document.getElementById('container'));\nmascot.start();\n\nmascot.setEmotion('joy');\nmascot.express('bounce');\nmascot.morphTo('heart');\nmascot.feel('happy, bouncing'); // Natural language control\n```\n\n3D mode requires Three.js: `npm install three`\n\n### 2D Mode (Canvas)\n\n```javascript\nimport { EmotiveMascot } from '@joshtol/emotive-engine';\n\nconst mascot = new EmotiveMascot();\nawait mascot.init(document.getElementById('container'));\nmascot.start();\nmascot.feel('happy, bouncing');\n```\n\n2D mode has no dependencies and requires no external assets.\n\n---\n\n## Features\n\n<table>\n<tr>\n<td width=\"50%\">\n\n### 3D WebGL Rendering\n\n- Custom GLSL shaders with subsurface scattering\n- Physically-based materials and bloom effects\n- 8 moon phases with tidal lock camera\n- Solar and lunar eclipse simulations\n- Runtime geometry morphing\n\n</td>\n<td width=\"50%\">\n\n### 2D Canvas Rendering\n\n- Lightweight pure Canvas 2D\n- Dynamic particle effects\n- Shape morphing animations\n- Gaze tracking\n- Mobile-optimized\n\n</td>\n</tr>\n</table>\n\n**Shared:** 15 emotions · 180+ gestures · Natural language `feel()` API ·\nTypeScript definitions · Unified API\n\n---\n\n## Demo Gallery\n\n### 3D WebGL\n\n<table>\n<tr>\n<td align=\"center\" width=\"33%\">\n<img src=\"assets/previews/crystal.gif\" alt=\"Crystal Soul\" width=\"100%\" /><br/>\n<strong>Crystal Soul</strong><br/>\n<sub>Subsurface scattering shader</sub>\n</td>\n<td align=\"center\" width=\"33%\">\n<img src=\"assets/previews/moon.gif\" alt=\"Moon Phases\" width=\"100%\" /><br/>\n<strong>Moon Phases</strong><br/>\n<sub>8 phases with tidal lock</sub>\n</td>\n<td align=\"center\" width=\"33%\">\n<img src=\"assets/previews/sun.gif\" alt=\"Solar Eclipse\" width=\"100%\" /><br/>\n<strong>Solar Eclipse</strong><br/>\n<sub>Corona and diamond ring</sub>\n</td>\n</tr>\n<tr>\n<td align=\"center\" colspan=\"3\">\n<img src=\"assets/previews/blood-moon.gif\" alt=\"Blood Moon\" width=\"50%\" /><br/>\n<strong>Blood Moon Eclipse</strong><br/>\n<sub>Rayleigh scattering simulation</sub>\n</td>\n</tr>\n</table>\n\n### 2D Canvas\n\n<table>\n<tr>\n<td align=\"center\" width=\"33%\">\n<img src=\"assets/previews/hello-world.gif\" alt=\"Hello World\" width=\"100%\" /><br/>\n<strong>Hello World</strong>\n</td>\n<td align=\"center\" width=\"33%\">\n<img src=\"assets/previews/basic-usage.gif\" alt=\"Basic Usage\" width=\"100%\" /><br/>\n<strong>Basic Usage</strong>\n</td>\n<td align=\"center\" width=\"33%\">\n<img src=\"assets/previews/breathing.gif\" alt=\"Breathing App\" width=\"100%\" /><br/>\n<strong>Breathing App</strong>\n</td>\n</tr>\n<tr>\n<td align=\"center\" width=\"33%\">\n<img src=\"assets/previews/events.gif\" alt=\"Events\" width=\"100%\" /><br/>\n<strong>Event Handling</strong>\n</td>\n<td align=\"center\" width=\"33%\">\n<img src=\"assets/previews/rhythm.gif\" alt=\"Rhythm Sync\" width=\"100%\" /><br/>\n<strong>Rhythm Sync</strong>\n</td>\n</tr>\n</table>\n\n---\n\n## 3D Assets\n\nThe npm package ships **JavaScript only**. GLB models, textures, and HDRI maps\nmust be self-hosted (~24 MB). They live in `assets/` in this repository.\n\n```javascript\nnew EmotiveMascot3D({\n    assetBasePath: '/assets', // wherever you host the assets folder\n});\n```\n\n| Hosting Option        | `assetBasePath`                                     |\n| --------------------- | --------------------------------------------------- |\n| **Copy to `public/`** | `'/assets'`                                         |\n| **CDN / S3**          | `'https://cdn.example.com/emotive-engine/assets'`   |\n| **GitHub Pages**      | `'https://joshtol.github.io/emotive-engine/assets'` |\n\n```\n<assetBasePath>/\n├── models/Elements/   # GLB models for elemental effects\n├── textures/          # Crystal, Moon, Sun textures\n└── hdri/              # Environment maps (optional)\n```\n\n---\n\n## CDN Usage\n\n```html\n<!-- 2D (UMD, no dependencies) -->\n<script src=\"https://unpkg.com/@joshtol/emotive-engine/dist/emotive-mascot.umd.js\"></script>\n\n<!-- 3D (ESM, requires Three.js import map) -->\n<script type=\"importmap\">\n    {\n        \"imports\": {\n            \"three\": \"https://unpkg.com/three@0.170.0/build/three.module.min.js\"\n        }\n    }\n</script>\n<script type=\"module\">\n    import { EmotiveMascot3D } from 'https://unpkg.com/@joshtol/emotive-engine/dist/emotive-mascot-3d.js';\n</script>\n```\n\n---\n\n## Documentation\n\n| Doc                                              | Description                                                        |\n| ------------------------------------------------ | ------------------------------------------------------------------ |\n| **[API Reference](./docs/API.md)**               | All methods, configuration options, emotions, gestures, geometries |\n| **[LLM Integration](./docs/LLM_INTEGRATION.md)** | Natural language `feel()` API, system prompt examples              |\n| **[Gestures](./docs/GESTURES.md)**               | Full gesture catalog (180+ base + 160+ elemental)                  |\n| **[Quick Reference](./docs/QUICK_REFERENCE.md)** | Cheat sheet for emotions, undertones, and common patterns          |\n| **[Architecture](./docs/ARCHITECTURE.md)**       | Internal design and rendering pipeline                             |\n\n---\n\n## Running Locally\n\n```bash\ngit clone https://github.com/joshtol/emotive-engine.git\ncd emotive-engine\nnpm install && npm run build && npm run local\n# → http://localhost:3001\n```\n\n---\n\n## License\n\nMIT — see [LICENSE.md](./LICENSE.md)\n\n<div align=\"center\">\n\nCreated by [Joshua Tollette](https://github.com/joshtol)\n\n</div>\n",
  "bytes": 6625,
  "sha": "3e33abf68b3846bf2db0415c473cfd44718af582e2fc5d3342c28c51ce4af5a4",
  "repo_slug": "joshtol/emotive-engine",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/skl_joshtol_emotive_engine_skills_llm_integr_e866b506/readme"
}