AI 3D 重建 Skill:Monument 一砖一瓦盖建筑
一句话结论:Monument 是一个开源的 Agent Skill:你给 Claude Code 一个建筑名,它自己去查资料、按真实平面下载 OpenStreetMap 外轮廓、把建筑拆成带年代的施工阶段,用程序化几何"一砖一瓦"盖出可交互的 3D 场景——每个日期、每个尺寸都链接到来源,拿不准的部分明确标成"推断"。它把一个网上的专业工作流(历史建筑重建 + 证据纪律)装进了一份 SKILL.md,npx skills add 就能安装,全程本地运行(Three.js 查看器随 Skill 附带)。
本文编译这个 Skill 作者 @gleaming0427 的发布文《I built a Claude Code skill that reconstructs historical monuments in 3D, stone by stone》(dev.to,2026-10-15)与其官方 README / SKILL.md(GitHub,MIT),做中文整理。作者即项目作者,耗时与效果数字均为项目自报,请结合这一点阅读;能力边界("模型不是测绘")在原文里写得很清楚,本文单列一节。
一、它到底做什么:一句话,三层产出
在 Claude Code 里的用法就是一行:
/monument Leaning Tower of Pisa, Italy
在 Codex 里是 $monument …。产出分三层:
- 一个可交互 3D 场景:在本地查看器里打开
http://127.0.0.1:4173/#<id>,可以转动、缩放、拖动时间轴,看建筑从第一块砖到最后一个阶段的建造过程; - 一条带来源的时间线:每个阶段都有日期区间和一条"实际读过的页面"作为出处;
- 一份 JSON 工程文件:
monuments/<id>.json,几何、阶段、证据、不确定性都在里面,可以用脚本校验、复用、提交到社区画廊。
作者已经用它做了三个例子并全部通过严格校验:比萨斜塔(三个建造期,以及 1990 年倾斜到 5.5°、2001 年被拉回 3.97° 的加固过程)、罗马斗兽场(贴合 OSM 3D 轮廓的环形结构,建成后又演化为废墟)和埃菲尔铁塔。官网有完整的在线集合与动画。
安装有三种方式,都不需要 API key:
| 方式 | 命令 |
|---|---|
| skills CLI(个人级) | npx skills add Gleaming0427/monument -g |
| skills CLI(项目级) | npx skills add Gleaming0427/monument |
| git(Claude Code) | git clone … ~/.claude/skills/monument |
| git(Codex) | git clone … ~/.agents/skills/monument |
查看器、Three.js 与字体都随 Skill 打包,不需要 npm install,需要 Node 20+。它支持 Claude Code、Codex、OpenCode 与 Antigravity;作者还做了 record.mjs,可以把整条时间线录成 GIF / MP4(需要 Chrome 与 ffmpeg)。
二、8 步流程:从 OSM 外轮廓到"一砖一瓦"
Monument 的标准构建流程写死在 SKILL.md 里,一共 8 步,其中最值得工程化借鉴的是"先生成可测量的骨架,再谈研究":
- 界定范围:只建被点名的那栋建筑;如果用户说的是"建筑群/遗址",先声明更大范围,并建议先做主建筑;
- 先生成测量骨架:运行
node scripts/scaffold.mjs "<建筑, 城市, 国家>" --out monuments——它解析目标建筑、只下载它的 OpenStreetMap 外轮廓、把轮廓换算成米、选择一个保守的建筑族,写出 JSON 与平面证据,并立即产出一个带门窗的当代外壳;如果解析不到闭合轮廓,它宁可停下,也不拿附近另一栋楼来顶替; - 先复用,再研究:打开最接近的已有例子与"砖块表",能复用的测量结构和生成器直接复用,不重复解已经解过的几何;
- 一次性做完研究:至少打开来自不同站点的两页权威资料与至少两个侧面的三张照片,提取身份、尺寸、带年代的阶段,以及至少 8 个可见细节(轮廓、接头、窗框、檐口、支撑、紧固件、雕刻、屋面边缘……),并为至少两个施工阶段找到"工具、临时结构、人怎么干活"的证据——搜索结果不算来源;
- 替换骨架里的估算值:把高度、层数、屋面、体量与资料核对;保留下载的轮廓,重跑
plan.mjs;只有不确定性真的被解决,才移除脚手架的警告; - 从粗到细,再补人尺度:外围轮廓/朝向/开洞/体量已经存在,手工时间花在真实屋面、结构体系与标志性细节上;为至少两个阶段添加有来源的施工现场——工人、材料堆、脚手架、吊装设备与灰尘;脚手架按被建表面选
facade(直墙)/ring(弧形)/tower(独立墩),吊装按年代选gin-pole(桅杆)/treadwheel(踏轮)/steam-crane(蒸汽吊车),并让吊装路径随工作面"往上爬";至少有一个能看清手、接头或工具的近景施工瞬间; - 写盘并打开:精修 JSON,启动查看器,完整播放一遍时间轴;
- 一次聚焦对照:跑
compare.mjs … --pass 1 --quick,对着三张参考视图找最明显的差距、修掉、重跑刷新截图,并记录gaps / fixed / remaining;最后跑validate.mjs --standard,如实汇报哪些是测量、哪些有文献、哪些是推断。
官方给的耗时口径是:一个聚焦单体的标准构建通常 8–15 分钟;如果需要一种全新的复杂"砖块"(比如从未见过的结构类型),首次构建可能要 20–35 分钟。作者在发布文里另给了一个更保守的区间:"详细重建可能要 30–90 分钟,且第一次结果通常需要再修一轮"——两个数字并不矛盾:前者是标准构建,后者更接近"资料最全的出版级重建 + 返工"。
三、一条规则:建筑本身就是证据
SKILL.md 的开头只放了一条最重要的规则:
The building is the evidence.
展开就是一套证据纪律,也是这个 Skill 和"让 AI 画个 3D 建筑"最大的区别:
- 每个阶段都有日期和引文:"每个日期和数字都引用你真正读过的页面";
- 每个形状要么被测、要么读自照片:"任何被推断的东西,都要明说是推断";
- 不发明:不补日期、不补地基、不补建筑师、不编軼事、不凭想象补"更早的状态";
- 动画不是历史证据:"自下而上播放"不能证明真实的施工顺序;当某个阶段只是解释而不是文献记录时,必须说明;
- 不找替身:永远不要用一个通用房子、另一个纪念碑的变体或"名字贴到已有模型上"来顶替被点名的建筑;
- 细节优先于布景:把细节预算花在被点名的建筑上;邻居、街道、地图标签都是"可选的上下文",不是完成度指标;
- 脚手架是起点,不是历史证据:它自动化的只是"有可用轮廓的建筑"的测绘几何,不推断日期、建筑师、隐藏结构或历史状态;
- 不宣称"精确"或"穷尽历史":模型是模型,不是测绘。
这条纪律最后会落成一个可检查的字段:evidence.uncertainties(不确定性清单)。查看器里"哪些数字是量的、哪些是读照片读出来的、哪些被简化了",与模型一起显示。对于 BIM / 遗产保护(HBIM)类工作,这比"看起来像"重要得多——一个漂亮的错误模型,或者一段编造的历史,按原文的说法是"一次失败"。
四、解剖一个 Skill:Monument 的仓库长什么样
这个仓库本身是一份很好的 Agent Skill 模板(MIT)。它的结构是:
SKILL.md 技能主文件:何时触发、8 步流程、规则
references/ 格式、真实平面、保真、砖块、脚手架的方法文档
kit/ 自带查看器:builder.js、界面、内置 Three.js 与字体
scripts/ scaffold / serve / validate / capture / compare / record / publish
examples/ 官方集合(斗兽场、比萨斜塔、埃菲尔铁塔)+ 每个的 .evidence 目录
community/ 社区画廊(一个建筑一个目录)
site/ 官网(GitHub Pages)
几个设计值得抄:
SKILL.md只管"怎么干活",重方法进references/——和给 Agent 写说明书的分层思路一致:主文件保持短,细节放到该放的地方,按需加载;- 有校验闸门:
validate.mjs --standard检查标准构建,--strict是发布闸门——"标准构建可以是一个合格的本地结果,但严格校验不过就不许发布";validate.mjs还会检查"每一块砖都有文档"; - 证据随模型走:
examples/<id>.evidence/保存来源、轮廓、控制平面、参考照片与对照过程,社区画廊收到提交后会重新构建并拍照再合并; - 自带运行时:查看器、Three.js、字体全部 vendored,安装后离线可跑,不依赖 CDN,也不需要把模型数据传出本机。
五、边界与坑:它是模型,不是测绘
原文在"能不能用"这件事上很克制,几条限制值得放在最前面:
- 它只和记录一样好:"一份有文献的历史和好照片,给出好模型;一份单薄的记录,给出短时间线——并且会标明它单薄";
- 形状来自砖块:一种全新的建筑类型需要一块新"砖";第一版会主动声明自己的简化;
- 它是模型,不是测绘:"外轮廓和高度是测量值;立面、屋面、以及年代之间的划分,是读自资料和照片"——不要拿它当量测依据;
- 首次结果需要修:作者自己说,第一次生成常常要再来一轮;"自下而上的动画"只解释建造逻辑,不证明历史顺序;
- 单薄的历史不会变厚:资料少就是资料少,Skill 会选择展示"有据可查的状态",并把示意图明确标成示意图。
还有一类"软"边界:它生成的是 Skill 自己的 JSON 场景 + 本地 Three.js 查看器,面向的是"看懂一栋建筑是怎么建起来的",不是给下游 BIM 流水线的 IFC 交付件。如果你的目标是峰值出图、产品渲染或工程交付,仍应把它当作前期研究/演示资产,几何要经过专业工具复核。
六、怎么验证它的产出
最便宜的三道检查,全部在浏览器里完成:
- 在自带查看器里完整播一遍时间轴:阶段顺序是否合理、每个阶段的引文是否真的在
evidence.sources里; - 跑一次
validate.mjs --standard(或发布前跑--strict):把"未解决的不确定性"逐条看过去; - 拿产出的模型文件做二次检查:打开 3D 模型在线查看器 拖动、旋转、看面数与包围盒——不需要装软件。Monument 渲染的是它自己的 JSON 场景;如果你手上有从它或其它管线导出的 glTF / GLB,用 glTF 查看器 看动画与扩展更合适。
如果你正打算给自己领域里的一套流程写 Agent Skill,Monument 是一个少见的"完整样本":短主文件 + 方法文档 + 自带运行时 + 可校验的证据字段 + 发布闸门。它证明了一件事:Skill 的价值不在于让模型"更会画",而在于把一个专业工作流的顺序、证据与边界固化下来——这也正是 AGENTS.md 说明书实测 那篇文章的核心结论;而说明书的另一半风险(会过期),见 DefiPlot 整理的交易 Agent 版本冲突复盘。
来源
- @gleaming0427, I built a Claude Code skill that reconstructs historical monuments in 3D, stone by stone(dev.to,2026-10-15):https://dev.to/gleaming0427/i-built-a-claude-code-skill-that-reconstructs-historical-monuments-in-3d-stone-by-stone-2dh2
- Monument 仓库(README / SKILL.md / references/format.md,MIT):https://github.com/Gleaming0427/monument
- 在线集合与交互示例:https://gleaming0427.github.io/monument/
- 安装与提交社区画廊:
npx skills add Gleaming0427/monument;提交表单见仓库 Issues 模板
同主题阅读
- Text-to-CAD:让 coding agent 写参数化 Python 产 STEP
- Blender 接 AI Agent:MCP 横评与云渲染实测
- Depth Anything 3:从单张卫星图生成深度 GeoTIFF
- 专题:AI × 3D / 生成式 AI 完全指南
本文由 BimAnt 编译整理,转载请注明出处。
本文属于「AI × 3D」专题。查看专题全部文章 →