积木工坊 · dsh-lego-forge

积木工坊 · dsh-lego-forge

2026-11-12 13:58:23 0点赞 0收藏 0评论

DeepSeek Harness(dsh)插件:把一句话想法变成一套真实可拼的 LEGO 积木模型。agent 写 build.mjs 烘焙出模型(450+ 种真零件、可拼搭性硬检查、逐销验证连接),产出 set.html 3D、model.ldr、parts.csv 与交付 ZIP;你在面板的 3D 里框选一块区域附言批注,agent 下一轮优先处理,改完销账。引擎、零件几何与构建方法论源自 lego-forge(MIT),LDraw 零件几何 © LDraw.org (CC BY 2.0)。

效果示例:日式庭院 / 树屋 / F1 赛车 / 街角面包店效果示例:日式庭院 / 树屋 / F1 赛车 / 街角面包店

效果示例:日式庭院 / 树屋 / F1 赛车 / 街角面包店

积木工坊 · dsh-lego-forge

装上以后有什么

能力说明lego_forge 工具(13 个 action)new 新建集合 · build 构建并硬检查 · shots 渲染审查图 · review 提交评分 · stage 推进管线 · annotations 拉取/销账批注 · read 读产物 · list 列集合 · example 拷官方示例 · docs 技法/色表/零件/基准 · parts 搜零件 · part 查零件销位 · export 打包交付 ZIP侧栏「积木工坊」面板六个标签:3D 模型(版本切换、体素对照、框选批注)、时间线(journal + 版本对比)、审查图、报告、BOM、批注;头部一键「⬇ 导出 ZIP」框选批注闭环3D 里点选/框选/区块秒选 + 附言 → annotations.json 队列 + 系统提示词注入,agent 在后续请求里优先看到并处理,处理完 annotations 销账。框选是大致位置和方向,以 sections 标签和零件构成推断意图版本与交付每次 build PASS 存版本快照(默认保留 12 份);Deliver 时把 out/ 交付物打包成 ZIP(毫秒级 STORE,无压缩)

使用

对话里直接说:

  • 「做一个街角面包店的乐高模型」——agent 走 Brief → Blockout → Detail → Check → Review → Deliver 六步管线,最后给你 ZIP

  • 「白金汉宫的柱廊再精致一点」——你在面板 3D 里框选后直接说,批注自动进入队列

  • 「这个零件 3039 是什么?有没有弧面砖?」——查零件库

  • 「列出我的积木集合」「把上次的卡车导出 ZIP」

或打开侧栏「积木工坊」:看 3D、拖时间线对比版本、在模型上框一块区域写附言、下载交付 ZIP。

审查图(可选 Playwright)

shots 用 Playwright 起 headless Chromium 截六视图 / 主视图 / 参考图对比。Playwright 是可选依赖,未安装或 GPU 探针失败时不会报错中断:面板「审查图」标签提供「用面板渲染出图」按钮,直接由面板里的 3D 视图截图回传存盘,干净机器不装 Chromium 也能出图。装浏览器:npx playwright install chromium。

数据

全部在本机 $DSH_HOME/lego-forge/<集合名>/(默认 ~/.dsh/lego-forge/),不污染用户工作目录:

文件内容brief.md + build.mjs设计简报与构建脚本(agent 写)out/set.html 3D、model.ldr、parts.csv、report.txt、check.json、渲染图、export/*.zipversions/每次 PASS 的版本快照(默认保留 12 份)annotations.json面板批注队列(pending → resolved)journal.jsonl过程时间线(面板时间线数据源)project.json元数据:阶段/评分/最近构建

可在 cordis.patch.yml 配置:

配置项默认说明setsRoot空(= $DSH_HOME/lego-forge)集合存放根目录keepVersions12时间线保留的版本数autoRenderfalsebuild 通过后自动快速渲染(需要 Playwright)

安装

要求 Node 22.19+ 或 24+,DSH >=0.2.1-rc.2 <0.3.0。

# 从本仓库直装(安装时会跑 prepare 钩子自动构建 dist/client.js) dsh plugin --profile web add github:liangdabiao/dsh-lego-forge # 本地开发调试 dsh plugin --profile web add link:$PWD

自检

npm install && npm test

  • npm test:29 个单测(批注队列/导出 ZIP 结构/宿主 apply 与提示词注入/路径安全/连接性检查/viewer 嵌入桥),零网络依赖

  • npm run build:client.js → dist/client.js(ModuleLoader 包装,id = 包名,产物三自检:require 白名单 / 无动态 import / 单文件)

  • npm run build:viewer:viewer/src → viewer/dist(three 内联)。改了 viewer 源码必须重跑,并重新 build 集合——已导出的 set.html 内嵌的是构建时刻的 viewer

常见问题

面板打开是空的? 新建集合还没 build 时没有版本快照可看,在对话里说「build 一下 <集合名>」即可。这是脚手架阶段的正常状态,不是错误。

shots 出不了图? 运行 npx playwright install chromium 后重试;或用面板审查图标签的「用面板渲染出图」,无需 Chromium。

build 报「not connected」? 检查器按销逐个验证连接:悬挑零件必须有下方销,或骑跨在受撑行上(比如窗台技法:一块板两行深,一行落在墙上)。看 out/report.txt 的错误清单修因不修症。

改了面板/工具没生效? dist/client.js 是构建产物,改完源码要 npm run build(npm install 时 prepare 钩子会自动跑)。

开发

git clone https://github.com/liangdabiao/dsh-lego-forge.git cd dsh-lego-forge && npm install npm test dsh plugin --profile web add link:$PWD # 本地调试

目录说明lib/Host 半边:runner.js(build/shots/annotations)、exporter.js(ZIP)、api.js(面板接口)、project.js(集合持久化与路径安全)engine/上游 lego-forge 引擎逐字节搬运(Model/kit/checker/零件几何),除 viewer 嵌入桥外不改上游逻辑viewer/面板与 set.html 共用的 3D 视图(src/ 源码;dist/ 是运行时产物,随仓库提交)client.js → dist/浏览器半边源码与 esbuild 产物(dist/ 不入库,npm install 时 prepare 自动构建)docs/技法(TECHNIQUES)/色表(COLORS)/零件表(PARTS)/评分标准(RUBRIC)/官方基准(REFERENCE)examples/cottage、retro-computer 两个官方示例(含现成渲染,可当范本读)test/node:test 单测,零 dsh 依赖

License

MIT。engine/、docs/ 与构建方法论源自 lego-forge(MIT);LDraw 零件几何 © LDraw.org (CC BY 2.0)。

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
京东京享红包
距结束::
领京东现金红包 天天领3次 最高26888元
红包按钮
最新文章 热门文章
0
扫一下,分享更方便,购买更轻松