codepawl/build-house-from-plan

Transformez un plan de maison 2D en maison 3D photoréaliste dans Blender Cycles, vérifiée en superposant la construction sur le dessin. Images fixes, film des murs s'élevant du plan, et rues entières de maisons.

Qu'est-ce que build-house-from-plan ?

Ce skill permet de créer des modèles 3D photoréalistes de maisons à partir d'un plan 2D (plan d'étage, plan de maison, blueprint) en utilisant Blender Cycles. Il prend en charge l'ensemble du pipeline : lecture du plan, construction avec épaisseur de mur réelle, habillage avec des matériaux et modèles réels, rendu en Cycles, et vérification automatique par superposition sur le plan original. Le skill est conçu pour fonctionner avec Claude Code, Cursor, ou tout agent capable d'exécuter des commandes shell, et garantit une précision géométrique grâce à des vérifications automatisées (seuil de 70% des faces de mur à moins de 7 cm de l'encre). Il supporte également la production de films d'ascension des murs et la génération de rues entières, avec une gestion rigoureuse des sources licenciées et des modèles réels (Poly Haven, ambientCG, Objaverse).

Compatible avec~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 Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Construire une maison 3D photoréaliste à partir d'un plan 2D (Dựng nhà 3D siêu chân thật từ bản vẽ 2D)

Si references/local.md existe, lisez-le d'abord : il définit les dossiers et les règles de la machine.

Un fichier plan est lu à partir du dessin, vérifié par rapport au dessin, construit avec une épaisseur de mur réelle et des cadres réels, puis habillé de matériaux et modèles scannés et rendu dans Cycles. Le dessin reste le juge : rien n'est livré tant que le plan d'étage construit n'atterrit pas sur son encre.

Ordre de travail

  1. Trouver la feuille et ses sources. Plan libre de droits, plus des photos du même bâtiment ou de son type et époque. Lisez references/read-plan.md en entier : sources, calibration, ordre de lecture, le tableau de ce qui peut être déduit.
  2. Écrire plan.json. references/plan-format.md contient toutes les clés. Lisez les sections dont vous avez besoin. Tout ce qui n'est pas lu du dessin va dans provenance.inferred, et le rapport final répète cette liste.
  3. Vérifier avant de construire. Arrêtez-vous et corrigez toute erreur :
    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. Construire. Un Blender à la fois :
    blender -b --factory-startup -t 6 -P scripts/build_house.py -- plan.json out/house.blend
    
    Il écrit la section « as-built » à côté du fichier blend. Évaluez-la avec plan_check.py asbuilt <section.json>.
  5. Aperçu en petit. --samples 48 --scale 50, puis regardez chaque prise à côté des photos de référence :
    blender -b out/house.blend -t 6 -P scripts/render_house.py -- plan.json out/preview --samples 48 --scale 50
    
  6. Traquer ce qui semble faux. Lisez references/realism-faults.md avant de juger : les défauts que ce pipeline a réellement produits, à quoi chacun ressemblait et ce qui l'a corrigé. Ajoutez chaque nouveau défaut au même tour.
  7. Final. 1920x1080 à environ 512 échantillons, chaque image fixe en pleine taille à côté d'une vraie photo. Regardez chacune.
  8. Films. --film <nom>. Un film build_up fait s'élever les murs de la feuille elle-même. Rues : « Streets » dans references/plan-format.md.

Règles strictes

  • Seuil : au moins 0,70 des faces de mur à moins de 7 cm de l'encre, décalage de meilleur ajustement d'au plus 16 cm, une nette victoire sur un contrôle décalé de 50 cm, à la fois sur le plan et sur la section construite. Un échec signifie que le plan ou la construction est erroné. Ne jamais assouplir cette règle.
  • Les dimensions sont mesurées ou imprimées, jamais devinées à l'œil : épaisseur de mur, hauteur sous plafond, appui et linteau. Une hauteur que le dessin ne donne pas est déduite du type et de l'époque et listée comme déduite.
  • Toit et façade sans dessins d'élévation sont déduits. Dites-le dans le rapport.
  • Matériaux réels uniquement : scannages Poly Haven ou ambientCG avec leur vraie taille de tuile. Pas de couleur unie sur une surface visible.
  • Le mobilier provient de modèles PBR réels placés selon l'usage de la pièce, en gardant l'espace de circulation et les faces avant tournées vers la pièce. scripts/fetch_assets.py télécharge les scannages CC0, scripts/find_objaverse.py et scripts/fetch_objaverse.py trouvent et téléchargent les modèles CC BY.
  • Créditez chaque modèle CC BY et chaque feuille source dans CREDITS.md à côté du plan.
  • Vérifiez l'orientation sur une grille (scripts/preview_assets.py) avant de placer un nouveau modèle. Vérifiez aussi la taille native, car les modèles Objaverse viennent dans des unités étranges.

Vitesse

Une importation glTF est l'étape lente, donc build_house.py met en cache chaque modèle sous forme d'un .blend lié dans la bibliothèque d'actifs (HOUSE_ASSET_LIBRARY, par défaut ~/house-assets). Évitez les pins et sapins scannés : leur importateur prend plusieurs minutes. L'herbe et les arbres prennent du temps à synchroniser, donc les rendus conservent les données persistantes entre les prises. Toute étape de plus de 5 minutes est profilée et corrigée.

Fini signifie

Les vérifications « check », « overlay » et « as-built » passent et sont citées avec leurs chiffres. Les images fixes intérieures et extérieures tiennent en pleine taille à côté de vraies photos. Le rapport indique ce qui a été sourcé, ce qui a été déduit et ce qui semble encore faible.

Skills associés