← Back to home@weibaohui

dsh-matrix

dsh 插件 · 黑客帝国数字雨:对话窗口铺上经典字符雨背景,token 原文掺进雨里,雨势随 agent 活跃度起伏

Stars
0
Language
JavaScript
Created
Sep 26, 2026
Updated
Oct 4, 2026
GitHub repo

Introduction

@weibaohui/dsh-matrix

DSH plugin npm version

黑客帝国数字雨:对话窗口铺上经典的绿色字符雨背景——英文与数字的雨柱倾泻而下,白炽雨头绿身拖尾,agent 正在生成的 token 原文实时掺进雨里。字符在窗口上流动,代码在雨中生长。透明度、速度、密度、字号、配色全部可调,雨势还会跟随 agent 活跃度起伏。

三轴独立自由组合:模式定显示内容(英文数字/篆体/甲骨)、配色定颜色(经典绿/琥珀/赛博青/品红/鎏金/七彩轮转/七彩随机)、金边发光定效果(描边+外发光晕)。v0.2 起 新增「道法修仙」模式:把雨换成汉字篆体——金光描边、金色实心、外发光晕,token 里的汉字落进雨里,此模式不用字母、不用数字。v0.3 再增 「甲骨卜辞」模式:商代甲骨文折线字形金光雨,卜辞占卜祭祀语感。设置页「模式」一栏切换,详见下文「道法修仙模式」「甲骨卜辞模式」。

道法修仙模式

切到「道法修仙」模式,雨就换了骨血:

  • 汉字篆体:字符集换成道法修仙语感的汉字——天干地支、五行八卦、四时、道德经、修性命炼精化气、丹道神魂、阴阳心性、飞升渡劫,另加二十八宿/五方/五色/五常/朝代等 LXGW 收录的玄学字。纯汉字,不含任何字母与数字。
  • 嵌入篆体字体(自包含):把 LXGW 霞鹜篆书(OFL-1.1,说文小篆)整文件 base64 嵌进插件 bundle,离线即真篆,不联网、不依赖宿主静态路由;OFL 许可随包分发(client/fonts/lxgw-seal-OFL.txt)。字体栈把方正小篆体 / 方正峄山碑篆 / 汉鼎繁印篆 / 崇羲篆體等秦刻石一脉系统字体放最前——你装了方正小篆(最接近峄山碑)就自动出真秦篆;没装则落嵌入的说文小篆;再不行退 CJK 衬线。浏览器按字形逐字回退:天干地支/五行/二十八宿等嵌入字体收录字呈真篆形,其余汉字呈今字形。
  • 金光描边金色字体发光:每字外发光(shadow 晕开成金色光晕)+ 金光描边(strokeText)+ 金色实心(fillText);雨头近白金、雨身深金——白头金身,与矩阵模式白头绿身同构。金光是字形图集离屏预渲染时一次性塑形的,运行期 drawImage 贴图零额外成本,性能不输经典雨。
  • token 里的汉字落进雨里:feed 机制只放行汉字(非汉字一律丢弃),agent 正在生成的中文 token 原文混进雨柱字符池——屏幕上落的就是你自己的对话(feed 仍只在字符池里的字才进雨,与矩阵模式同款约束)。
  • 注音标注(旧字典注法):每个雨字上方标一行小注音符号——道 → ㄉㄠˋ、玄 → ㄒㄩㄢˊ、日 → ㄖˋ。注音字母本身取自古字(ㄅ出自包、ㄇ出自冪、ㄈ出自匚),与篆体一脉相承;声韵调由内置拼音表经确定性转换生成(zh/ch/sh 空韵、j/q/x+u、iou/ui/un 展开全处理),设置页「注音标注」可关。
  • 颜色与效果正交:配色(经典绿/琥珀/赛博青/品红/鎏金)与「金边发光」开关都是独立属性,任何模式配任何色——配鎏金 + 金边发光即金篆观感;配经典绿 + 关金光就是纯绿篆字;配七彩轮转则雨柱自上而下逐字换色(按行位置取色),七彩随机则每个字符独立随机七彩之一。

