🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

ASCII 鲨鱼壁纸 MouQianDi0/dsh-ascii-sharks-wallpaper

DeepSeek Harness
MouQianDi012 天前有提交已提供中文文档扫描:无法判定

把动态鲨鱼鱼群海底世界铺成整窗壁纸

30.3/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add MouQianDi0/dsh-ascii-sharks-wallpaper
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
L4 · 真实安装等级说明 →
数据截至 2026/10/28·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 12 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 取源不可用(Error: github tarball HTTP 404 @ https:
  • · api.github.com
  • · repos
  • · MouQianDi0
  • · dsh-ascii-sharks-wallpaper
  • · tarball)
扫描于 2026/11/4(1 天前)

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

会动的 ASCII 鲨鱼、鱼群,还有协作围猎的海洋,画成 DeepSeek Harness 窗口壁纸。(未授权:上游 ascii-sharks 没有许可证,取得许可前仅限私人使用。)

README

由 DeepSeek 最新模型翻译生成
ASCII Sharks Wallpaper(ASCII 鲨鱼壁纸) 把 stackedlol/ascii-sharks 的整片海底世界搬进 DeepSeek Harness 的网页界面,作为整窗动态壁纸: - 4 条经典鲨鱼 + 2 条幼鲨 + 若干鱼群(沙丁鱼 / 鳀鱼 / 银鱼 / 鲭鱼 / 虾虎鱼),由 boids 与追捕逻辑驱动; - 围猎(Pack hunt):两条以上饥饿的亚成体/成体鲨鱼会合作围猎鱼群——先在鱼群外围列阵,收拢包围圈后一起冲入突袭,鱼群缩成「饵球」再被冲散;右下角面板会在围猎期间多显示一行实时状态; - 尾迹扩散、光照、加速时的银色闪光等原始渲染细节全部保留; - 右下角悬浮「水族箱」面板:token 余额、可投喂次数、每条鲨鱼的阶段与今日 GP; - token 养成:每消耗 1M tokens 换 1 次投喂;鲨鱼吃饲料 / 捕鱼获得 GP,按阶段长大; - 鼠标在窗口内移动会带动海流;右键点水面撒饲料(1M tokens)、右键点鲨鱼喂大块饲料(1M、最多 +4 GP)、左键点鱼身把它惊走; - 尊重系统的「减少动态效果」:此时只渲染一帧静态画面,并关闭互动。
展开完整文档(README 剩余 1 节)
ASCII Sharks Wallpaper(ASCII 鲨鱼壁纸)

把 stackedlol/ascii-sharks 的整片海底世界搬进 DeepSeek Harness 的网页界面,作为整窗动态壁纸:

- 4 条经典鲨鱼 + 2 条幼鲨 + 若干鱼群(沙丁鱼 / 鳀鱼 / 银鱼 / 鲭鱼 / 虾虎鱼),由 boids 与追捕逻辑驱动;
- 围猎(Pack hunt):两条以上饥饿的亚成体/成体鲨鱼会合作围猎鱼群——先在鱼群外围列阵,收拢包围圈后一起冲入突袭,鱼群缩成「饵球」再被冲散;右下角面板会在围猎期间多显示一行实时状态;
- 尾迹扩散、光照、加速时的银色闪光等原始渲染细节全部保留;
- 右下角悬浮「水族箱」面板:token 余额、可投喂次数、每条鲨鱼的阶段与今日 GP;
- token 养成:每消耗 1M tokens 换 1 次投喂;鲨鱼吃饲料 / 捕鱼获得 GP,按阶段长大;
- 鼠标在窗口内移动会带动海流;右键点水面撒饲料(1M tokens)、右键点鲨鱼喂大块饲料(1M、最多 +4 GP)、左键点鱼身把它惊走;
- 尊重系统的「减少动态效果」:此时只渲染一帧静态画面,并关闭互动。

仓库结构

