Holocube Emotes
Turn a GeekMagic holocube into your AI's face. Generate holographic character sprites, upload them to the device, then swap expressions in real-time based on agent/session state.
First-Time Setup
0. Find the device
Auto-discover holocubes on your network:
CODEBLOCK0
Output: INLINECODE0
If discovery fails, find the IP on the device's screen or your router's client list.
1. Generate sprites
Create a full emote sprite kit (requires nano-banana-pro skill with GEMINI_API_KEY):
CODEBLOCK1
Custom character:
CODEBLOCK2
This generates 7 emotes (neutral, happy, thinking, surprised, concerned, laughing, sleeping) as both static JPG and animated GIF, sized for the 240x240 display.
2. Upload to device
CODEBLOCK3
Flags:
- -
--clear removes existing images (recommended — device has ~3MB storage) - INLINECODE3 saves existing files before clearing
- INLINECODE4 auto-discovers if not provided, or specify manually
3. Configure TOOLS.md
Add the holocube IP and emote mappings to your workspace TOOLS.md for reference. See references/tools-example.md.
Daily Usage
Set emote directly
CODEBLOCK4
Set by agent state
CODEBLOCK5
Auto-select by time of day
CODEBLOCK6
- - 11pm–7am → sleeping
- 7am–9am → happy
- Rest of day → neutral
Check status
CODEBLOCK7
Heartbeat Integration
Add to HEARTBEAT.md to auto-manage the emote:
CODEBLOCK8
When to Set Emotes
Use these during normal agent operations:
| Context | Command | Emote |
|---|
| Idle, waiting for input | INLINECODE5 | 🤖 |
| Processing, running tools |
thinking or
working | 🔧 |
| Task completed |
happy or
complete | 😊 |
| Error occurred |
error (→ surprised) | 😮 |
| Funny moment |
laughing or
funny | 😂 |
| Unexpected input |
surprised or
unexpected | 😮 |
| Night/inactive |
sleeping or
night | 😴 |
| Spawning sub-agent |
spawning (→ thinking) | 🔧 |
| On-demand custom |
custom | ✨ |
Custom Slot
A reserved file adam-custom.gif on the device can be overwritten at any time for on-demand or one-off animations. Generate a GIF, upload as adam-custom.gif, then python3 holocube.py custom. Switch back to a standard emote when done.
Device Notes
- - Model: GeekMagic HelloCubic-Lite (240x240px glass display)
- Format: GIF (animated) or JFIF JPEG. Use Pillow for JPEG (ffmpeg lacks JFIF headers).
- Storage: ~3MB total. 6 animated GIFs use ~1.5MB, leaving ~500KB for custom slot.
- Art style: Dark/black backgrounds make glass disappear. Use glowing, holographic, neon elements.
- ⚠️ NEVER send
/set?reset=1 — that's factory reset, wipes WiFi config.
Requirements
- - GeekMagic HelloCubic-Lite (or compatible) on local network
- Python 3 with Pillow (
pip install Pillow) - nano-banana-pro skill with
GEMINI_API_KEY (for sprite generation only) - INLINECODE25 (
brew install uv) (for sprite generation only)
Holocube 表情系统
将 GeekMagic 全息魔方变成 AI 的面部表情。生成全息角色精灵,上传至设备,然后根据代理/会话状态实时切换表情。
首次设置
0. 查找设备
自动发现网络上的全息魔方:
bash
python3 scripts/holocube.py --discover
输出:FOUND: 192.168.0.245 — HelloCubic-Lite V7.0.22
如果发现失败,请在设备屏幕或路由器客户端列表中查找 IP 地址。
1. 生成精灵
创建完整的表情精灵套件(需要 nano-banana-pro 技能及 GEMINIAPIKEY):
bash
python3 scripts/generate_sprites.py --output-dir ./sprites
自定义角色:
bash
python3 scripts/generate_sprites.py --output-dir ./sprites \
--character 纯黑虚空中漂浮的发光全息猫。霓虹紫线框风格。
这将生成 7 种表情(中性、开心、思考、惊讶、担忧、大笑、睡眠),同时提供静态 JPG 和动画 GIF 格式,尺寸适配 240x240 显示屏。
2. 上传至设备
bash
python3 scripts/setup_device.py --sprites-dir ./sprites --clear --backup-dir ./backup
参数说明:
- - --clear 删除现有图片(推荐——设备存储空间约 3MB)
- --backup-dir 在清除前保存现有文件
- --ip 如不提供则自动发现,或手动指定
3. 配置 TOOLS.md
将全息魔方 IP 和表情映射添加到工作区的 TOOLS.md 中供参考。详见 references/tools-example.md。
日常使用
直接设置表情
bash
python3 scripts/holocube.py happy
python3 scripts/holocube.py thinking --static # 使用 JPG 而非 GIF
根据代理状态设置
bash
python3 scripts/holocube.py working # → 思考
python3 scripts/holocube.py complete # → 开心
python3 scripts/holocube.py error # → 担忧
python3 scripts/holocube.py opus # → 思考(重型模型)
python3 scripts/holocube.py haiku # → 中性(轻型模型)
根据时间段自动选择
bash
python3 scripts/holocube.py --auto
- - 晚上 11 点至早上 7 点 → 睡眠
- 早上 7 点至 9 点 → 开心
- 其余时间 → 中性
检查状态
bash
python3 scripts/holocube.py --status
python3 scripts/holocube.py --list
心跳集成
添加到 HEARTBEAT.md 以自动管理表情:
markdown
全息魔方表情检查
- - 运行 python3 scripts/holocube.py --auto 设置符合时段的表情
何时设置表情
在正常代理操作期间使用以下设置:
| 场景 | 命令 | 表情 |
|---|
| 空闲,等待输入 | neutral | 🤖 |
| 处理中,运行工具 |
thinking 或 working | 🔧 |
| 任务完成 | happy 或 complete | 😊 |
| 发生错误 | error(→ 惊讶) | 😮 |
| 有趣时刻 | laughing 或 funny | 😂 |
| 意外输入 | surprised 或 unexpected | 😮 |
| 夜间/非活跃 | sleeping 或 night | 😴 |
| 生成子代理 | spawning(→ 思考) | 🔧 |
| 按需自定义 | custom | ✨ |
自定义插槽
设备上预留的 adam-custom.gif 文件可随时覆盖,用于按需或一次性动画。生成 GIF,上传为 adam-custom.gif,然后运行 python3 holocube.py custom。完成后切换回标准表情。
设备说明
- - 型号: GeekMagic HelloCubic-Lite(240x240px 玻璃显示屏)
- 格式: GIF(动画)或 JFIF JPEG。使用 Pillow 处理 JPEG(ffmpeg 缺少 JFIF 头信息)。
- 存储空间: 总计约 3MB。6 个动画 GIF 占用约 1.5MB,剩余约 500KB 用于自定义插槽。
- 艺术风格: 深色/黑色背景使玻璃隐形。使用发光、全息、霓虹元素。
- ⚠️ 切勿发送 /set?reset=1 —— 这是恢复出厂设置,会清除 WiFi 配置。
要求
- - 本地网络中的 GeekMagic HelloCubic-Lite(或兼容设备)
- Python 3 及 Pillow(pip install Pillow)
- 带有 GEMINIAPIKEY 的 nano-banana-pro 技能(仅用于精灵生成)
- uv(brew install uv)(仅用于精灵生成)