第3关!我也整了一个触手怪物,还是deepseek harness,不过我用心率手环给 AI 装了双眼睛

刷到 @ra1nyxin 那个帖子,让 AI 扮演触手怪控制跳蛋的,当时就觉得这方向有点意思。不过我一直觉得原版缺了点东西——AI 只看画面决定强度,它不知道你身体到底能不能承受,也不知道你现在是兴奋还是疲惫。
—————————————————————————————
所以我就改了改,方向是输入端

具体来说就是:

  • 心率手环的 BLE 广播读到心率和 IBI,用滑动窗口算 HRV(心率变异性)
  • 然后把这些数据喂给 AI,让 AI 知道你现在是兴奋、紧张、还是快撑不住了
  • AI 的输出强度会根据你的状态自动调整——你越兴奋它可以越强,你开始疲劳它就降下来,如果你真的过载了它就 STOP

这个改动有两个层面的意义:

  1. 感知层 ——AI 不再只是“看画面猜状态”,而是能实时读懂你的身体反应。画面看到你在动,心率看到你在兴奋,两者一结合,AI 就知道当前强度是否合适。
  2. 安全层 ——如果心率/HRV 偏离基线太多,系统会自动限幅或 STOP。这部分是硬代码,不靠 AI 自觉。
  3. 感受层——当你想让 AI 加强强度时,它已经知道你在期待——因为你的心率已经先一步告诉它了。

说白了就是:原版是 AI 猜你状态,我改成 AI 读你状态

为什么这么改?因为画面只能看到“你在动”,但看不出你是“爽到”还是“受不了”。心率/HRV 能区分这个。同样的画面,第一次和第五次的身体反应完全不一样——系统能区分。

另外我顺便把网络层也换了,ngrok 太慢了,换成国内 i996 的隧道,速度从“等半天”变成“几秒打开”。(每次启动命令是固定的,重启电脑地址不变)

目前已实现:

待完成:

  • ESP32 开发板烧录固件
  • 玩具到货后抓 BLE 包逆向协议
  • 填入 sendToToy() 函数,第一次完整闭环联调
  • 做完后开源

最后再说两句:

原版做的是输出端——震动→电击、单通道→双通道。我做的是输入端——让 AI 能读懂你的生理状态,再根据这个状态实时调整输出。

一个更懂你身体状态的 AI,和一个能输出更强反馈的 AI——方向不同,但都能让体验更深。:sunglasses:
———————————————————————————
deepseek著:thinking:

2 个赞

zheme nb

1 个赞

根据您要逆向工程的蓝牙设备,我们已经在 Sex Toy Protocols I Have Known And Loved | buttplug.io 或我们的代码库 https://github.com/buttplug.io/buttplug 中记录了几个协议,您可以随意使用这些协议作为参考。

2 个赞

哥们能用吗,不能的话可以出个fjb兼容吗,老哥

2 个赞

等我做飞机杯兼容吧

1 个赞

前排合影()

2 个赞

还有高手?!

2 个赞

这得让不少人力竭,先生

2 个赞

【项目分享】Tentacle HRV — 多模态 AI 闭环体感控制系统

当前版本:以仓库为准(最新 Release v1.8.0)
开源协议:GPL-3.0

:open_book: 项目简介

Tentacle HRV 是一个基于 DeepSeek 多模态 API 的实时闭环体感控制系统:摄像头画面 + 心率数据交给多模态模型决策,再经 ESP32 通过 BLE 驱动反馈设备。核心是让 AI 读到使用者的生理状态。

模块化的 DLC 能力清单、最新进展与已知限制,已统一整理在本主题第 21 楼的合订更新帖,请以那一楼为准(本楼不再重复维护功能列表)。

:warning: 注意事项

  • 涉及体感反馈设备,请合规使用;仅供个人技术学习交流
  • 勿将 .envcerts/models/ 提交到公共仓库
  • 反馈设备需自行逆向 BLE 协议

:pray: 致谢

感谢原作者 ra1nyxin,以及 DeepSeek、Vosk、edge-tts、Chart.js 等工具链。

欢迎交流讨论。

1 个赞

https://forum.koishi.xyz/faq

1 个赞

Tentacle HRV 项目更新(合订本,本楼持续更新)

说明:此前多个楼层的碎片式更新已合并到本楼,以后只维护这一篇,不再新开楼层刷版本。

一句话简介
Tentacle HRV 是一个多模态 AI 闭环体感控制系统:平板摄像头画面 + 心率手环的 HR/IBI 数据交给 DeepSeek 多模态模型,模型输出 SET 强度 时长 波形STOP,再由 ESP32 经 BLE 驱动反馈设备。核心是让 AI 读到使用者的生理状态。