dsh-ascii-sharks-wallpaper/
├─ index.js # Host 入口(现为空 apply;token 全在客户端计算) ├─ src/wallpaper.js # 客户端外壳源码(Cordis 插件 + 引擎循环 + 水族箱 UI) ├─ vendor/ascii-sharks/src/ # 上游 ascii-sharks 的 4 个 TypeScript 源文件(带 NOTICE) ├─ tools/ │ ├─ patch-world.mjs # 锚定替换生成 build/engine/world.ts(喂食/生态/成长) │ ├─ patch-renderer.mjs # 生成幼年形态/单主色渲染版 renderer.ts │ ├─ build-sharks-client.mjs # 离线打包 → lib/client.js │ ├─ smoke-client.mjs # bundle 冒烟(slot / locale / 钱包与成长纯函数) │ └─ sim-test.mjs # 无头世界模拟测试(聚食、捕食、鱼群生态、名册) ├─ lib/client.js # 构建产物(已提交,安装时无需构建) ├─ build/engine/ # 构建中间产物(git 忽略) ├─ locale/en.json zh.json # 插件元数据 ├─ docs/growth-cycle-design.md # 超长喂养周期(M1–M3.5)设计稿 ├─ docs/pack-hunt-design.md # 围猎状态机设计与实现记录 ├─ .github/workflows/ci.yml # push/PR:构建 + 测试 + 产物一致性校验 ├─ cordis.patch.yml # DSH bundle patch └─ package.json

构建与测试

需要 Node.js ≥ 22.6(使用 Node 内置 stripTypeScriptTypes,无需 npm install、无第三方依赖、无网络):

npm run build # patch 上游 → 打包 lib/client.js
npm test # 冒烟 + 世界模拟
npm run check # node --check 两个入口

CI 在构建后会执行 git diff --exit-code -- lib/client.js,确保提交的 bundle 与源码一致。

推送到 GitHub

仓库已初始化并打好首个 commit,替换用户名后直接推送:

git remote add origin git@github.com:<你的用户名>/dsh-ascii-sharks-wallpaper.git
git push -u origin main

推送前请读一遍 NOTICE.md:上游 ascii-sharks 没有 LICENSE,默认建议 私有仓库;若要公开,需先取得上游作者授权或替换为有许可的 fork。

工作原理

- 客户端模块 lib/client.js 内含由上游 TypeScript 源码(math / species / world / renderer)离线编译成的引擎包;world 由 tools/patch-world.mjs 在构建期派生,加入鱼饲料与觅食行为(见下节)。
- 客户端自己实现固定步长循环:主 canvas 画整片海,第二张透明 canvas 叠在其上画 ASCII 饲料、水花圈与咬食碎屑,最后才是薄纱层。三张都随 AppFrame 尺寸变化。
- 外壳会把 --dsw-alias-bg-base 叠在多层表面上(框架、Windows 中栏、会话根节点),逐层做半透明会让海面被重复压暗、且 macOS / Windows 效果不一致。因此本插件把外壳的基础底色让成 transparent,再在 canvas 上方自带单层磨砂薄纱 (backdrop-filter: blur(...) + 主题底色),海面强度在整个窗口内一致,正文对比度保持在可读范围。
- 侧边栏额外保留一层很淡的底色(--dsw-specific-sidebar-fill),让栏位仍可区分。
- 只使用 Harness 的主题 token、locale 与 slot 机制,不修改其它插件的 DOM,卸载时还原全部样式与节点。

首页 ⇄ 对话模式

壁纸会自动识别「新建话题」首页,并在两种状态间用 1.2s 过渡:

| 状态 | 磨砂 | 薄纱 | 说明 |
| 新建话题首页(Hero) | 0 px | 浅色 0.55 / 深色 0.14 | 通透、清晰的原始海面,只留足以读标题的薄纱 |
| 进入对话 / DSH 输出 | 设置的磨砂值 | 设置的浓度曲线 | 自动渐入磨砂,让正文保持可读 |

