Skip to content

Releases: Alice-Marx/dsh-mv-cli

0.9.5 — 大肥鱼 PV 完整非音乐素材

Choose a tag to compare

@Alice-Marx Alice-Marx released this 06 Oct 16:46

0.9.5 — 大肥鱼 PV 完整非音乐素材包

插件新增有界栅格时间轴、分图页播放和 OFL 字体加载;工坊作品 world-execute-me-dsh-pv 升级为 1.1.0,要求插件 0.9.5 或以上。

  • 51 个文件,包含 98 条歌词、1658 帧画面时间轴、14 页图集,以及 Space Mono Bold / Anton Regular 字体和完整许可。
  • 依据用户授权的 DeepSeek 参考立绘,AI 辅助重制 8 个舞蹈姿态;同步更新相应点云、热力图等画面。不是上游未公开的原片 MMD 舞者。
  • 音乐仍由用户自行提供。Windows 字体文件不再分发;Consolas / 微软雅黑等使用本机合法安装字体和已合成的整幅画面。
  • 强化图像解码预算、字体内部身份校验、取消/切包资源释放及暂停/倒退定位的确定性。
  • 219 项测试通过,1 项可选参考源测试跳过;真实 Chrome 验证完整包 13 个场景、舞蹈运动、倒退定位、硬黑切及原有 Three / Wallpaper / Polytech 包。无页面错误或外网资源请求。

更新插件后请完全重启 DeepSeek Harness,再从创意工坊更新“大肥鱼”作品到 1.1.0。

许可边界

插件代码 MIT。工坊代码/时间数据、OFL 字体、Mili 歌词、新制角色图各自遵守包内的 LICENSE/NOTICE,不能把整包一概视为 MIT。角色改编图按 CC BY-NC-SA 4.0 和非商业同人用途发布,保留原角色署名及 AI 辅助制作说明。

下载

  • npm:@ljwei-stak/dsh-mv-cli@0.9.5
  • 本 Release 附带插件 npm 安装包和 world-execute-me-dsh-pv 1.1.0 完整非音乐 ZIP;工坊索引更新后也可在插件内安装。

完整 ZIP SHA-256:ca1e541692889624bc84ccd992535d7e0374f9dcbbf636c54e0839443ea91521。

0.9.4 — 完整非音乐工坊包

Choose a tag to compare

@Alice-Marx Alice-Marx released this 06 Oct 11:08

0.9.4 — Complete workshop packs / 完整工坊包

只需自行提供音乐。明确授权的歌词、译文、逐句/逐词时间轴、频谱与画面资源可随工坊安装并自动加载;保留资源署名,歌词条款独立于代码许可。

  • Original Three.js MV 1.1.0:75条双语字幕、原始12个场景、镜头、泛光与程序纹理。
  • Wallpaper MV 1.1.0:92条双语字幕及原场景资源。
  • Polytech Tree 1.2.0:3862项完整原始条目、中文描述和逐项来源署名;原作无歌曲或歌词轨,可静音播放。
  • 静态 lyrics.js 安全转JSON,不执行文件代码;旧歌词缓存不覆盖新版自带轨,主动选择的替代轨仅在同包版本恢复。
  • 音乐录音不上传。Mili同人包仅用于遵循官方条款的非商业同人MV;并非将歌词改为MIT。

先将插件升级到 0.9.4 并完整重启 Harness,再在创意工坊更新上述三个包。打开后只需选择自己的音乐,不再需要另下载歌词文件。

验证:175项测试通过、1项可选跳过、0失败;6个工坊包校验通过;真实Chrome验证安装、自动加载、重开、旧缓存优先级及非空GPU画面,无外网请求或播放器错误。

Only music recordings remain user-provided. Declared, independently licensed captions, timing, spectrum and visual resources install together. The npm plugin contains software only, not song lyrics. Update the plugin, restart Harness, then update the three workshop packs. See each pack's NOTICE and LYRICS-NOTICE for its separate terms.

v0.9.3 — lyrics.js / bilingual Three.js subtitles

