Community程式設計與開發github.com

codepawl/從平面圖建造房屋

將 2D 房屋平面圖轉換為 Blender Cycles 中的逼真 3D 房屋,並透過將建築物疊加在圖紙上進行檢查。支援靜態圖像、牆壁從圖紙上拔起的動畫影片,以及整條街區房屋的生成。適用於平面圖、房屋設計圖或藍圖,將其轉變為真實感 3D 房屋或街道。

從平面圖建造房屋 是什麼?

這個 AI 代理技能可以將 2D 房屋平面圖(如藍圖、手繪草圖或標準平面圖)轉換為完全材質化的 3D 模型,並在 Blender Cycles 中渲染。它會從圖紙中讀取尺寸,自動建立具有真實牆壁厚度和門窗框架的建築結構,然後套用來自 Poly Haven 或 ambientCG 的真實材質(如木材、石材、瓷磚),並根據房間功能擺放真實的 PBR 傢俱模型。整個過程會自動驗證:透過 `plan_check.py` 檢查平面圖 JSON 是否準確,並將渲染結果疊加回原始 2D 圖紙上,確保空間位置的準確性。支援靜態 1920x1080 渲染、牆壁從平面圖上升的動畫影片,以及整條街道的批量生成。該技能適用於 Claude Code、Cursor 等命令行環境,需要安裝 Python 和 Blender。它使用嚴格的品質門檻(牆壁與墨水線的偏差小於 7 公分),並自動記錄所有推斷的尺寸和使用的素材來源,最後生成 CREDITS.md 檔案以遵守授權規定。

相容平台~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 檔案旁寫入「as-built」部分。使用 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. 最終輸出。 1920x1080,約 512 個取樣,每張靜態圖以全尺寸與真實照片並排。逐一檢查。
  8. 影片。 --film <name>。build_up 影片會讓牆壁從圖紙本身升起。街道:請參閱 references/plan-format.md 中的 "Streets"。

嚴格規則

  • 門檻: 至少 70% 的牆面與墨線的偏差在 7 公分以內,最佳擬合偏移最多 16 公分,並且明顯優於 50 公分偏移的控制組,同時在平面圖和「as-built」部分上都需滿足。失敗表示平面圖或建築有誤。切勿放寬標準。
  • 尺寸: 必須測量或列印,不得憑眼估計:牆壁厚度、天花板高度、窗臺和窗頂高度。圖紙未提供的高度則根據類型和時期推斷,並標記為「inferred」。
  • 屋頂和立面: 若無立面圖則為推斷。請在報告中說明。
  • 僅使用真實材質: 僅使用來自 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 會將每個模型快取為連結的 .blend 檔案,存放在素材庫中(HOUSE_ASSET_LIBRARY,預設為 ~/house-assets)。避免使用掃描的松樹和冷杉,因為其導入器需要數分鐘。草和樹木同步時間長,因此渲染會在鏡頭之間保留持久數據。任何超過 5 分鐘的步驟都會被分析並修正。

完成標準

檢查、疊加和「as-built」門檻均通過,並附上數值。室內和室外靜態圖在與真實照片並排比較時,全尺寸下仍然真實。報告應說明哪些是來源資料、哪些是推斷,以及哪些部分仍然看起來較弱。

相關技能