关于「峄山碑」:方正小篆/方正峄山碑篆等峄山碑一脉字体均商用,无免费可分发版本;嵌入的 LXGW 霞鹜篆书字形来源是《说文解字》小篆,非峄山碑。要真·峄山碑/秦刻石手,需自行安装方正小篆(个人非商用免费)——系统字体栈会优先用之。矩阵/甲骨模式不发起该字体加载。

甲骨卜辞模式

切到「甲骨卜辞」模式,雨换成商代甲骨文:

  • 甲骨折线字形:字符集是卜辞占卜祭祀语感的汉字——卜兆吉凶、帝祖宗示、祭祀祝祈、日月星辰、山水火木、田邑宫室、牛羊豕犬、征伐戍克等共 152 字。字形取自 aylqs2025/oracle-bone-jgw-1203 数据集(Li & Bian, npj Heritage Science 2026,CC-BY 4.0),用其 polyline 折线 SVG(甲骨刻线的线性质感)。
  • 嵌入字形表(自包含,无需字体文件):把命中的 152 字的折线 path 数据精简成 client/oracle/glyphs.json(约 7.5KB)嵌进 bundle,运行期用 Path2D + ctx.stroke 渲染——不依赖任何字体文件,单文件自包含。署名见 client/oracle/ATTRIBUTION.txt。
  • 金光描边发光:与修仙同款金色,但走描边为主(甲骨刻线感)+ 外发光晕 + 金光描边;雨头近白金、雨身深金。
  • token 里的汉字落进雨里:feed 只放行汉字且在字符池里——agent 输出的中文 token 原文混进雨柱。
  • 注音标注:同修仙模式,雨字上方标老式注音符号(卜 → ㄅㄨˇ、帝 → ㄉㄧˋ、雨 → ㄩˇ),设置页「注音标注」可关。
  • 甲骨模式是商代卜辞语感,非道法修仙:修仙核心字(道法阴阳玄神魂魄精乾坤坎离巽艮)商代尚未成字,不在数据集;甲骨语料是占卜祭祀、祖先自然、天文历数,调性与修仙不同——两个独立模式,各美其美。

效果演示

demo:满屏字符雨 · 对话内容透过雨布 · 右上角设置面板实时调参

默认 30% 透明度浅色主题 45% 透明度
默认 30% 透明度:氛围与可读性兼顾浅色主题下照样清透
70% 透明度 × 1.3 密度
0.7 透明度 + 1.3 密度:正经矩阵