Choose a tag to compare

@Alice-Marx Alice-Marx released this 05 Oct 17:04

lyrics.js compatibility and visible Three.js subtitles

  • Select the original local wiers-jack src/lyrics.js directly. A copy renamed .json also works. The plugin safely reads only the static LYRICS array, maps absolute-second t and Chinese cn, and never executes imports/functions or overlay code.
  • Preserve the original subtitle expiry (80 ms before the next cue, at most 6.5 seconds). Calibration and automatic alignment use the same parsed cues; the AI lyric file picker converts timed data to LRC.
  • Optional canvas.subtitles: true displays local bilingual cues over bitmap scenes with letterboxing and subtitle offset. Default off avoids duplicate subtitles on existing packs.
  • Update Original Three.js MV to workshop pack 1.0.2 (requires plugin 0.9.3), which enables this subtitle layer. No audio or lyric text is bundled or uploaded.

Checks: 149 passing Node tests, 1 optional upstream parity test skipped; all 6 workshop packs validate. Actual local upstream lyrics parse as 75 bilingual cues. Real Chromium/SwiftShader verified the original Three.js scene with synthetic bilingual subtitles, offset, expiry and resize; no external requests.

Install @ljwei-stak/dsh-mv-cli@0.9.3, fully exit Harness including its tray icon, and reopen. In the workshop update the Three.js pack, then Lyrics -> Choose -> select your local lyrics.js source file (not a saved Gitee HTML page).

v0.9.2 — WebGL2 / Three.js 3D MV

Choose a tag to compare

@Alice-Marx Alice-Marx released this 05 Oct 16:08

Real WebGL2 / Three.js 3D MV support

  • Worker-owned WebGL2 rendering with audio-clock synchronization, bitmap letterboxing and deterministic seeking.
  • Restricted sandbox retained: no network, DOM, storage, timers, nested workers or WASM. Context-loss/error fallback and bitmap/Worker cleanup.
  • WebGL scripts up to 2 MiB; offline bundled Three.js uses the provided canvas/context.
  • Workshop: Polytech Tree 1.1.0 is now GPU-instanced 3D; world.execute(me) Original Three.js MV 1.0.1 preserves all 12 original scenes and bloom. Both require plugin 0.9.2.
  • Three.js MV published under MIT with direct author permission confirmed by the maintainer; full source attribution and license notices retained. No audio or lyric file is included.

Validation: 134 passing Node tests, 1 optional upstream-parity test skipped; 6 workshop packs pass. Real Chromium/SwiftShader verified 23 scene positions, repeated seeking, resize, 2D compatibility, context loss and isolation/cleanup. Software WebGL validation does not measure hardware performance.

Install @ljwei-stak/dsh-mv-cli@0.9.2 from npm, or use the attached tgz after checking its SHA256. Fully exit Harness (including its tray icon) and reopen after upgrading, then install/update the packs in the workshop and select your own audio and lyrics.

0.9.1 — pixel scenes, install location, two new workshop packs

Choose a tag to compare

@Alice-Marx Alice-Marx released this 04 Oct 11:36

