【1024Builder作品秀】1024还在撸代码?谁来关心程序员健康?我来!全新升级的不良坐姿与久坐识别提醒方案

一、背景

前排都散开,让我来守护程序员的健康!

了解我的都知道之前做了一个久坐提醒方案。

全新TRAE助力我颠覆传统久坐提醒方案——懒癌晚期也能有救了! - 互动交流 - TRAE 官方中文社区

久坐这件事,知道要起身的人很多,真的起身的人很少。手环、App、弹窗、都用过,最后大多习惯后随手关掉了。最后思考很久,改为震动提醒,让我的注意力不得不集中到久坐上来,形成真实干预,必须让"忽略提醒"的成本高于"执行提醒"。。

拉了几个朋友来试了下,都说这个方案比普通的手表提醒强多了!

而这周,我又使用trae全新升级了整体体态监控方案:一个塞进椅子的震动装置,一个打开就能用的体态网页。

椅子负责让你起身,网页负责告诉你坐姿哪里不对。两样都不联网,数据只在这台电脑上。

二、痛点:方案的简洁与提醒的平衡艺术

手环震一下,抬腕划掉。弹窗弹出来,半秒关掉。常驻横幅看久了,变成背景。

它们共同的问题是:你什么都不做,提醒就失效了。弹窗关掉只要半秒,起身要三秒,但只有后者算数。

所以这次没有做「更强的提醒」,而是把停止提醒的动作变贵:想停震动,只能站起来。同时方案做到极简,这才是程序员们最喜欢的感受

三、产品哲学:七大原则造就

体验

1. 不弹窗:想停只能站起来

震动只走触觉,不打扰别人,也没法一键关掉。椅子把终止动作从「点一下」换成「站起来」,继续工作和停止提醒变成互斥的。

装置装进椅子,而不是做成 App。49E 线性霍尔贴在坐垫下,非接触、没有机械磨损跟体重无关,装上去就不用管它。

2. 斜前方 20–40°:最佳单摄像头方案

摄像头不要求正对。真实的桌子是斜的,显示器是偏的,人也会歪。正对脸时,头前伸在二维画面里被压扁,反而最不准;屏幕斜前方 20–40° 能同时看到耳、肩、膝,测头前倾和歪肩更稳。

腿被桌子挡住,页面就写「这条我看不到」;髋部不可见,躯干维度直接灰掉,不参与总分。看不到的地方不猜。

3. 适配多屏:上下左右正常转头识别兼容

写代码的人经常看左右甚至上下副屏。我也是,所以算法逻辑是头相对基线转 25° 以上,头前倾暂停计时;肩中点 3 秒位移 RMS 超过 3%,判定在调整姿势,三个场景都暂停累计。回正 3 秒以内不清零,超过 3 秒才开始衰减。

三个场景各自计时、各自冷却,含胸不会把肩线也算上。进入和退出用 0.35 / 0.20 双阈值,来回晃不跳。支持可配置

4. 标定错误姿势:最简洁稳定的算法

标定不是录一个「标准坐姿」,是把你自己的坏姿势录进去。

  • 基线:坐直 5 秒,取中位数和 MAD,抗瞬时抖动。

  • 示教:头前倾、含胸驼背、肩线不对称,各录 3 秒。含胸就真含胸,不用客气。

  • 出阈值:(坏姿势中位数 − 基线) × 0.6,夹在下限和「偏差 × 0.85」之间。

  • 验收:重放刚录的数据,看每段命中率,80% 以上算通过。

没录的场景继续用默认阈值;录得不好只影响那一个场景。灵敏度有低/标准/高三档,统一缩放三个场景的阈值。自适应基线默认开,只在这一帧坐姿良好且没有场景触发时,按 1.2% 缓慢跟随;每项都有漂移上限,防止把驼背学成正常。标定结果可以导出 JSON、换机器导入。

5. 聚焦最关键 3 个场景

根据我多年的养生和对解剖学的自学经验,只需要做3个关键场景就可以:头前倾、含胸驼背、肩线不对称。

下面放下我最推荐的解剖列车,推荐每个被脊椎问题困扰的朋友阅读!

总分还在,但只决定圆环颜色。红屏和告警只看三个场景。总分低于 60 且持续 5 秒也会变红,避免「45 分却显示轻度偏差」。

6. 更多场景识别

支持识别眨眼、哈欠、皱眉、视线、俯仰、歪头等 8 项人脸指标。更有疲劳度/专注度识别!

7. 数据不出本机:离线 + 隐私模式

33 个姿态点、478 个人脸点。人脸模型顺带给了 52 个 blendshape,眨眼、张嘴、皱眉、视线方向直接取值

数据放在本地,断网照跑;5fps 推理,骨架用 rAF 插到 60fps;头前伸用米制 3D,不受远近影响;角度在像素空间算,避免 16:9 下 2.25 倍的偏差;GPU 不可用时自动降 CPU,不弹错误。

不想露脸可以开隐私模式,只画骨架如图。

四、TRAE 是怎么把这两样东西做出来的

1. 项目深度研究和文字处理能力升级

开新任务时,我没贴需求、没贴目录结构、没解释引脚约定。我让它直接读项目里的需求文档和固件源码,它自己定位到采样、去抖、状态机各在哪,知道既有的参数命名习惯,我只圈改动边界。