判定信号有两个:会话根节点在 Hero 态给输入区加上的 _composerHero 类(400ms 轮询,兼容无 Session 的 Hero),以及 conversation.hero.options 插槽的挂载与卸载(框架级、即时)。任一存在即视为首页模式;两个信号都消失后开始渐入磨砂。回到新建话题会反向过渡回清晰海面。常量在 lib/client.js 的 HERO_SCRIM 与 MODE_TRANSITION_MS。

投喂与互动

撒饲料(右键):右键点击空白水域(macOS 触控板可用双指点击或 Ctrl+点击;首页除控件外的任意空白处;对话中消息卡片与输入框之外的空白区域)会先校验 token 余额,扣除 1,000,000 tokens 后撒下 10–14 颗金黄色 ASCII 饲料 ,四散漂浮、轻轻闪烁;落点会荡开一圈水花点。余额不足时不会落食,光标处出现一圈虚线 + 0 / 1 提示。触发条件写死在 isWaterTarget():按钮、链接、输入框等控件区域不会误触;这些区域以及消息卡片上的右键仍保留系统/应用自己的菜单。投喂只走右键,左键点空白水域不再扣 token,避免误触,左键只用于点鱼惊走。

鱼群反应(拟生物):每颗饲料有 2–4 口;鱼通过「气味」探测,嗅距随个体食欲增长(smell = 420 + 220 feed,最高约 640px),越近转向越急、游速越快,靠近后自动减速避免穿过饲料。不同鱼食欲不同,鱼群会以整体转向的方式靠拢,而不是所有鱼同一帧掉头;远处的鱼先转头、近处的鱼先冲刺,形成真实的聚拢波。

吃完游开:每条鱼每轮只吃一口,随后进入 1.4–2.4s 的「饱食」状态,沿离开饲料的方向缓慢滑开并回到鱼群,饲料被分食后整群自然散开。

点鱼惊走(左键):左键点击落在鱼身字符上时,该鱼朝远离光标的方向以 127.5px/s 窜出并拉满警戒,警戒再按上游的「传染」机制传给邻居——整群会闪散一下,再慢慢聚拢。

大鱼也来抢食:画面里最大的那几条是上游的经典鲨鱼(不是鲸鱼;首页标题旁 34px 的小鱼才是 DSH 自己的品牌动画,不参与模拟)。饥饿度 > 0.2 的鲨鱼会嗅到最近的饲料(520px 内),压过「标题安全椭圆」的限制游进来,每次最多吞一颗(冷却 1.6–2.6s),每吞一颗饥饿度 −0.1,吃几颗就饱了离开。因为鲨鱼转弯半径大,它通常比小鱼晚到,冲进来时会把抢食的鱼群吓散——鱼群、鲨鱼、饲料三者会形成一轮轮动态。

限制:系统开启「减少动态效果」时动画与互动一起关闭;同一时刻水中最多 72 颗饲料,满了就先吃旧的。

安装到 DSH

本包是本地 bundle(private: true,不发布 npm):

plugin_manager action: install_bundle target: <仓库绝对路径>

安装后可在「插件」页看到「ASCII 鲨鱼壁纸 / ASCII Sharks Wallpaper」。客户端模块通常由 HMR 直接生效;lib/client.js 改动后刷新页面(Ctrl/⌘ + R)即可。Host 半边现在是空入口,不再需要为 token 统计重载插件。

可调参数(设置 → 通用)

插件在「设置 → 通用」里增加一行 ASCII 鲨鱼壁纸,三个控件即时生效并持久化到 localStorage(键 dsh-ascii-sharks-wallpaper/settings/v1):