核心功能

  • 经典配方,英文数字语感:纯英文大写 + 数字 + 符号字符集(不含任何日文假名);同列相邻字符永不重复,满屏 AAA/666 的廉价感不存在;每列雨柱独立速度、独立亮度(景深层次),离屏错落起跑;雨头白炽、身后一格染回主题色——白头绿身;偶发在拖尾区随机重写一格,雨柱内部字符像在跳动
  • token 原文落进雨里:宿主捕获 assistant/chunk 流式 token,SSE 推给雨布——约 1/3 的雨头字符来自 agent 正在生成的原文(大写化后进字符池),屏幕上落的就是你自己的对话;非拉丁字符自动丢弃,设置页可关
  • 雨随 agent 起伏,三维加权:宿主实时统计 token 吞吐(40%,流式字符按 1/4 折算 + 消息 usage)、工具调用频次(30%)、活跃会话数(30%),合成 0..1 强度值经 SSE 推给雨布——事件越频繁、工具越多、token 越多,雨速越快(最高 ×1.9)、雨越亮;空闲回落;设置页可关
  • 满屏覆盖的长拖尾:拖尾按 4s 时间常数衰减(帧率无关折算),雨柱垂满屏幕高度、不留大片空屏;快速雨柱一帧跨多行时逐格补字,雨柱内部无空洞
  • 透明雨布零侵入:position:fixed; pointer-events:none 画布盖在对话上空,不挡任何点击;拖尾用 destination-out 逐帧擦除,画布本身永远透明,对话内容透过来,canvas.style.opacity 是「雨中看代码」的总旋钮(默认 30%);显示范围可选**除左侧栏(默认,动态探测对话区左缘——输入框祖先链 / 侧栏元素 / main 结构三级递进,侧栏收缩、拖宽实时跟随)**或全屏
  • 性能自律(dsh-fireworks 同款思路):渲染分辨率封顶(DPR≤1.5、长边≤2400,Retina 屏光栅像素省 5 倍起);30fps 节流(雨是离散步进,30fps 足够顺滑,擦除/落笔全员减半);字符按主题色预渲染成字形图集,运行期 drawImage 贴图不逐字 fillText;先雨身后雨头两遍批量落笔,每帧仅两次颜色状态切换;自适应画质——撑不住帧率先关拖尾闪烁、再降 24fps 档,宽裕自动回升;页面隐藏暂停、prefers-reduced-motion 自动停放。实测 6 倍 CPU 降速施压:JS 侧逐帧成本 0.72→0.31ms(4.3×↓),帧数 56→30fps(节流封顶),全程画质满格
  • 深浅主题各自配色:暗色用经典绿、亮色用琥珀(各自可另选经典绿/琥珀/赛博青/品红)——客户端每 3s 采样页面底色亮度,UI 切换深浅时雨色实时跟随;旧配置的单「配色」字段自动映射为暗色配色,升级不丢偏好
  • 持续下雨可关:关掉后,对话未开始或已收尾时雨会渐渐停歇(排空模式:只擦不落,拖尾淡尽自动停机省电);agent 开始干活,雨随之而来
  • 双击切换:窗口里双击,随时在清屏与下雨之间切换(右下角浮标提示;输入框内双击选词不触发)——想安静看段代码,双击就好,想看雨再双击回来
  • 开箱即管:设置页模式(黑客帝国 / 道法修仙)、总开关、透明度滑杆(5%–100%)、速度/密度/字号滑杆、暗色/亮色配色各一个下拉(含鎏金与七彩,所有模式生效)、金边发光开关(与模式/配色独立叠加)、显示范围(除左侧栏/全屏)、跟随 agent 活动、掺对话原文、持续下雨、注音标注(修仙/甲骨模式雨字上方标 ㄅㄆㄇㄈ)、双击清屏、引擎实时状态(雨柱数/fps/帧耗/画质/倍率/连接状态)

安装

dsh plugin --profile web add @weibaohui/dsh-matrix -w

装完重启 dsh web 即生效。入口:设置 → 黑客帝国(管理面板)。

使用

  1. 装完即在下雨,不用做任何事——除左侧会话栏外整窗都是母体(要全屏雨:设置 → 黑客帝国 → 显示范围切「全屏」)
  2. 嫌抢戏:设置页把透明度调低(0.15 左右是幽灵的低语);嫌不够矩阵:拉到 0.6+
  3. 换终端配色:暗色/亮色各配各的——0.7 起默认七彩轮转,经典绿/琥珀/赛博青/品红/鎏金/七彩随机随切随换,像切换不同舰船的终端
  4. 雨随 agent 忙闲起伏是默认开启的;想要一潭静水:设置页关掉「跟随 agent 活动」
  5. 想安静看代码:双击窗口清屏,再双击恢复;不聊天时也想让雨停:关掉「持续下雨」
  6. 控制台彩蛋:__dshMatrix.boost(3)(模拟 3 个会话同时活跃);__dshMatrix.applyConfig({ opacity: 0.8, themeDark: 'cyan' })
  7. 不装插件也能预览引擎:浏览器打开 demo/demo.html(带全套滑杆的假对话页,?region=no-left&continuous=0&opacity=0.6 直达参数;预览修仙模式加 &mode=xian,甲骨模式加 &mode=oracle)

实现说明

宿主(src/index.js)                     客户端(client/)
─────────────────                       ─────────────────
session/event 忙碌事件打点               全屏透明 canvas 浮层
  ↓ 2.5s 滑窗计活跃会话数                 (fixed, pointer-events:none)
SSE /dsh-matrix/api/stream ──→          rain.js 引擎下雨
  { kind:'activity', level }              ↓ boost = 1+0.3×level 平滑逼近