针对人脸和脊椎模型,我自己肯定做不出来,于是让TRAE的深度研究助手帮我处理,调研结果又快又规整,无需我和以前一样过多的干预就可以。

2. 拆完直接切 IDE,改一行烧一次

方案在 Agent 里确认完,直接切 IDE 模式写代码,不用把文件路径和结论抄一遍。

「改 → 烧 → 看 → 再改」在同一个任务里闭环,固件就这么一个模块一个模块写下来的

参数全部做成在线可改、写进 NVS 不用重编译,所以调阈值不用等编译。需要真机验证时把 testTimeScale 开到 60,30 分钟压成 30 秒。

配套的网页工具箱也是在这个循环里做完的:设置向导、一键烧录、高级调参、使用说明四页。一键烧录不需要装 PlatformIO;向导里画实时电压曲线,拿着磁铁在坐垫下晃,线跟着动就说明硬件通了。

3. 全新浏览器操作模式是真香

网页做完,我没自己点。让它打开页面,点开始、等标定、开设置、改数值、导出报告、进回放,摄像头授权那一步它停下来交还给我,点完继续。

效率实在太goal,回来三个具体的坑:归一化坐标直接算角度,16:9 下偏 2.25 倍;serve.mjs 没配 application/wasm,模型加载直接失败;窄屏下右栏被挤,页面出了横向滚动条。这三条都是我自己点一遍大概率会漏掉的。

以前我是产品的第一个用户,也是唯一一个测试机。这次它先跑一轮,我只处理必须人来的部分——摄像头授权、真人姿势、坐感和震动强度。

4. SIDE CHAT模式是我最惊喜的

改需求中不用等它跑完。回归在跑的时候,我直接去修改文案,研究新的方向探索,可以继承左侧主对话流的上下文,这个太强了吧!

椅子标定就是这么迭代出来的。第一版只录「坐直」和「含胸」两组算阈值,后来发现不同人驼背幅度差很多,改成基线 + 三个场景各录 3 秒坏姿势,阈值按 (坏姿势中位数 − 基线) × 0.6 算,夹在下限和偏差 × 0.85 之间,再重放刚录的数据看命中率,80% 以上才算通过。这套流程不是一次想好的,是一句一句补出来的。

五、演示和开源

项目清单

  • 一把装在椅子上的装置,5V 供电,坐感零改变;

  • 固件:四状态机、在线参数、三套配置档案、时间加速、OTA 双分区;

  • 网页工具箱:设置向导、一键烧录、高级调参、使用说明;

  • 设备看板:AP 热点、今日统计、7 天历史、200 条会话、CSV;

  • 体态网页:3 个场景、29 项指标、人格卡、证据墙、报告导出、回放;

  • 若干文件手册。

来玩:

  1. 报误判:打字、拿杯子、伸懒腰、看副屏,哪种姿势没有识别到误报了?说清楚动作,我来优化。

  2. 点场景:你希望它盯住哪个姿势——探颈、塌腰、翘腿、歪头看手机?说一个,我评估能不能做成第四个场景。

  3. 骨架竞猜:发骨架图,猜分数和人格

  4. 机位挑战:同一个姿势,找找有没有更好用的位置,看分数准确度差多少。

DEMO源码

坐姿健康-1024特别版.zip (9.5 MB)

随便想了个slogen哈哈:

提醒的终点不是更强的提醒,是不再需要提醒。

6 个赞

这么快就升级了吗

2 个赞

咱俩做的方向一致哈,可以多交流~

1 个赞

是啊,不过也是搞着玩的,真要量产推广大概率是很难赚钱啦

1 个赞

大佬是商业项目还是搞着玩?可以多交流啊

1 个赞

敢到点下班比什么都强

2 个赞

哈哈确实,不过大多数人都是懒得动,一坐就是一下午,不少痔疮都犯了

1 个赞

“让停止提醒的动作变贵”——这个思路太对了。所有效率工具都在跟用户的意志力对抗,而意志力是最不靠谱的资源。你用 49E 线性霍尔加椅子震动,把"点一下关掉"换成"站起来",本质上是把交互成本从软件转移到了物理世界,绕开了"手比脑快"这个漏洞。

不联网、不打扰别人、还不依赖体重,这三个约束同时成立其实挺难的。

而且我理解你为什么做这个——程序员的产出曲线和身体状态强相关,久坐 → 赶工 → 腰颈报警 → 更赶工,这个循环我自己也陷进去过好几次。

顺便,我这次做的是「Builder 之塔」,主帖的回帖一块块砌起来的,能给自己"留一块砖"、还能生成一张 1024 Builder 认证证书 PNG:
作品帖:【1024Builder作品秀】Builder 之塔 · 每一块砖都是一个真实的 Builder
在线玩:https://hux0vPwM.html2.link
久坐记得起来走两步,砖我给你留着 :brick:

2 个赞

搞,都是一砖一瓦

1 个赞

还有全栈方向的,想起来晚上睡觉爬起来给Trae点继续了

2 个赞

值得一直优化下去的作品

2 个赞

真的很不错!

1 个赞

硬件的都是大佬

2 个赞

恭喜获得高光作品!

1 个赞