这条在讲 GitHub 上的 ldraw-nova,作者 anteloc,把生成式模型接到 LDraw 上,让人跟 agent 对话生成乐高模型。AGPL-3.0。我读到一半才确认不是又一个“包层 API 让模型吐 3D 文件”的玩具。
值得点的不是它现在多能打,是作者把早期失败讲清楚了。他先试过直接让 ChatGPT 和 Claude 写 LDraw 源码,不行。原文说 LDraw 是一种「简单、底层且可执行的 3D CAD 汇编式语言」——对生成式模型来说,“简单、底层”才是要命的地方:每个零件的位置、旋转、颜色都得模型自己算对。模型不擅长这个。
后来他改让模型生成 Python,用代码去算几何、再生成 LDraw。原文结论是:智能体更擅长生成用来算几何的 Python,而不是自己做完几何数学。这句话值回 star。他还有个更反直觉的判断——智能体从能生成模型的 Python 代码里学,比直接从模型本身学效果更好。训练素材该是“代码”,不是“代码产出的模型”。
这跟我折腾 agent 的经验对得上。我让模型直接改 SQL、改配置,错得千奇百怪;换思路让它写段 Python 去生成 SQL、校验配置,反而稳。我猜原因是代码里能塞校验逻辑和显式约束,declarative 输出没有“执行—检查”这个回路。作者在 LDraw 上踩中的是同一件事。
仓库里还有一个细节:产物不只是 LDraw 源码。它同时输出 3D 查看器、3D 播放器、Meta Quest 3 的 VR 交互视图,还有图片和能在 Blender 里编辑的 glTF。元信息写到 Blender 自定义属性里。作者不是让模型吐个文件就结束,他是想把“生成—查看—调整—输出”这条环闭起来。
我最好奇的是 jve-rerank,作者自己写的语义搜索和重排工具,零件和示例模型的检索靠它。重排能力由 TypeSafe 的 Jev System One 提供,要在 Web 应用设置里配了 TYPESAFE_API_KEY 才启用,没配就回退到全文搜索。作者原话是这「可能产生较差的模型结果」。
这是整仓最尴尬也最诚实的地方:他有自己的语义搜索方案,但不是开箱即用,得去拿一个外部 API key。不配也能跑,只是结果差一点。他写出来了,没藏。
我顺手跑了一下,没跑通。Docker 镜像第一次构建到一半报网络错误,不确定是我的环境还是镜像源;后面再 docker compose up -d,应用起不来。错误先留着,等我搞明白再补:
Error response from daemon: failed to build: fetching "python:3.x" from docker.io: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection
卡在这,VR 部分我没法自己验证。不过从 README 和目录结构能先记下几点:VR 只走 https://localhost:8443 的自签名证书,普通 HTTP 的 8765 端口只能跑 2D 相关。所以局域网里另一台设备用 IP 访问,VR 就没了——普通 Web 查看器还在。这个限制不点链接也能带走:给 VR 场景架 agent 工具链,HTTPS 不是锦上添花,是硬要求。
应用没有登录机制,作者写得很直接:只适合在可信网络里跑。我本来想给它找补个认证方案,后来想想,一个才 34 次提交的项目,先把流程跑通比什么都重要。现在塞认证层进去,反而看不清核心链路。
他早期的尝试还有 ldbuilder-ai、py2bricks、py4bricks,思路是一路延续下来的。README 里说 GPT-6 Astra 和 Claude Opus 5.5 出现之后,这套基于 Python 的工具链才顺起来。这等于承认整个方案是“等模型够强了才成立”,不是他一个人把路趟出来的——但前期试错是他自己的,这两件事不矛盾。
还有个加分项,是写给 agent 的资料架构。工具链提供零件查找、示例模型参考、碰撞与间隙检测、无头渲染这些能力。agent 收到提示后先读 instructions.md 和相关文档,生成 plan.json,再写 generate.py,脚本执行后输出 .mpd 文件。“计划 → 生成器 → 模型”这条链路写得清楚,不是喂个 prompt 就黑箱出结果。工具里带“碰撞与间隙检测”这种检查能力,说明作者知道要给模型一个能回头检查的接口——这比光让它生成可靠。
没跑通还是大问题。我只读了文档,没摸到它真正的产物。后面如果能看到一个用这套工具链生成的乐高模型源码,或者有人把容器跑起来录一段 VR 交互,我再补一半背书。现在这条只能推到“文档和思路清楚,可执行性待验证”。
不点链接也能带走的一句:想做生成式 CAD,别让模型直接写 CAD 源文件,让它写 Python 去算几何。这条对 LDraw 成立,对 OpenSCAD、SVG,甚至 SQL 都可能成立。
这条先留我夹子里,等 Docker 镜像构建通再说。😅