当前版本与更新要点
最新 Release 为 v1.8.0(GPL-3.0);main 分支另有尚未打 tag 的改动(HRV 引擎与会话静息基线、安全层修复、真机联调修复),以仓库为准。v1.0.0~v1.8.0 要点合并如下:

  • v1.0.0:核心闭环——定时拍照上传、心率读取、AI 决策、指令下发
  • v1.1.0:DLC3 随机事件与剧情分支(事件池 events.json;心率偏高降级为放松事件)
  • v1.2.0~v1.3.0:DLC1 AI 语音朗读(edge-tts)、DLC4 手动控制、DLC5 自定义角色接口
  • v1.4.0~v1.7.0:DLC6 对话记忆、DLC7 数据可视化、DLC8 声音氛围、DLC9 Web 配置后台
  • v1.8.0:ESP32 固件修复——波形字符串解析、时长自动停止、BLE 迁移到 arduino-esp32 core 3.x;引入设备类型 Profile 框架:默认体感设备 A(0xFFE0/0xFFE1、上限 60,报文与旧版一致),并预留体感设备 B 骨架

硬件需求
平板或手机(浏览器支持 WebRTC,用于拍照)、运行 Python 3.10+ 的电脑、ESP32 开发板(NodeMCU-32S,作 BLE 中转)、支持 BLE 心率服务 0x180D 的心率手环、支持 BLE 控制的反馈设备。

快速开始

  1. 复制 .env.example.env,填写 DEEPSEEK_API_KEY,并按 README 设置模型名、SERIAL_PORTSERIAL_BAUDINTERVAL_SECONDS 等;密钥只存本地
  2. pip install -r requirements.txt
  3. python server.py --port 8080
  4. 本机访问 http://127.0.0.1:8080/?key=<你的访问口令>(口令自行设置,勿用示例值,勿公开)
  5. 平板访问需 HTTPS,隧道自备;其地址与账号属个人凭据,不在论坛公开
  6. 固件在 esp32_firmware/,用 Arduino IDE 或 arduino-cli 以 esp32 core 3.x 编译烧录

已完成(均已实测)

  • 软件闭环:定时拍照上传、心率读取、AI 决策、指令下发、data_log 记录
  • 模拟画面流 10 帧 → AI 稳定产出剧情 + SET/STOP 指令,且能按生理状态块自行收敛强度
  • /tts 返回 200 / audio/mpeg(浏览器出声待确认);图片超 10 秒未更新则暂停 AI 调用
  • 管理后台阈值运行时生效(重启回默认);公网 HTTPS 隧道 → Flask → AI 全链路
  • ESP32 固件已烧录到真机并验证:ESP32-D0WD-V3、4MB Flash,写入后校验通过(USB-TTL 方式)
  • 真机串口协议验证SET <强度> <时长> <波形>(字符串波形与旧数字格式都认)、STOPBEAT 均符合预期,非法指令被拒
  • 真机完整闭环验证:画面 → DeepSeek 多模态 → 强度限幅 → 串口 → ESP32 收到指令并回话
  • 心率手环已接入:持续上报心率(实测 70~85 bpm 区间)
  • 修复两个安全/健壮性问题:HRV 差分过滤在心率跃迁时会锁死滑动窗口(会让 HRV 限幅静默失效)、串口侧固件中文告警被丢弃;已补回归测试(35 项全绿)

待完成(尚未实测,请勿当作已可用)

  • 反馈设备仍未接入:固件目前每次回答「玩具未连接,指令已记录」,即「电脑 → 串口 → ESP32」这一段已通,物理反馈这一段尚未跑通
  • 所用腕带式手环不提供 RR-Interval(心率特征 bit4 未置位):在这只手环上 HRV 无法计算,当前只有绝对心率阈值(>130 熔断、110~130 限幅)在保护;若需要 HRV 需换支持 RR-Interval 的手环(胸带式通常支持)
  • 波形参数目前未编码进体感设备 A 的报文(固件内为 TODO,报文只含强度),四种波形的物理效果相同
  • 体感设备 B 的 profile 仅有占位骨架:UUID 为占位宏、编码函数返回 0(不发送字节),需实物逆向后填入
  • 时长自动停止尚未在真机验证(需真正写入设备成功后才开始计时)
  • 随机事件弹窗端到端未在真实长时间运行中命中(AI 触发为概率行为)
  • 其他能力一律「待确认」,以 README 与代码为准

已知限制与免责声明
本项目仅供个人技术学习与交流,请遵守当地法律法规,风险自负。心率熔断与限幅属于代码层保护策略,不构成医疗或安全保证;请勿在身体不适或无人看护时使用。默认阈值:心率 >130 强制 STOP、110~130 限幅 50%(可在 Web 后台运行时调整,当前未持久化)。体感设备 A 物理强度上限在固件侧限制为 60。

项目地址
https://github.com/Yhj147369/tentacle-hrv-v2(GPL-3.0;详细说明见 README 与 docs/。讨论请在本主题回复。)

1 个赞