dsh-inju-boot:給 DeepSeek Harness 加一支 WebGL2 啓動動畫

前言

DeepSeek Harness(DSH)的 Web 界面加載完成後,通常直接進入工作區。若你希望每次啓動有一段固定的視覺開場——而不是自己改前端或塞靜態圖——需要一種掛在 Harness 擴展點上的做法:覆蓋層播完再淡出,參數能在設置裏改,且不必動宿主核心代碼。

下面介紹社區插件 dsh-inju-boot(INJU 啓動動畫,維護者 inju0524)。它在 DSH 分類裏屬於「趣味換裝」:每次啓動全屏播放一支 WebGL2 實時粒子動畫(花 → 月球 → 虛影文字 → 實體 LOGO),可選極客 HUD / 終端層與程序化音效,播完自動把界面交還給你。

這是什麼

dsh-inju-boot 是一個 DSH bundle 插件(dsh.id 爲 dsh-inju-boot,package 版本 1.0.0),主要做兩件事:

能力 掛載點
啓動覆蓋層 shell.overlay,頁面加載後全屏播放,到設定位置後淡出
設置頁 settings.section,與宿主其它設置頁並排,動畫參數在此調整

動畫本體是零 npm 運行時依賴的單文件 WebGL2 作品:默認約 6 萬顆自發光粒子、10 個階段(完整循環約 21.05 秒,README 示例 GIF 標註 6.3 秒爲 10 段硬切預覽節奏),程序化 3D 雛菊、粒子月球、虛影文字與實體 LOGO,並有一層畫在畫布內的極客 HUD(數字雨、目標框、掃描線、點雲小圖、終端日誌、遙測、hex dump 等)。另有一層 DeepSeek Harness 產品身份裝飾:如 DEEPSEEK HARNESS 銘牌、root@deepseek-harness:~# dsh --profile desktop、遙測裏的 MODEL / RUNTIME 與 DSH 啓動序列式終端日誌。

