Emerging Interfaces

This Desk Pet Gets Sick When You Doomscroll, and It Doesn't Message Your Phone to Tell You

PolyMO is a palm-sized ESP32 creature with its own display, microphone, and on-device language model — its health tracks your phone habits directly over Bluetooth, with zero internet permissions and zero servers involved.

Most phone-addiction gadgets work by making your phone harder to use — a lockbox, a shock collar, a screen-time app that just nags. PolyMO, built by developer brenpoly, takes the opposite approach: it gives you something else to feel responsible for, and makes that the thing that suffers when you scroll too long.

A pet that knows when you’re on your phone

PolyMO is a palm-sized desk object built around a Waveshare ESP32-S3 board with a 1.8-inch, 368×448 AMOLED touch display, plus an onboard microphone and speaker. It pairs over Bluetooth Low Energy to an Android phone, where it monitors app engagement and notification activity. The pet has ordinary virtual-pet needs — hunger, boredom, growth stages — but its health is tied directly to how long you’ve been staring at your phone: extended engagement makes it sick, sickness accelerates its hunger and energy loss, and enough neglect kills it outright, forcing a manual reset.

The point isn’t punishment so much as redirection — PolyMO can read notifications aloud and hold a spoken conversation, so there’s a real alternative to picking the phone back up, not just a guilt trip.

Entirely local, by design

The Android app that gives PolyMO its voice runs llama.cpp for reasoning, Whisper for speech-to-text, and Piper for text-to-speech — all on-device, with the ESP32 side handling simulation, rendering, and persistent storage independently. The app declares zero INTERNET permissions, enforced by an automated test in its own build pipeline, so there’s no cloud service anywhere in the loop and nothing about your phone habits ever leaves your own hardware.

Getting it

PolyMO’s full source — firmware and Android app — is open on GitHub, with the source under Apache-2.0 (the compiled APK ships under GPL-3.0 due to an espeak-ng dependency).