# FUMI, a Tamagotchi-style AI desk companion

An open-source desk pet on an ESP32-S3 with an LVGL animated face, touch interaction, virtual pet stats and push-to-talk voice chat routed through a provider-agnostic backend.

- Category: Interface (build)
- Made by: [imaaiagent](https://github.com/imaaiagent) on GitHub
- Original: https://github.com/imaaiagent/fumi
- On Afterware: https://afterware.xyz/p/fumi-a-tamagotchi-style-ai-desk-companion

## Can I build this?

- Difficulty: Beginner
- AI-buildability: 4/5 (The firmware and Node.js backend are open-source software that AI tools can adapt, and the hardware is a single off-the-shelf touch AMOLED board with no soldering, though you still have to flash it and set up API keys.)
- Time: A weekend
- Cost: $30–50
- Parts: ESP32-S3, Waveshare ESP32-S3-Touch-AMOLED-1.75C
- Tools: Computer with Arduino IDE 2.3, USB-C cable, Node.js 20.6+

Estimates based on the original write-up. How the AI-buildability score works: https://afterware.xyz/ai-buildability

## Build sheet

- Controller: ESP32-S3
- UI: LVGL animated character
- Backend: Node.js, any LLM provider
- Firmware: Arduino IDE

## Starter prompt

```
Based on "FUMI, a Tamagotchi-style AI desk companion" on Afterware: https://afterware.xyz/p/fumi-a-tamagotchi-style-ai-desk-companion

Write Arduino firmware for an ESP32-S3 touch display running LVGL. Draw a simple animated pet face with expressions for normal, happy and sleepy. Track hunger, energy and happiness that decay over time and rise on touch. Send a JSON message to a backend URL over HTTPS when the user presses a button, and show the returned reply text on screen.
```

## Story

FUMI is a desk companion built around an ESP32-S3 running LVGL. The firmware drives an animated character with expressions, responds to touch, and tracks virtual pet stats such as hunger, energy, happiness, bond and growth. It also includes a small game.

Voice works through push-to-talk. The device uploads a WAV recording to a backend, which runs speech-to-text and sends the transcript to a selected text model. The firmware never holds a model API key; the backend keeps the key and forwards requests.

The backend is provider-agnostic and is documented for OpenAI, Anthropic Claude, xAI Grok, OpenRouter, Ollama and OpenAI-compatible APIs. The repo also includes a browser demo for testing the backend without the hardware.

## Resources

- [Repository](https://github.com/imaaiagent/fumi)
- [Prototype demo video](https://youtube.com/shorts/-ibA0lVkqD0?feature=share)

Tags: esp32-s3, lvgl, ai companion, tamagotchi, voice ai, touch display, open source

AI assistants can search all Afterware builds through the MCP server at https://afterware.xyz/mcp (setup: https://afterware.xyz/agents).