0.9.1 — 2026-10-04

  • 工坊安装位置可以更改 / choose where workshop packs are installed: the 创意工坊 page now shows the install folder with 打开文件夹, 更改… and 恢复默认. Type any full path, including other drives (F:\MV\workshop, D:\dsh-mv) or a UNC share; the Host normalises it (forward slashes, quotes and a bare F: are fine), refuses relative paths, .., reserved names (CON, NUL…) and invalid characters, creates the folder and writes a test file before switching, with a readable reason when it cannot (no such drive, no write permission, read-only disk, a file in the way). After a change you choose 移动到新位置 (each pack is copied, every file checked against the sha256 recorded at install, then the old copy is deleted; progress per pack, failures listed and their originals kept) or 留在原处 (old packs stay in the library and keep working; the page offers to move them later). Library entries and the open pack follow moved packs. The choice is stored by the Host in %LOCALAPPDATA%\dsh-mv\settings.json (not in the browser), so it survives panel reloads, skins and devices sharing the Host; the new plugin config field workshopDir sets the default folder (the panel setting wins). New Host calls workshopDirInfo, workshopDirSet, workshopDirMove, workshopDirOpen (31 in total); 打开文件夹 runs explorer.exe <folder> without a shell.
    创意工坊页底部新增「安装位置」:显示当前文件夹,可打开、更改(支持其他磁盘如 F:\,先检查能否写入)或恢复默认;更改后可选择把已安装的包移动过去(复制并校验 sha256 后再删除旧文件,显示进度和失败原因)或留在原处(曲库照常能找到)。设置保存在插件后台的 %LOCALAPPDATA%\dsh-mv\settings.json,插件配置里也可用 workshopDir 设定默认位置。
  • Pixel scene scripts / 像素场景脚本 (canvas.output: "pixels", canvas.size: [w, h], 160×90 – 1920×1080, default 1280×720): a script may define paint(g, t, w, h, ctx) and draw on a 2D OffscreenCanvas inside the same sandboxed Web Worker (no network, DOM, storage, fonts or WebGL — getContext gives only '2d'); frames are sent back as ImageBitmaps and letterboxed on the stage. Budget 100 ms per frame. The agent tool mv_pack_preview_frame and the workshop CI check pixel scenes against a recording stand-in canvas (an empty frame is reported).
  • Scene assets / 场景资源: script scenes now receive canvas.assets in setup(info) as info.assets (JSON parsed, shards merged; PNG / WebP as ImageBitmap).
  • requires: packs that need a newer plugin carry x-dsh-mv-workshop.requires (pixel scenes and asset-reading scripts → 0.9.1, computed automatically), also in index.json; the workshop shows 需要插件 vX+ and disables install / update on older clients.
  • Two new workshop packs / 两个新的工坊包 (ported from MIT-licensed projects, both need 0.9.1, no audio and no lyric text):
    • world-execute-me-wallpaper — the world.execute(me) wallpaper MV by seasnakes/world.execute-me-wallpaper (MIT), its canvas scenes running as a pixel scene at 1920×1080, synced by the original BPM grid and sections; the lyric card shows your lyrics. Bring your own copy of Mili's song.
    • polytech-tree — the tour of secwind7/polytech-tree (code MIT, data CC BY 4.0; only the structured fields are used, not the CC BY-SA descriptions): 3862 technologies in 11 eras, revealed year by year as the camera rises. Not a song — play silently or with any music.
  • Tests: pixel worker and host checks, canvas.output / size validation, requires / too-old detection, scene asset merging, both ports build and pass the workshop rules and the sandbox, install-folder validation (drive letters, UNC, errors), change / keep / move / reset / uninstall across folders, settings persistence and library relocation.

0.9.0 — presets move to the workshop

Choose a tag to compare

@Alice-Marx Alice-Marx released this 04 Oct 10:40

0.9.0 — 2026-10-04

