sam70361/aora-bot
Emotion Ball 是一套面向 AI 助手的表情引擎:32 种状态表情全部由纯 SVG 与原生 JavaScript 实时驱动,零框架、零图片资源。AI 侧只需输出一个 emotionId,小球即可切换到对应表情,可直接用作聊天机器人、桌面宠物、悬浮助手的情绪表达层。
解决的问题
Emotion Ball 是一个轻量级、无依赖的表达引擎,专为 AI 助手、聊天机器人和桌面宠物提供视觉情感层。它允许开发者通过简单的 ID 基协议,轻松在 32 个预定义情感状态(如思考、开心或睡眠)之间切换,无需复杂的图像资源或重型框架。
工作原理
该引擎使用纯 SVG 和原生 JavaScript 实时渲染角色。它基于数据驱动的配置系统,表达由「眼环池」、动画原语(如正弦波或抖动)和关键帧序列组合定义。
关键技术特性包括:
- 球面投影:通过经度转换和余弦压缩,将眼睛映射到身体轮廓,保持 3D 感觉。
- 动态适应:相同的动画系统可自动适应三种不同身体形状:球形、楔形和宝石形。
- AI 集成:强大的
handleAIMessage方法接受 JSON 字符串或对象,允许 AI 仅通过输出emotionId即可触发表情变化。 - 性能优化:所有实例共享单一的 requestAnimationFrame (rAF) 心跳,以最小化 CPU 开销。
适用人群
- AI 开发者:构建基于 LLM 的助手或代理,需要非语言情感界面的人。
- 前端工程师:寻找轻量级、基于 SVG 的动画系统,用于浮动助手或 Electron 桌面宠物的开发者。
- UI/UX 设计师:希望实现可自定义、数据驱动的角色表情,而无需创建单帧动画的用户。
核心亮点
- 32 个预定义状态:涵盖唤醒/睡眠等生命周期、情感反应,以及代理特定状态(搜索/思考/错误)。
- 零依赖:使用 HTML、SVG 和原生 JS 构建,可轻松集成到任何 Web 环境或 Electron 应用中。
- 可自定义:支持运行时注册新表情和自定义身体形状/颜色。
- 交互性:包含鼠标注视追踪(指数平滑)和庆祝用物理粒子效果。
- 动画原语核心库:使用 6 种动画类型(正弦波、瞥视、脉冲、抖动、扫描、眨眼)的库,构建复杂行为。
相关
- 项目
- 项目
- 项目
- 项目