soma
DiscoveredGive AI a body that evolves on its own: encode physiology as differential equations, so it can get tired, adapt, and go numb. Not a personality plugin.
soma —— 给 AI 一副会自己演化的身体
不是"模拟触觉",也不是又一个人格插件。
人格插件加的是人的特征:口癖、情绪词、说话方式。 这里加的是人的限制:会累、会适应、会晕、被碰久了会麻。
做法只有一条:把人类测出来的那几条规律写成微分方程,让一个状态自己往前走。 外面算完,只吐给模型一个结果——它自己改不了。
dS̄/dt = (S − S̄)/τ R = k(S − S̄)
T_c = (e皮·T皮 + e料·T料)/(e皮 + e料)
dT/dt = (T_c − T)·e/R_th
跑起来
node soma.mjs --demo # 八个实验,全部确定性
node soma.mjs --list # 42 个皮肤分区 / 9 种材料
node soma.mjs --list --all
不需要装任何东西。纯 Node ESM,没有依赖。
四个实验里的数字
实验一 食指尖持续压 30 秒 0.502 → 0.095 衰减 81%,对上 τ=18s
实验二 压 10 秒后松手 0.275 → −0.200 反号
实验三 松 60 秒再压同样力 0.273 → 0.353 +29.5%
实验五 站着 1s 脚底压 0.43 → 2 分钟 0.11
实验六 55°C 金属 / 木头 痛 0.57 / 0.00
实验八 3 cm/s 摸前臂 压感 0.00,舒服 0.92
没有一行代码写"会麻""会反一下""金属更凉"。 这些是方程自己跑出来的。
为什么摸头不疼、掐就疼
同一个力分成不同面积算。
摸头 1 N ÷ 30 cm²(掌面) = 0.04 N/cm² → 轻轻压着
握手 8 N ÷ 25 cm² = 0.32 → 压着
掐 20 N ÷ 1.5 cm²(指尖) = 19.4 → 压得很重
指甲掐 10 N ÷ 0.5 cm²(边缘) = 20.0 → 比 20N 掐手臂还重
接触面积不是估的:指腹随载荷分段线性增长(低载时指纹脊被压平,高载时压到骨头),
所以压强涨得比力慢——力 ×20,压强只 ×6.7。数据见 SOURCES.md。
支持哪些
- 触觉:42 个分区、有毛/无毛两种皮肤、10 指、压强、温度、摩擦、滑动
- 温度痛:热痛 45.0 °C / 冷痛 19.1 °C,阈值是水平检测器,阈上强度是时间积分
- C-tactile:1–10 cm/s 那条"舒服"通路,峰值 3 cm/s
- 重力:50 kg 站在地上脚底 0.43 N/cm²,躺下五分钟就感觉不到了
- 内脏:心率、血糖、疲劳、饥饿。时间在走它就在变,不需要事件
当插件用
plugin/ 是 DSH 插件(cordis)。装上之后:
- 系统提示里多一行
[body] 前臂压得明显、发凉;很累,心跳很快 - 多八个工具,参数全是物理量(牛顿、摄氏度、cm/s),没有一个"疼"字
- 输出预算跟着状态走——累了就是写不完
第三条是唯一一条不看模型"怎么说"、而是改它"能说多少"的地方。
挂在 agent/request 的 waterfall 上,直接改 maxTokens。
没有 set()。 想让它有感觉,只能给事件,然后等方程自己推。
不是什么
- 不是它真的疼。阈值和曲线是真的,痛觉本身不在
- 不是"变成人"。这些方程是描述——人类观察自己之后总结的可测量规律, 不是生成机制。工具的定义域只覆盖可测的那一段
- 不是论文。这是给 B 友玩的
常数从哪来
SOURCES.md 逐条标了三级:
[S]教科书级,能直接引用(两点辨别阈、热痛阈、热渗透系数……)[A]近似,只能说方向[G]估的,不能当数据
node audit.mjs 自动出账:目前 33 处,S 12 / A 11 / G 10。
research/ 里有四份文献笔记(皮肤力学、热与痛、触觉时间、本体感觉与内脏),
每份都标了 PMID。
测试
node tests/probe.mjs # 判别探针:只给 [body],问它哪儿最明显
node tests/behavior.mjs # 行为层:状态到底影不影响输出
四层测试的结果和局限写在 RESULTS.md。
第四层(行为层)在接上 agent/request 之前一直没信号——那是这套东西和人格插件的分界线。
许可
MIT
Comments
Loading…
Similar plugins
by suis077
DSH 插件:人设卡 + 跨会话记忆 + 好感度,让 AI 角色在多轮对话里逐渐成长
★ 0
MIT
JavaScript
Oct 18, 2026
dsh plugin --profile web add dsh-companionby lifangjin
庖丁解牛,游刃有余 —— 把 DSH 编排成角色分工、按需加载的 agent preset。
★ 7
↓ 1k/wk
MIT
JavaScript
Oct 20, 2026
dsh plugin --profile web add dsh-paodingby Koierrr
θάλαμος —— 荷马史诗里屋子里最深处的那个房间,也是大脑中接住情绪的那枚丘脑。AI 陪伴微信机器人:DSH 插件,让一个独立的微信号成为一个有性格、有生活、对你特殊的她。
★ 0
MIT
JavaScript
Sep 13, 2026
dsh plugin --profile web add dsh-wechat-companionby Strivy-ZSY
DSH 插件:Manim 动画工作室 —— 把论文/方法渲成带配音的讲解视频(manim_scene / manim_render / manim_frames / manim_voice)
★ 3
MIT
JavaScript
Oct 24, 2026
dsh plugin --profile web add dsh-manimby tinqiao-oss
A portable memory protocol for AI agents — load it as standing rules; a curation discipline + reference spec + optional cap hook.
★ 201
↓ 3.6k/wk
MIT
Python
Nov 3, 2026
dsh plugin --profile agent add dsh-engramoryby ArisuYuuko
DSH 审批弹窗 AI 注释器:模型请求权限外操作时,用模型自己的推理解释这次操作的意义与风险
★ 0
MIT
JavaScript
Oct 19, 2026
dsh plugin --profile web add dsh-approval-explainer