Breaking: the plugin no longer bundles any MV. 插件不再内置任何 MV。

  • Presets moved to 创意工坊 / 预设移到创意工坊: the two built-in world.execute(me) presets are now workshop packs in Alice-Marx/dsh-mv-workshop, each under its own licence and each linking its original work:
    • world-execute-me — the ASCII scenes, original yym8224961/world.execute-me-ascii (used with the author's permission, not open source). The port now runs as a sandboxed scene script (renderer: "script", scenes.js bundled by presets/build-workshop-packs.mjs; frames identical to the former built-in), with the 5 chapters as sections (keys 1–5).
    • world-execute-me-dsh-pv — the dsh PV, original MisakaZentai/world-execute-me-dsh-pv: recorded data (MIT, sharded into ≤ 512 KB files) and whale-girl art (CC BY-NC-SA 4.0) → pack licence CC-BY-NC-SA-4.0. The dsh-pv renderer itself (MIT) stays in the plugin.
      Neither pack contains audio or lyric text; both ask you to bring your own audio (lyrics optional).
      以前内置的 world.execute(me) ASCII 场景和 dsh PV 改为创意工坊包,各自标明原作仓库和许可,都不含音频和歌词。
  • Empty library → 创意工坊: with no packs the library shows an 打开创意工坊 call-to-action and one-click 一键安装 for both packs (download, sha256 check, open). The workshop shows each pack's original-work link (原作, from the new x-dsh-mv-workshop.source field, also in index.json) on the card and in the details, in all skins; the About popover links both originals.
    曲库为空时显示「打开创意工坊」和两个包的一键安装;工坊卡片和详情里显示「原作」链接。
  • Migration from 0.8.x / 迁移: if a former preset (builtin:world-execute-me, builtin:dsh-pv) was selected, the panel shows "已移到创意工坊" with an install button; once installed, the audio, lyrics and spectrum you picked for the built-in preset are reused automatically. Other packs and settings are unchanged.
    如果之前选的是内置预设,面板提示它已移到创意工坊并给出安装按钮;安装后自动沿用之前选过的音频和歌词。
  • MV packs: canvas.assets — renderer data files declared in mv.json (name → relative .json / .webp / .png path, or a list of JSON shards merged in order; up to 32 assets, 16 parts, 8 MB each), read through packRead with the new role asset (only files the manifest names). Used by renderer: "dsh-pv". The renderer: "world-execute-me" value still parses but is no longer built in: such packs fall back to the generic renderer with a warning, and the workshop rejects it.
  • Workshop limits: a pack may now be up to 8 MB (was 4 MB; single files stay ≤ 512 KB). Clients older than 0.9.0 cannot install the dsh PV pack (too large for them) — they still have the built-in preset.
  • Licence / 许可: the npm package is now MIT only (was (MIT AND CC-BY-NC-SA-4.0)): no artwork, no recorded PV data and no ported world.execute-me-ascii code are in it. Those sources live in the repository under presets/ (excluded from the MIT licence, see LICENSE and NOTICE.md) and are published only through the workshop packs.
    npm 包现在是纯 MIT:不含立绘、PV 数据和 world.execute-me-ascii 的移植代码。
  • Removed: the dshpvAsset Host call (27 Host calls now), .dsh-plugin/assets/, the built-in Film / Canvas port and the template's preset examples (examples/world-execute-me.mv.json, examples/dsh-pv.mv.json). The generic and script renderers draw on a new MIT grid (client/mv/grid.mjs); the generic ready screen uses a letter-spaced title. client.js 625 KB.
  • Tests: the bundled scenes.js passes the workshop safety checks and the host sandbox and draws exactly what the original Film draws; canvas.assets parsing and packRead asset reads through the gateway (sharded, chunked); JSON sharding round-trips the dsh PV data; the build output passes workshop validation with the source links; preset migration helpers; the npm files list contains no assets.

v0.8.3 — 曲库可收起 / collapsible library

Choose a tag to compare

@Alice-Marx Alice-Marx released this 04 Oct 06:19
  • 曲库可收起 / collapsible library: a chevron on the 曲库 header collapses the library to the header, the song count and the current song's row (playing indicator, play / pause, remove), in list and grid view and in every skin. The state is stored locally (dsh-mv.library.collapsed.v1); the sidebar / tab 曲库 entry expands it again.
    曲库标题左侧新增折叠箭头:收起后只显示标题、数量和正在播放的那一首;状态保存在本机,三套外观、列表和网格都适用。

Install: npm i -g @ljwei-stak/dsh-mv-cli@0.8.3 · sha256 of the tgz is attached.

v0.8.2 — 曲库列表视图 / library list view

Choose a tag to compare

@Alice-Marx Alice-Marx released this 04 Oct 06:12
  • 曲库列表视图 / library list view (new default): compact rows with a small cover, title, artist, type badge (内置预设 / 画布预设 / MV 包 / 创意工坊), duration when known, a playing indicator, and row actions (play / pause the current song, switch to another, remove from the library). The 创意工坊 / 用 AI 制作新 MV / 导入 / 新建(模板) tiles become a compact toolbar. A 列表 / 网格 toggle next to the 曲库 header switches back to cover cards; the choice is stored locally (dsh-mv.library.view.v1). Styled per skin: Harness cards, a music-app track list (A), an ls -l-style monospace table (B); works in light / dark and with see-through wallpaper themes, and collapses columns in narrow panes. The library now keeps up to 50 packs (was 8); pack durations are remembered for the list.
    曲库默认改为紧凑列表(小封面、标题、歌手、类型、时长、正在播放标记、行内播放和移除),工坊 / AI / 导入 / 模板变成一排小按钮;「列表 / 网格」可切换并保存在本机。曲库最多保留 50 首。

Install: npm i -g @ljwei-stak/dsh-mv-cli@0.8.2 · sha256 of the tgz is attached.

v0.8.1 — panel scroll fix

Choose a tag to compare

@Alice-Marx Alice-Marx released this 03 Oct 18:59
  • Fix: the panel could not scroll in Harness (content below the MV canvas unreachable, and the header with the 外观 button could disappear). Harness hosts plugin panels in a centre column that is display:flex; flex-direction:column; overflow:hidden; the panel root grew to the column height with its content overflowing, so the wheel did nothing, and focus() / scrollIntoView() (stage focus, calibration line follow) scrolled the hidden column instead, pushing the header out of view with no way back. The panel root is now its own scroll container (flex: 1 1 auto; min-height: 0; height: 100%; overflow-y: auto), is pinned to the clipping ancestor if a host wraps it in an unsized block, and resets programmatic scrolls of that ancestor. Sticky sidebar / player bar / tmux bar / status line now stick inside the panel in all skins. Wheel over the MV canvas scrolls the panel.
    修复:在 Harness 里面板无法滚动、画面下方内容够不到、顶部「外观」按钮消失。面板现在自己滚动,三套外观都适用。
  • Preview: ?host=1|wrap|art mirrors the Harness frame; tools/ui-preview/scroll-check.mjs checks wheel / bottom / back-to-top in every skin.

Install: npm i -g @ljwei-stak/dsh-mv-cli@0.8.1 · sha256 of the tgz is attached.

v0.8.0 — 外观 / panel skins

Choose a tag to compare

@Alice-Marx Alice-Marx released this 03 Oct 18:29
  • Skins / 外观: three user-selectable panel skins, picked from 外观 in the panel header (top right, next to ⓘ) and stored locally (dsh-mv.skin.v1). Each skin changes structure as well as style; every feature works the same in all three, and switching skins never interrupts playback.
    • Harness 原生 (default): Fluent cards with soft shadows, blue accent, workshop details drawer; follows the Harness light/dark theme and its design tokens.
    • 现代音乐应用: left sidebar navigation (曲库 / 正在播放 / 创意工坊 / AI 制作 / 歌词校准) with a recent list, cover grid library, blurred-cover now-playing hero, and a page-wide bottom player bar (cover thumb, title, −5 s / play / +5 s, progress, fullscreen). Dark by default; collapses to an icon rail in narrow panes.
    • 终端 / 黑客: tmux-style window list on top and a status line at the bottom (play state, title, ASCII progress, time, clock), monospace, neon green + amber, CRT scanlines over the UI (never over the MV canvas). Dark by default; light = paper terminal.
      Each skin remembers its own mode (跟随 Harness / 系统 · 浅色 · 深色).
  • Fixes: workshop file list no longer overflows (path ellipsis, size and sha256 columns stay readable); the terminal skin keeps the calibration view compact; the calibration waveform redraws immediately when the skin or theme changes.
  • 新增三套可切换外观:Harness 原生(默认,跟随 Harness 明暗)、现代音乐应用(侧边栏导航、封面网格、模糊封面、底部播放条)和终端(tmux 标签栏和状态栏、CRT 扫描线不再盖住画面)。在面板右上角「外观」里选择,各自记住浅色或深色,只保存在本机;切换外观不会打断播放。

Install: npm i -g @ljwei-stak/dsh-mv-cli@0.8.0 · sha256 of the tgz is attached.