Communityコーディング&開発github.com

codepawl/build-house-from-plan

2Dの間取り図からフォトリアルな3D住宅をBlender Cyclesで生成します。図面と3Dモデルを重ね合わせて検証し、静止画、壁が立ち上がるアニメーション、街並みまで作成可能です。

build-house-from-plan とは?

このスキルは、2Dの家屋平面図(フロアプラン、ブループリントなど)を元に、Blender Cyclesを使用してフォトリアルな3D住宅モデルを自動生成します。ユーザーは図面と参照写真を用意するだけで、実物の壁厚、窓枠、建材スキャンデータを用いた高品質な3Dモデルが得られます。対応プラットフォームはBlender(Cyclesレンダリング)で、uvとPythonスクリプトにより図面の読み取り、モデル検証、レンダリングまでの全工程を自動化します。特筆すべきは、生成された3Dモデルを元の図面に重ね合わせて位置精度を検証する「ゲートチェック」機能で、壁面の70%以上がインクから7cm以内に収まっていることを確認します。また、実際の建築様式や時代に基づいて天井高や屋根形状を推論し、不足情報を明示します。最終的には、実写写真と並べても遜色ない静止画や、図面から壁が立ち上がるアニメーション、同一スタイルの街並み生成まで対応します。

対応~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に質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

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 の「Streets」を参照。

ハードルール

  • ゲートチェック:壁面の少なくとも70%がインクから7cm以内に収まり、最適オフセットが最大16cm、50cmシフトしたコントロールに対して明確に優位であること。平面図と構築済みセクションの両方で検証。失敗は図面か構築に問題があることを意味します。絶対に緩めてはいけません。
  • 寸法は測定または印刷された値を使用し、目測は禁止:壁厚、天井高、窓台高、窓枠高。図面にない高さはタイプと時代から推測し、推測と明記します。
  • 立面図がない屋根とファサードは推測します。報告書にその旨を記載します。
  • 実際のマテリアルのみ:Poly HavenまたはambientCGのスキャンデータを実際のタイルサイズで使用。可視面にフラットカラーは使用禁止。
  • 家具は実際のPBRモデルを部屋の用途に合わせて配置し、歩行スペースを確保し、正面を部屋の内側に向けます。scripts/fetch_assets.py でCC0スキャンをダウンロード、scripts/find_objaverse.py と scripts/fetch_objaverse.py でCC BYモデルを検索・取得します。
  • すべてのCC BYモデルとソースシートを CREDITS.md に図面と一緒に記載します。
  • 新しいモデルを配置する前に、グリッド上で方向を確認します(scripts/preview_assets.py)。Objaverseモデルは単位が変則的なため、本来のサイズも確認します。

速度

glTFのインポートが最も遅いステップなので、build_house.py は各モデルをリンクされた .blend ファイルとしてアセットライブラリ(HOUSE_ASSET_LIBRARY、デフォルト ~/house-assets)にキャッシュします。スキャンした松やモミは避けてください。インポートに数分かかります。草と木は同期に時間がかかるため、レンダリングはショット間で永続データを保持します。5分を超えるステップはプロファイリングして修正します。

完了条件

チェック、オーバーレイ、アズビルドの各ゲートが合格し、その数値が引用されていること。内部と外部の静止画が実写写真と並べてフルサイズで遜色ないこと。報告書に、ソースとしたもの、推測したもの、まだ弱い点が記載されていること。

関連スキル