たまごっちは、世話を怠ると死んだ。brenpoly氏が作った「PolyMO」は、こちらがスマホを見すぎると死ぬ。
手のひらに載る本体の正面が有機ELの顔になっていて、置いておくと時々こちらを見て瞬きする。腹を空かせ、退屈し、育っていく。ここまではたまごっちと変わらない。違うのは、見張る相手がペットではなくこちらだという点だ。決めたアプリを長く開いていると顔色が悪くなり、スマホを置くまで治らない。
弱った顔は、渦を巻いた目になる。生成の規則で「渦はちゃんと回っていること」「悲しい顔と病気の顔は取り違えられないこと」が決められていて、条件を満たさない顔はビルドの段階ではじかれる。そして死んだ顔には、口が描かれない。
構わず放っておくと本当に死ぬ。生き返らせるには、こちらから頼む操作が要る。設定を開いて甘くすることはできない。
面白いのは、この生き物が一言も文句を言わないところだ。口ぶりにも規則があり、ペットの側から質問してはいけない。開いていたアプリの名前を読み上げてもいけない。数字を突きつけて反省を促すのではなく、ただ黙って弱っていく。世話をする相手に説教をさせない、という線引きになっている。
救いも用意されている。見ていた時間は1日の合計ではなく、一度に続けて見た時間で数える。合計方式だと日付が変わるまで数字が減らないので、午前11時に弱らせてしまったらその日は打つ手がない。区切って数えれば、スマホを伏せた瞬間から回復が始まる。
話しかければ、自分のスピーカーで返してくる。返事を組み立てているのは、実はPolyMOと連携させているスマートフォンだ。以前はRaspberry Pi 5に同じことをさせていたが、電気を食ってかさばり、シングルボードコンピューターの値上がりも重なって持ち歩けなかった。そこで音声の聞き取りと文章の生成、読み上げをBLE経由でスマホに渡し、本体には顔と声、そして生き死にの計算だけを残した。空腹も機嫌も本体の中で進むので、以後スマホをつながなくてもペットは生き続ける。ただ口をきかなくなるだけだ。
その返事がどこかへ送られる心配もない。Androidアプリが宣言する権限は8つで、そこにINTERNETが入っていない。ビルドのたびにテストが設定ファイルを読み、INTERNETが書き足されていれば止まる。
本体はWaveshareのESP32-S3ボードで、ケースのSTLもファームウェアもGitHubにある。ライセンスはApache-2.0で、作りたい人は同じものを組める。