插件還註冊本地 HTTP 路由(/api/inju-boot/*),用於提供動畫頁、合成配置等;權限說明見 package 中的 dsh.permissions 字段。

動畫在播什麼

README 用表格列出了 10 個階段及默認時間軸(數值來自動畫目錄的 inju.config.js)。節選如下,便於對照設置裏的「結束階段」與「時長倍率」:

階段 時間(約) 畫面要點
匯聚 0 – 3.2s 星塵聚成參數化 3D 雛菊
花體 · 環繞巡遊 3.2 – 5.8s 相機環繞花體
崩解 5.8 – 7.3s 粒子向外爆散
重聚 7.3 – 9.3s 聚合成 3D 粒子月球
月球 · 靜默自轉 9.3 – 11.7s 月面光照旋轉
顯影 → 虛影 · 閃爍漂移 11.7 – 15.7s 月球變爲虛影文字並漂移
像素偏移閃切 15.7 – 16.45s 切片錯位、RGB 分離等
實體 · 平面 LOGO 16.45 – 20.05s 硬切實體 LOGO + 掃光
循環 · 淡出 20.05 – 21.05s 淡出並可循環

各階段時長、粒子尺寸、抖動、爆散衝量、體積光等,可在設置頁或通過 inju.config.js 覆蓋調整。

核心功能(已文檔說明部分)

啓動覆蓋層與播放控制

  • 啓用啓動動畫:總開關。
  • 每次啓動只播一次:會話級去重,開發熱重載時不會反覆重播。
  • 時長倍率:等比拉伸整條時間軸。
  • 結束階段 / 淡出時長:可只播到某一階段末尾再淡出。
  • 點擊 / 按鍵中斷、右下角跳過按鈕(Esc 始終可跳過)。

畫面與 HUD

  • LOGO / 虛影文字、粒子數量(1000 ~ 400000)、尺寸 / 亮度 / 泛光 / 機距。
  • 極客 HUD / 終端層(可選,默認開啓)。
  • 模式:flower3d(程序化 3D 雛菊)或 photo(照片粒子化)。
  • Windows 桌面端:可選頂欄融入動畫、動畫期間隱藏「應用 / 編輯」菜單(README 標明僅 Windows 桌面端)。

背景音樂與瀏覽器策略

  • 背景音樂 / 音效開關;音量 0~1;首次點擊只解鎖聲音(默認開,第一次點擊/按鍵只出聲、不中斷動畫)。
  • 自動播放被攔截時可提示。

配置持久化與優先級

用戶配置落在 <DSH_HOME>/inju-boot/config.json(默認 ~/.dsh/inju-boot/config.json)。優先級爲:內置默認值 ← cordis.patch.yml 種子 ← config.json(設置頁寫入)。

高級項包括:動畫目錄(留空則自動探測)、HUD 終端檯詞(一行一條 秒 文本,{text} 替換爲 LOGO 文字)、inju.config.js 覆蓋(JSON 深度合併到動畫目錄的配置上)。

動畫資源查找順序(README):

  1. 設置頁顯式填寫的「動畫目錄」(含 inju-particles.html 的目錄)
  2. 插件上一級目錄(便於與自有動畫工程聯調)
  3. 插件自帶 assets/ 副本

Host 對 inju.config.js 做運行時合成(動畫目錄配置 + 設置頁 advanced 覆蓋 + 時間軸倍率),動畫按請求讀取,改配置後刷新頁面即可,不必重啓 Harness;新增 bundle 本身仍需重啓一次(見安裝說明)。

安裝與啓用

安裝前請自行閱讀倉庫源碼與 MIT 許可證。插件在 DSH 進程權限下運行,並請求覆蓋層、設置頁與本地 /api/inju-boot/* 路由。

方式 A:Harness 內 plugin_manager(推薦)

讓 Harness 裏的 Agent 調用 plugin_manager,target 填本倉庫在本機的絕對路徑:

plugin_manager action=install_bundle target=<這個倉庫的絕對路徑>

它會寫入 profile 的 package.json / cordis.patch.yml 並完成安裝;README 明確建議不要手改這兩個文件。

方式 B:dsh CLI

dsh --profile <你的 profile> plugin add "file:<這個倉庫的絕對路徑>"

或從 GitHub 安裝:

dsh --profile <你的 profile> plugin add "github:inju0524/dsh-inju-boot"

裝完後重啓一次 Harness(新增 bundle 需重新組裝 profile)。下次啓動即可看到動畫。

卸載示例:

plugin_manager action=remove_bundle target=dsh-inju-boot

若僅暫時不想看:在設置頁關閉「啓用啓動動畫」,或在 cordis.patch.yml 對應行加 disabled: true。

典型用法

在設置裏調參

打開 Harness 設置 → INJU 啓動動畫,按分組調整播放、跳過、畫面、背景音樂與高級覆蓋。需要改時間軸手感時,可在「inju.config.js 覆蓋」裏只寫要改的鍵,例如:

{
  "camera": { "orbitYaw": 0.6, "dist": 20 },
  "moon":   { "radius": 2.6, "craters": 110 },
  "render": { "bloom": 1.2, "exposure": 1.1 },
  "hud":    { "brand": { "title": "MY HARNESS", "subtitle": "我的啓動序列" } },
  "stages": [ { "dur": 3.2 }, { "dur": 4.0 } ]
}

stages 按下標合併,只寫需要改的階段即可。

單獨預覽某一幀(Harness 已運行)

插件將動畫掛在 /api/inju-boot/boot.html。README 示例(默認端口 19387,以你本機爲準):

http://127.0.0.1:19387/api/inju-boot/boot.html?t=4.0&hud=0&telemetry=1
http://127.0.0.1:19387/api/inju-boot/boot.html?t=10.5&hud=0&telemetry=1
http://127.0.0.1:19387/api/inju-boot/boot.html?t=17.6&hud=0&telemetry=1

查詢參數含義:t= 定格秒數;hud=0 隱藏頁面 DOM 裝飾;telemetry=1 保留極客 HUD。關背景音樂時動畫側使用 ?audio=0(與設置裏關閉背景音樂一致)。

倉庫內自檢(開發者)

package.json 中測試腳本包括:

node tools/selftest.mjs && node tools/selftest-client.mjs && node tools/check-animation.mjs

查看 HUD 繪製調用示例:

node tools/check-animation.mjs --dump

適用場景與注意

適合誰:希望在 DSH 桌面/Web 啓動時有一段統一、可配置的粒子開場,且願意接受全屏覆蓋層與可選音效的開發者;分類上屬於界面「趣味換裝」,不改變 Agent 邏輯。

需要注意:

  • 粒子數、分辨率與 HUD 開關會影響 GPU 與觀感;低配機器可在設置裏降低粒子數量或關閉 HUD。
  • 瀏覽器可能攔截自動播放音頻,插件提供了首次交互解鎖與提示項。
  • 社區目錄 SkillHub 與 GitHub 倉庫由社區維護,並非 DeepSeek / 幻方官方應用商店;安裝前請覈對倉庫與權限說明。
  • README 要求 Node >= 20;與 DSH profile 組裝方式一致,新增插件後需重啓 Harness 一次。

結尾

dsh-inju-boot 把 INJU 粒子啓動序列接到 DSH 的 shell.overlay 與設置頁上:10 階段 WebGL2 動畫、可選 HUD 與音效,參數集中在「INJU 啓動動畫」設置與 config.json。若你要給 Harness 加一支可調的啓動畫面,可按上文安裝命令接入,並在設置裏按會話需求開關或縮短播放。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