Community编程与开发github.com

codepawl/build-house-from-plan

将二维房屋平面图转换为Blender Cycles中的逼真三维房屋,并通过将建筑叠加在图纸上进行校验。支持静态图像、墙体从图纸上升起的动画影片以及整条街道的房屋。适用于楼层平面图、房屋平面图或蓝图,使其成为真实感的三维房屋或街道。

build-house-from-plan 是什么?

该技能是一个专业的AI代理工具,专为Blender工作流设计,用于从2D房屋平面图(如蓝图、楼层平面图)生成照片级真实的3D模型。它通过严格的几何校验确保建筑模型精确匹配原始图纸,支持输出静态渲染、墙体生长动画(建筑从图纸上拔地而起)以及批量生成整条街道的房屋。技能集成了自动化的验证流程(使用Plan Check工具)、真实材质库(来自Poly Haven或ambientCG的扫描材质)和PBR家具模型,并包含效率优化(如glTF导入缓存)。支持Claude Code、Codex等AI代理平台,用户只需提供清晰授权的平面图和相关照片,代理即可自动完成从解析图纸、构建3D模型到最终渲染的全流程,最终生成可叠加在原始图纸上验证的逼真建筑可视化作品。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/codepawl/viz3d/tree/HEAD/plugins/build-house-from-plan/skills/build-house-from-plan

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

从2D平面图构建逼真3D房屋(Dựng nhà 3D siêu chân thật từ bản vẽ 2D)

如果 references/local.md 存在,请先阅读它:它会设置本机的文件夹和房屋规则。

平面图文件从图纸中读取,与图纸进行校验,使用真实墙厚和真实窗框进行构建,然后使用扫描材质和模型进行装饰,并在Cycles中渲染。图纸始终是评判标准:除非构建的楼层平面图与其墨水印记完全匹配,否则不输出任何内容。

工作顺序

  1. 找到图纸及其来源。 版权清晰的平面图,以及同一建筑或其类型和时期的照片。 完整阅读 references/read-plan.md:来源、校准、读取顺序、可推断内容的表格。
  2. 编写 plan.json。 references/plan-format.md 包含所有键。阅读你需要的部分。所有未从图纸中读取的内容都放在 provenance.inferred 中,最终报告将重复该列表。
  3. 构建前检查。 若出现任何失败,停止并修复:
    uv run --no-project --with pillow --with numpy --with scipy python scripts/plan_check.py check plan.json
    uv run --no-project --with pillow --with numpy --with scipy python scripts/plan_check.py overlay plan.json
    
  4. 构建。 一次一个Blender:
    blender -b --factory-startup -t 6 -P scripts/build_house.py -- plan.json out/house.blend
    
    它将在blend文件旁边写入已构建部分的内容。使用 plan_check.py asbuilt <section.json> 对其进行评分。
  5. 小预览。 --samples 48 --scale 50,然后将每个镜头与参考照片并列查看:
    blender -b out/house.blend -t 6 -P scripts/render_house.py -- plan.json out/preview --samples 48 --scale 50
    
  6. 查找看起来虚假的地方。 在评判前阅读 references/realism-faults.md:此流程实际产生的缺陷、每个缺陷的外观以及修复方法。每次都在该文件中添加新发现的缺陷。
  7. 最终版。 约512采样率的1920x1080分辨率,每个静态图以全尺寸与真实照片并列。逐一查看每个图像。
  8. 动画影片。 --film <name>。build_up 影片将墙体从图纸本身升起。街道:请参见 references/plan-format.md 中的“街道”。

硬性规则

  • 门控:至少70%的墙面在7厘米的墨水线条范围内,最佳拟合偏移最多16厘米,相较于50厘米偏移的对照组具有明显优势,且需同时通过平面图和已构建部分的检验。失败意味着平面图或构建有误。绝不能放松此标准。
  • 尺寸通过测量或打印获取,不得凭眼力猜测:墙厚、天花板高度、窗台和窗顶高度。图纸未提供的尺寸根据类型和时期推断,并列为推断值。
  • 无立面图的屋顶和外墙被推断。请在报告中说明。
  • 仅使用真实材质:来自Poly Haven或ambientCG的扫描,使用其真实图块尺寸。可见表面上不得使用纯色。
  • 家具来自根据房间用途放置的真实PBR模型,保留行走空间,正面朝向房间。scripts/fetch_assets.py 下载CC0扫描模型,scripts/find_objaverse.py 和 scripts/fetch_objaverse.py 查找并获取CC BY模型。
  • 在平面图旁的 CREDITS.md 中标注每个CC BY模型和每个来源图纸的版权信息。
  • 在放置新模型前,使用网格检查方向(scripts/preview_assets.py)。同时检查原始尺寸,因为Objaverse模型可能使用非常规单位。

速度优化

glTF导入是最慢的步骤,因此 build_house.py 将每个模型缓存为资产库(HOUSE_ASSET_LIBRARY,默认为 ~/house-assets)中的链接 .blend 文件。避免使用扫描的松树和冷杉:它们的导入器需要很多分钟。草地和树木的同步时间较长,因此渲染在镜头之间保留持久数据。任何超过5分钟的步骤都将进行分析并修复。

完成意味着

检查、叠加和已构建门控均通过,并附带具体数值。室内和室外静态图在全尺寸下与真实照片相比站得住脚。报告需说明资料来源、推断内容以及仍然薄弱的环节。

相关技能