storageDomain 持久化配置                  雨速/亮度呼吸起伏
GET/POST /dsh-matrix/api/config ──→     设置页调参实时生效
  • 宿主:配置读写与持久化(dsh-flow 同款 connection 信任栅栏)+ 活跃度统计(assistant/chunk、tool/call、tool/result、turn/start 等打点,700ms tick 重算,level 变化才广播;新订阅者立即补当前值)
  • 渲染:Canvas2D;destination-out 擦除拖尾(不涂黑底,画布恒透明); 渲染分辨率封顶 DPR 1.5 / 长边 2400;30fps 节流;字形图集(GLYPHS×双 色离屏预渲染,运行期 drawImage);雨柱离散行步进 + 帧率无关衰减; 列距 = 字号 / 密度;自适应画质(帧率不足先关闪烁再降 24fps 档)
  • 构建:client/rain.js + index.js 由 scripts/build-client.mjs 内联进 bundle 工厂作用域

HTTP API(宿主)

路由说明
GET /dsh-matrix/api/streamSSE 活跃度直播(level 变化才推帧,25s 心跳)
GET /dsh-matrix/api/config读配置
POST /dsh-matrix/api/config存配置(storageDomain 持久化,宽松校验)

配置 schema:{ enabled, opacity(0.05..1), speed(0.3..2.5), density(0.5..2), fontSize(12..24), mode(matrix|xian|oracle), zhuyin(bool), glow(bool), themeDark(classic|amber|cyan|magenta|gold|rainbow-cycle|rainbow-random), themeLight(…同上), region(no-left|fullscreen), reactive, feed, continuous, ignoreReducedMotion }

开发

npm run check          # 语法检查
npm test               # 9 项离线测试(配置归一化/字符集/配色一致性/布局/活跃度滑窗)
npm run build:client   # rain + index → client/bundle.js

link 安装的实例改完源码 npm run build:client 后刷新页面即生效。

联系我 :飞书群

link

版本兼容性

本插件与 DeepSeek Harness(@deepseek-ai/dsh)的版本对应关系:

插件版本适配 dsh 版本备注
0.7.00.1.7-rc.2当前版本;默认切换——显示内容默认甲骨卜辞、深浅配色默认七彩轮转、金边发光默认开(升级后即见七彩发光甲骨雨);存量配置经 v 闸一次性迁移:恰为 0.6 旧默认(matrix/classic/amber)的值升到新默认,用户显式改过的值原样尊重,v≥7 后刻意改回不被回翻
0.6.00.1.7-rc.2配色新增七彩轮转(字符按行位置逐个换色,雨柱自上而下赤橙黄绿青蓝紫轮转)与七彩随机(每个字符独立随机取七彩之一)——图集升为 7 色 × body/head 14 行,与三模式、金边发光、注音全兼容
0.5.00.1.7-rc.2三轴解耦——模式=显示内容、配色=颜色(新增鎏金 gold,所有模式生效)、金边发光=独立效果开关,可自由组合(如英文数字+鎏金+金光、篆体+经典绿+无金光、甲骨+赛博青+金光);旧修仙/甲骨配置自动迁移为金光开,矩阵保持纯净
0.4.00.1.7-rc.2修仙/甲骨模式新增「注音标注」——雨字上方标老式注音符号 ㄅㄆㄇㄈ(旧字典注法),内置拼音表 + 确定性拼音→注音转换,设置页可关
0.3.00.1.7-rc.2新增「甲骨卜辞」模式(mode=oracle)——商代甲骨文折线字形金光雨,嵌入 aylqs2025 数据集(CC-BY 4.0)152 字 path 表,Path2D 渲染不依赖字体文件;修仙模式改为嵌入 LXGW 霞鹜篆书(OFL)整文件进 bundle,离线即真篆,字体栈优先方正小篆/峄山碑篆系统字体
0.2.00.1.7-rc.2新增「道法修仙」模式——汉字篆体金光描边发光雨(mode=xian),token 中的汉字落进雨里,此模式不用字母不用数字
0.1.30.1.7-rc.2修复配置持久化——storageDomain 打开 spec 缺 valueSchema 导致存过一次配置后域打不开,保存只落内存、宿主重启回默认;POST 保存等域就绪防启动竞态;设置页保存失败不再假「已保存 ✓」
0.1.10.1.7-rc.2已在 @deepseek-ai/dsh@0.1.7-rc.2 下验证运行

发版约定:每次发布新版本时,请在上表追加一行,记录该插件版本实际验证所用的 @deepseek-ai/dsh 版本。package.json 的 engines.dsh 声明最低支持版本;本表记录实际验证版本,二者配合使用。

License

MIT