2026-06-09 · Vibecoding / Trae / WorkBuddy

桌面宠物:一个 Demo 尝试与产品思考

一个关于桌面宠物的开发记录,从技术选型到产品方向的思考。

Python PySide6 AI

前言

在这个快节奏的职场/生活中,我们每天至少有8小时与电脑屏幕为伴。专注工作而忘记喝水,久坐后发现腰背僵硬。

我们可能需要一个能陪伴在身边或者是帮你干活的“数字伙伴”。它安静地待在桌面上,在你需要时提醒你喝水、运动,你把文件拖拽过去的时候,帮你转换文件或者图片。与你正在使用的手表联动。或者更进一步,连接到你居家的摄像头,通过视频画面的识别,反映出你当前宠物的状态——喝水、睡觉、玩耍。

桌面宠物-待机 桌面宠物-睡觉 桌面宠物-拎起 桌面宠物-走路 桌面宠物-开心

听起来像一个庞大的工程,但我更加倾向于:不重复造轮子,站在已有的基础上,从优化和整合开始。


从0到1:为什么要跑一遍流程?

最近这个赛道很火,大家都在弄。我跑一遍流程,因为我想尝试一个新的东西。目前大多数制作精良的产品都使用了像素风格。

又到当初上班时,同事在面临工作高压的情况下,会偷偷打开摄像头查看家里毛孩子的情况来缓解内心压力。那一刻我意识到,只有当自己跑过一遍流程之后,你才可以明白你自己想要什么,以及真正考虑用户想要什么。

最初,AI 推荐我选择 Electron 框架。它生态成熟,跨平台能力强,似乎是理想的选择。然而,我很快遇到了一个棘手的技术瓶颈:为了实现窗口拖拽,但这却与我制作的序列帧动画产生了冲突,动画一播放,拖拽就失灵;能拖拽时,动画又无法正常播放。,虽然我不太懂底层原理,但在尝试了多种复杂的 JavaScript 事件拦截方案后,我意识到,与其在一条充满未知 Bug 的路上反复试错,不如换一个更稳健的赛道。于是,我果断放弃了 Electron,转向了 Python + PySide6

这次转向迅速解决了的难题,并成功构建了一个可以流畅播放动画、自由拖拽的桌面宠物核心。

目前的情况

成果展示 成果展示

Demo

  • 视觉呈现:通过 AI 首尾帧生成绿幕视频,抠图转换为 PNG 序列帧,确保了所有的动画初始以及结束都为站立状态的序列帧,过渡自然。
  • 交互:目前只制作了一个简单的播放器功能,宠物的头顶悬浮着一个黑胶唱片风格的播放器,它会根据宠物的状态智能显示或隐藏,既美观又不干扰工作。
  • 独立的单文件应用:将整个应用打包成一个独立的 .exe 文件。无需安装任何环境,双击即可开箱即用。

这个 Demo 只是我尝试的一个方向。我后续分享给了我的朋友,她给出了一些比较关心的问题:

  1. 健康提醒:学习用户的工作习惯,在你久坐时,用可爱的动画提醒你起身走动;在你长时间专注时,温柔地提示你该喝水了。
  2. 设备联动:就像目前已有的各类健康助手 APP 与智能手表连接。当手表检测到你的心率过高或已经完成了一定的运动量时,宠物会给出相应的反馈和鼓励,形成一个完整的健康闭环。
  3. 丰富的交互:除了提醒,它还能做什么?也许它能根据你的日程安排,在会议开始前轻声提醒你;或者在你完成一项艰巨任务后,为你播放一段庆祝动画。

一个好的产品不是一蹴而就的,也不是开发者的一厢情愿。而是要看当前市场的需求,以及基于目前同类产品的分析:有的很全面,但是交互繁琐;有的功能丰富,但是容量巨大。

用户需要什么?我们能给用户带来什么?

到了这个阶段,就需要对产品进行“减法”。好的产品总是要以市场为导向,明白用户价值的核心,在这个过程中不断探索迭代。