
plavo
APPOverview
カメラを植物に向けると、実物の植物から吹き出しが出て、その植物が自分の言葉で状態を伝えるiOSアプリ。キャラクターは作らず、主役は目の前の植物のまま、センサーの値を植物のセリフに翻訳します。
Tech Stack
- Swift
- SwiftUI
- ARKit
- Vision
- RealityKit
開発中のため、まだ公開していません
View Code植物が、自分の言葉で話す
plavo は、カメラを植物に向けると、実物の植物から吹き出しが出て、その植物が自分の言葉で今の状態を伝える iOS アプリです。「のどが渇いたよ」「今朝は日が当たってたのに、午後はずっと日陰だったね」と、植物のほうから話しかけてきます。
作っている側の最終的な目標は、少し大げさに聞こえるかもしれませんが、使っている人がその植物の死に、人の死と同じように感情移入して泣くことです。だから plavo は、水やりの時期を教える管理ツールではなく、植物への愛着と、それを失うことを扱う作品として設計しています。
チームで開発していて、植物の状態を測るセンサーのガジェットはハードに詳しいメンバーが、アプリ側を僕が担当しています。まだ一般には公開していません。
貫いている3つの原則
設計で迷ったら、必ずこの3つに戻るようにしています。
1. 実物を主役から降ろさない。 キャラクターは作りません。声も当てません。かわいいマスコットを画面に置いた瞬間、ユーザーが見るのはマスコットのほうになり、目の前の植物は脇役になってしまいます。plavo が重ねるのは「植物の声」だけで、主役はあくまで鉢の中の、その一株です。
2. 情報を情報として出さない。 数値は画面に出さず、必ず植物の言葉に翻訳します。「開花予測日: 10月12日」と表示した瞬間に、これは農業の管理アプリになります。植物が「あと12日で咲くよ」と言うから、plavo なのです。
3. 失敗をユーザーのせいにしない。 植物が見つからないときも、通信できないときも、エラーとして出さず、植物の様子として描きます。カメラがトップ画面のアプリでは、「植物が見つからない」状態がいちばん長く画面に映るからです。
仕組み
吹き出しを空間に固定する
植物の検出には Apple の Vision を使い、端末の中だけで毎フレーム判定しています。植物が見つかったら、その方向に ARKit で吹き出しを置きます。カメラを振れば吹き出しは画面の外へ流れ、戻せば同じ場所にまた見えます。近づけば大きく、離れれば小さく見えます。
ARKit には床や机の平面を見つける機能がありますが、あえて使っていません。葉や茎が入り組んだ植物は、平面の検出がいちばん苦手な被写体だからです。代わりに、画面上の特徴点に向けて線を飛ばし、当たったところの距離を使います。当たらなければ1.2m前後に置く、という逃げ道を用意しています。
数字を、セリフに翻訳する
センサーからは、日照・土壌水分・気温・湿度などの時系列が届きます。そこから、1日に浴びた光の総量(積算光量)、生育の進み具合を表す積算温度、蒸散のしやすさを表す飽差などを計算し、それをもとに植物のセリフを選びます。たとえばひまわりは、積算温度がおよそ958に届くと花が咲くので、「あと何日で咲くか」を植物自身に言わせられます。
点のデータでは「今、水が足りない」としか言えませんが、1日分の線があれば「昼過ぎから急に乾いてきた」と言えます。時系列があることで、植物の言葉に経過が生まれるのが、センサーを使ういちばんの理由です。
製品としての設計では、カメラの画像とセンサーの値を AI(Claude)に渡して診断し、その場でセリフを作ります。土の水分は十分なのに葉がしおれているときの「根腐れかもしれない」のような、画像だけでも数字だけでも出せない見立ては、両方を突き合わせたときにしか生まれません。
保存するもの、しないもの
計算で出せる値(積算光量や開花の予測日など)は保存しません。計算式をあとから直したときに、過去のデータと食い違うからです。逆に、AI がその瞬間の写真を見て言ったことは保存します。3か月後に同じ写真を診断し直すと、違う答えが返ってくることがあります。8月10日に植物が「下の葉が黄色くなってきた」と言ったのに、あとから「特に問題なし」と書き換わったら、その日の思い出が書き換わってしまいます。
黙っていてもいい
診断には数秒から十数秒かかります。plavo はその間、無理に話しません。植物を見つけた直後に「はにゃ?」のような短い一言だけを出し、言うことがあれば本編のセリフを、なければそのまま静かにしています。いつも喋り続けるキャラクターは疲れますし、生き物らしさは、反応しないことにも宿ると考えています。
展示に向けて
いまは、2026年10月の技術イベントでの展示に向けた形で作っています。展示の目的は「将来こんなサービスを作りたい」と知ってもらうことなので、伝えたい価値を3つに分け、展示物も分けました。本物の植物で「AR で吹き出しが出ること」を、生育の段階が違う植物のパネルで「時間とともに言葉が変わること」を、造花とスポンジと水分センサーで「センサーの値が気持ちに翻訳されること」を見せます。
会場ではネットワークに頼らないよう、セリフは事前に用意した120本あまりのプールから選び、来場者ごとに記録をリセットします。
アプリは Swift と SwiftUI、ARKit、Vision、RealityKit で書いています。植物の計算やセリフの選び方のような中身は、カメラにも AR にも依存しない Swift のパッケージに切り出して、実機がなくても Mac の上でテストできるようにしました。セリフを作る道具や検証の仕組みは TypeScript で書いていて、TypeScript 版と Swift 版の計算を同じテストデータ・同じ期待値で検査しているので、片方だけ直すとすぐに気づけます。
plavo を触ってみる
カメラを植物に向けると、実物の植物から吹き出しが出て、その植物が自分の言葉で状態を伝えるiOSアプリ。キャラクターは作らず、主役は目の前の植物のまま、センサーの値を植物のセリフに翻訳します。
開発中のため、まだ公開していません
View Code





