by sam70361
Grok-style AI emotion ball - 32 expressive SVG states, ribbons, mouse gaze, dark/light themes, bilingual gallery site. | Grok bot 风格的 AI 表情小球:32 种 SVG 表情,一个 emotionId 即可接入 AI
# Add to your Claude Code skills
git clone https://github.com/sam70361/emotion-ballemotion-ball is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by sam70361. Grok-style AI emotion ball - 32 expressive SVG states, ribbons, mouse gaze, dark/light themes, bilingual gallery site. | Grok bot 风格的 AI 表情小球:32 种 SVG 表情,一个 emotionId 即可接入 AI. It has 66 GitHub stars.
emotion-ball's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/sam70361/emotion-ball" and add it to your Claude Code skills directory (see the Installation section above).
emotion-ball is primarily written in JavaScript. It is open-source under sam70361 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh emotion-ball against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
中文 | English
Grok bot 风格的 AI 表情小球:32 种状态表情,纯 SVG + 原生 JavaScript 实时驱动,零框架、零图片资源。AI 只需输出一个 emotionId,小球即可切换到对应表情,也可以作为桌面宠物 / 悬浮助手的表情引擎。自带一个完整的「表情展示馆」站点:开屏线稿 Hero、陈列墙 / 画册双模式、中英双语、明暗双主题。
| 开屏 Hero(暗黑) | 明亮主题 · English |
|---|---|
![]() |
![]() |
| 陈列墙 | 大图弹窗 |
|---|---|
![]() |
![]() |

00-09 生命周期、10-29 情绪、30-49 代理状态、50+ 自定义;组间空号为新表情预留,已有编号永不重排,对接方可放心硬编码ball.handleAIMessage('{"emotionId":"30","tips":"正在思考"}') 一行接入,未知 ID 自动回退待机# 任意静态服务器即可,例如:
python -m http.server 8765
# 打开 http://localhost:8765/
或直接双击 index.html(建议走本地服务器以加载 Google Fonts)。
emotion-ball/
├── index.html # 站点入口:Hero + 展馆 + 设置抽屉
├── css/style.css # 双主题变量、双模式布局
├── js/
│ ├── rings.js # 几何数据:25 组眼环 + 3 种身体轮廓
│ ├── emotions.js # 32 种表情配置(纯数据,含中英文案)
│ ├── i18n.js # 界面文案字典(zh / en)
│ ├── ball.js # 渲染层:SVG 绘制、球面投影、彩带、撒花
│ ├── engine.js # 驱动层:状态机、弹簧动画、表情池、对外 SDK
│ └── app.js # 交互层:展示馆站点外壳
├── assets/
│ ├── img/ # 站点图标(favicon)
│ └── screenshots/ # README 预览截图
└── .cursor/skills/ # AI 协作 Skills:表情设计规范 + 集成实践
// 创建实例
const ball = EmotionBall.create(el, {
emotion: '02', // 初始表情
shape: 'blob', // blob 圆胖 / wedge 三角 / gem 菱形
color: '#54B9A6', // 可选:主题色实例(团队小球)
idle: true // 可选:待机策略(超时自动回待机/睡眠)
});
// AI 对接:只需一个 emotionId
ball.handleAIMessage({ emotionId: '30', tips: '正在思考' });
// 其他能力
ball.setEmotion('10'); // 直接切换
ball.spin(2); // 自旋甩彩带
ball.burst(20); // 撒花
ball.setStyle({ sketch: 1 }); // 线稿模式
ball.startTour(['00','10','30']); // 自动巡演
ball.on('change', e => console.log(e.id));
// 配置注册中心
EmotionBall.config.register({ id: '50', name: '自定义', group: 'custom', ... });
EmotionBall.config.exportConfig(); // 导出全部表情 JSON
{
id: '10', name: '开心', group: 'emotion',
desc: '笑眼轮换,目光下看看、上看看',
en: { name: 'Happy', desc: '...' },
pool: [2, 11, 17, 19], // 眼环索引池,poolMs 间隔内随机轮换
blinkMs: [2500, 5000], // 眨眼间隔(null 不眨)
antics: true, // 待机随机小动作(自旋/弹跳)
body: { breathe: 0.014 }, // 呼吸、颜色、zzz、环带等
anims: [ { target: 'eyes', prop: 'lookY', type: 'glance', amp: 6, period: 3000 } ],
sequence: { ... } // 可选:进入表情时的关键帧序列
}
本项目仅供学习与技术交流使用,禁止任何商业用途(售卖、付费授权、集成到商业产品或服务等)。非商业分享请注明出处。详见 LICENSE,商业授权请联系作者。