| 控件 | 范围 | 默认 | 作用 |
| 磨砂 Frost | 0–24 px | 6 px | 对话模式的背景 backdrop-filter 模糊半径;0 为清晰海面(首页始终为 0) |
| 浓度 Density | 0–100 % | 55 % | 对话模式薄纱不透明度曲线:越高越朦胧、文字越清晰 |
| 启用 Enabled | 开 / 关 | 开 | 关闭后暂停动画并移出绘制,不占 CPU |

默认值在 lib/client.js 的 DEFAULTS 中;薄纱对浅色 / 深色主题分别按 scrimAlpha() 曲线换算(浅色 0.55–0.95,深色 0.20–0.80)。

全窗口 backdrop-filter 需要 GPU 逐帧重算;低配机器可把「磨砂」调到 0–2,或关闭插件。

养成系统(M1)

超长喂养周期见 docs/growth-cycle-design.md;M1 已落地「token 钱包 + 成长 + 存档」主循环:

token 钱包

- 客户端注册一个隐藏的会话组件(conversation.input.dock),读取 DSH 的 tokenUsage 会话投影(uncachedInputTokens + outputTokens + cacheReadTokens + cacheWriteTokens)。
- 每个 Session 保存一条水位:首次看到该会话只记录基线、不追发历史;之后只把增量计入 earnedTokens。关闭再打开同一会话、多窗口重复上报都幂等。
- 新安装赠送 2,000,000 tokens 启动资金(只够两次投喂),方便立刻试玩。
- 余额 = earnedTokens − spentFeedTokens − spentSpeciesTokens(后者预留给 M3 商店)。

投喂与 GP

- 每次投喂扣 1M tokens,撒 10–14 颗饲料;余额不足则拒绝并提示。
- 鲨鱼吞下一颗饲料:+1 GP(个人成长);亚成体及以上的鲨鱼捕到鱼:+1 GP。
- 每日上限:每条鲨鱼 30 GP/天,其中捕鱼最多 10 GP/天;幼鲨/小鲨不能捕鱼,只能被喂。
- GP 按线性曲线映射到体型:0 → 0.18×、180 → 0.65×、600 → 1.19×、800 → 1.25×;跨过阶段时自动切换幼年/成体形态并平滑改变长度。
- 初始鱼缸:4 条经典成体(按尺寸反推 GP)+ 1 条经典幼鲨 + 1 条锤头幼鲨(共 6 条,上限 8)。

右下角水族箱面板

- 悬浮在主界面右下角(shell.overlay),不放在设置页里;可收起成一个小圆钮。
- 显示:token 余额、≈可投喂次数、每条鲨鱼的阶段/GP 进度/今日 GP。
- 面板可点击收起,状态保存在存档 ui.panelOpen。

存档

- localStorage 键 dsh-ascii-sharks-wallpaper/tank/v1,记录钱包水位、每日 GP、鲨鱼名册(id/kind/gp/origin)与面板状态;损坏或版本不符时回退到默认鱼缸。
- 换日时按本地自然日重置每条鲨鱼的今日 GP。
鱼群生态(M2)

- 鱼群吃饲料会增殖:每咬一口积 1 个成长点,达到 12 + floor(目标鱼数/60) 后目标种群 +4 条,一小群从画面边缘游入;
- 目标种群上限为窗口面积基础值的 1.6 倍(clamp 150–420 条),到顶后不再增长;
- 鲨鱼捕鱼只会让存活数暂时下降,respawn 只补到目标种群,所以捕食是食物脉冲、不会把鱼吃绝种,也不会无限刷;
- 目标种群与成长点写入存档,重启后按存档重新播种;面板显示「鱼群 · 成长点 · 今日 +N」。

幼鲨闭环(M2)

- 饲料 GP 同时给 家族积分(捕鱼不给);右下角面板显示家族积分;
- 放生幼鲨:消耗 30 家族积分、24h 冷却,从「已拥有品种」里随机游入一条幼鲨;上限 8 条鲨鱼、3 条幼鲨;幼鲨会贴边巡游,亚成体后才会自己捕鱼;
- 鱼缸里新增的鲨鱼由世界层 addShark 即时加入,面板与存档同步;
- v1 存档自动迁移到 v2(保留钱包/名册,补上鱼群、家族积分与放生冷却字段)。

