Blog
Development·6 min read

Garmigotchi:靠你的健康数据存活的电子宠物

我给 Garmin 手表做了一个虚拟宠物表盘,它会根据你真实的健康指标做出反应。忽视你的健康,它就会死

Jo Vinkenroye·January 13, 2025
Garmigotchi:靠你的健康数据存活的电子宠物

想象一下,你的智能手表里住着一个小生物。你健康的时候它生龙活虎,你摆烂的时候它就会死掉

这就是 Garmigotchi——一个给 Garmin 手表做的拓麻歌子(Tamagotchi)风格虚拟宠物,它以你真实的健康数据为食

核心概念

你的 Garmin 已经在追踪一切了。Body Battery(身体电量)、压力水平、睡眠质量、步数、心率。但大多数人都是等出了问题才去看这些数据

Garmigotchi 把这些数据变成了你真正在乎的东西——一个小生物,它会直观地反映你对待自己身体的方式

压力太大太久?你的宠物变得焦虑不安。没睡好?它看起来筋疲力尽。步数达标还精力充沛?它开心得不行

而如果你持续忽视自己的健康?它会死掉。你得等到下个月才能孵化一只新的

工作原理

这个小生物住在你 Instinct 3 表盘上的一个小圆形区域里。每分钟它都会检查你的健康指标并更新心情

心情系统

我把 Garmin 的指标映射到了一个基于 Body Battery 和压力的心情网格上:

Garmigotchi 心情系统
Garmigotchi 心情系统

每种心情都有自己的精灵动画和个性。开心到飞起的小生物会兴奋地蹦来蹦去,困到不行的那个几乎一动不动

忽视点数

这里就有意思了。小生物会追踪「忽视点数」,当你不好好照顾自己的时候就会累积:

  • Body Battery 降到临界值?每小时 +1 点
  • 睡眠评分很差?+2 点
  • 高压力持续 30 分钟以上?+1 点
  • 没完成步数目标?+0.5 到 +1 点

状态好的日子会治愈你的小生物。一晚好觉加上完成步数目标可以减少 2 个忽视点数

但如果忽视点数累积到 16……你的小生物就死了。变成一个幽灵,直到下个月新蛋孵化

进化

小生物每月经历 5 个进化阶段:

  1. (第 1-3 天)
  2. 小团子 (第 3-14 天)
  3. 幼崽 (第 14-21 天)
  4. 成年体 (第 21-31 天)
  5. 长老 (第 31 天+)

养够久你就能看到完整的进化过程。养死了就只能对着一只幽灵发呆了

技术实现

给 Garmin 手表开发……挺特别的。它们用的是 Monkey C,一种专有语言,编译后运行在资源极度受限的硬件上

每个精灵图、每一帧动画、每个字符串——都会占用紧张的内存配额。最后我做了 110 多张预渲染的精灵图,覆盖所有心情和进化阶段的组合

心情计算每分钟运行一次,从以下数据源拉取信息:

  • Body Battery 传感器
  • 压力水平
  • 心率
  • 步数 vs 目标
  • 前一晚的睡眠评分

状态数据在手表本地持久化存储。你的小生物的忽视点数、进化阶段和死亡状态都能在重启后保留

为什么要做这个

我用 Garmin 好几年了。健康数据确实有用,但我都是出了问题才去看——感觉累了或者压力大了才想起来

Garmigotchi 翻转了这个逻辑。现在我看一眼手表就能立刻知道自己状态怎么样。小生物提供了即时反馈,不用翻菜单找数据

而且它出乎意料地有激励效果。看到我的小宠物因为我压力了一整天而病恹恹的,真的会让我想去休息一下。完成步数目标的时候,看到小生物跟我一起庆祝,成就感也更强了 :)

接下来

这个表盘适配了所有 Instinct 系列手表。我正在添加更多的生物变体

目前还在测试阶段。如果你也想用自己的健康数据养一只虚拟宠物,来这里看看 garmigotchi.vercel.app

Stay Updated

Get notified about new posts on automation, productivity tips, indie hacking, and web3.

No spam, ever. Unsubscribe anytime.

Comments

Related Posts