品种商店 + 图鉴(M3)

- 面板新增三个 tab:鱼缸 / 商店 / 图鉴;
- 8 个品种只能花 token 购买,价格合计 20 亿(0.10 亿经典 → 10.40 亿护士鲨,刻意不等倍递增);买到的都是该品种幼鲨,必须自己喂大;
- 已购品种可重复购买(同价),鱼缸上限 8 条;购买消耗 token 余额、即时从边缘游入,并点亮图鉴(未购买显示 ????? · 仅商店);
- 右键点鲨鱼喂大块饲料:扣 1M tokens,给该鲨鱼最多 +4 GP(受每日上限约束);花费与 GP 结算原子化,当日吃饱再点不会扣钱;鱼群会被惊散。

Token 账本(纯客户端,0.13.0)

- 所有 token 统计都在浏览器里完成,Host 半边(index.js)不再承担账本、路由或投影逻辑,只有一个空的 apply() 作为稳定入口;
- 路径 A:session 级隐藏哨兵读当前会话的 tokenUsage 投影(useProjection),按 Session 水位合并增量;首次只记基线,不追发历史;
- 路径 B:订阅 ctx.get("sessions").list 的列表快照,每个会话条目都带 projectionValues.tokenUsage(含子代理);列表变化时逐会话 fold,同样按水位去重、重复 fold 幂等;A/B 共享水位,因此不会双算;
- 钱包 = 启动资金 + 本地累计;旧存档里的 earnedTokens(包含已移除的 Host 账本部分)在迁移时整体折入 localEarned,移除 Host 不会导致余额掉零;
- 为什么放弃 Host 方案:桌面渲染页 origin 是 dsh-app://app,
fetch("/_ascii-sharks/tally") 和自定义 Host 投影实测都无法稳定送达客户端;
进程账本文件、HTTP 路由与 wire projection 已全部删除,避免残留逻辑互相冲突。

M3 已知限制

- 8 种幼年形态的品种专属纹理(虎鲨条纹/斑竹斑点/护士触须等)目前共用幼年形状参数,后续再做逐品种细化。
- 客户端聚合只统计客户端能看到的 Session(当前窗口的会话列表);未打开窗口或未出现在列表里的极旧会话不重复发放,这是刻意设计。

围猎(Pack hunt)

鱼群被一条鲨鱼追是逃散,被一群鲨鱼围则是围猎。启动约 8s 后,水里至少两条饥饿的亚成体/成体鲨鱼(成长阶段 ≥2、饥饿度 ≥0.3、在鱼群 700px 内)会盯上同一片密度够高的鱼群(先按 120px 网格找最密处,再在 180px 邻域内精算质心与半径),按距离由近到远加入, 2–6 条在鱼群外围等距站位并缓慢旋转,把包围圈一点点收紧。

| 阶段 | 时长 | 表现 |
| 收拢包围 gather | 先列阵(最多约 4.5s),再收拢约 7s,末段最多等 2.5s 让成员就位 | 环半径从 startRadius 收到 strikeRadius;鱼群受惊、向心压缩成「饵球」并在环内打转 |
| 合围突袭 strike | 约 2.2s | 所有成员同时向心冲刺;被围的鱼向外炸开,被吃掉的鱼照常结算捕食 GP |
| 四散 rest | 约 2.2s | 鲨鱼各自退开、回到普通巡游,随后进入 13–21s 冷却 |

- 触发由世界层自己扫描:启动 8s 后第一次,之后每 1.4–2.6s 找一次目标,找不到就继续等; 幼鲨/小鲨(阶段 0–1)不会参加,只围观或被鱼群绕开。
- 包围圈半径:startRadius = clamp(schoolRadius + 平均鲨长0.5 + 50, max(130, 平均鲨长0.55), 短边0.32), strikeRadius = clamp(schoolRadius0.55 + 34, 52, startRadius0.6),其中 schoolRadius 是目标鱼到其质心的平均距离。
- 围猎开始后若环内活鱼少于 3 条并持续 2.5s,会中途放弃,进入较短的冷却(6–10s);列阵 / 就位没赶上的成员会被剔除,少于 2 条时同样中止。
- 水面会浮出一圈淡淡的青色 ASCII 光环标出包围圈,突袭瞬间闪一下;右下角水族箱面板多一行「围猎 · N 条 · 收拢包围 / 合围突袭 / 四散」。
- 突袭时鲨鱼的张口判定更宽(L0.11+20,平时 L0.05+8),更容易在鱼群里咬到鱼。
- 列阵 / 收拢期闭口:围猎成员在包围圈收紧期间不捕食,鱼群会完整保留到突袭;只有突袭冲刺阶段才张口吞鱼。
- 一口可吞多条鱼:鱼挤在嘴边时,一次咬合最多吞下 3 条(巡航捕食);围猎突袭的冲刺张口更宽(×1.3 判定半径),一次最多吞下 6 条,并在水里炸开一团亮光。
每吞一条仍各自结算一次捕食 GP 与击杀计数,每日 GP 上限规则不变。
- 围着的时候,饥饿的成员对漂浮饲料的注意力降到 0.2 倍,吃饲料明显变少;其余投喂与抢食行为不变。
- 不新增 GP 类型:每条被吃掉的鱼仍是一次普通捕食(+1 GP,受每日捕鱼 GP 上限约束);鱼群增殖、补员与目标种群上限全部不变,围猎只制造短期的「食物脉冲」,不会把鱼群吃绝。
- 围猎状态是瞬时的,不写入存档;可调参数集中在 tools/patch-world.mjs 的 HUNT_ 常量块(扫描 / 冷却、参与门槛、双环半径、列阵与各阶段时长),改完重新 npm run build 生效。

渲染调参记录

- 字符网格已加密到约 300 列(原 ~124 列,格宽 4–8px 自适应窗口),小体型生物跨度约为原来的 2.4 倍;成长阶段体型系数整体 ×1.25,且所有鲨鱼再乘全局渲染倍率 SHARK_SCALE = 1.15。
- 300 列下:网格线 0.75px 发丝线、透明度随密度快速下降(0.055 × (cw/13)^1.5);字符字重 700、字号 0.9×格高且不低于 6px;躯干暗部字符基数 52,避免细线发灰。
- 鲨鱼体色统一为单主色(去掉随机强调色、白色高光与灰眼睛),所有字符都是该品种 tint 的明暗层次,幼年整体提亮。
- 整体运动速度 MOTION_SCALE = 0.68,鲨鱼与 5 种鱼群同比缩放;舒适化处理移除了皮肤 6Hz 闪烁与水光呼吸/波光脉动。

来源与许可

- 引擎与画面来自 stackedlol/ascii-sharks,以 vendor/ascii-sharks/src/ 形式随仓库提供;上游仓库未附带 LICENSE 文件,因此本仓库默认 UNLICENSED / 仅本地私有使用,公开分发前请先解决授权问题(见 NOTICE.md)。
- 插件外壳、客户端 token 聚合、构建与测试脚本、文档为本仓库原创。
- 构建:npm run build(Node 内置 stripTypeScriptTypes,无第三方打包器)。
预览分享卡片长什么样 ↓MouQianDi0/dsh-ascii-sharks-wallpaper
分享 · DeepSeek Harness Hub
MouQianDi0/dsh-ascii-sharks-wallpaper

把动态鲨鱼鱼群海底世界铺成整窗壁纸

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部