Sortie réelle du moteur du dépôt. Le plan et le SVG viennent
de src/plan-engine/fixtures/t3-65m2.ts et de
src/plan-engine/PlanView ; les six lectures ci-dessous sont
calculées par app/plans/inventory.py ; le diagnostic est celui
de src/plan-engine/validate.ts::validatePlan. Rien n'est rédigé à
la main dans les tableaux.
Niveau « RDC », emprise 8,80 × 7,40 m, 7 pièces pavant 65.12 m², 13 murs et 16 ouvertures. Le mobilier ci-dessous est posé sur ces pièces.
PlanView de l'application, inclus ici en SVG : la page ne
dépend d'aucun fichier extérieur.| Pièce | Surface | Rôle |
|---|---|---|
| Séjour | 19.76 m² | |
| Cuisine | 13.68 m² | |
| Entrée / Couloir | 8.80 m² | entrée |
| Chambre 1 | 7.80 m² | |
| Chambre 2 | 8.84 m² | |
| Salle de bain | 3.64 m² | |
| WC | 2.60 m² |
Les cinq clés de ItemStatus sont toujours présentes, y compris à
zéro : une catégorie vide est une information, pas une ligne manquante
(inventory.counts_by_status).
| Statut | Ce que ça veut dire sur le chantier | Nombre |
|---|---|---|
existing | Existant (relevé, non touché) | 2 |
kept | Conservé tel quel | 3 |
moved | Déplacé | 1 |
removed | Déposé et évacué | 2 |
added | Ajouté (à acheter) | 3 |
Ce qui PART du mur : les removed et les
moved. Un meuble déplacé doit être déposé même s'il revient — le
motif dit lequel des deux cas s'applique
(inventory.demolition_plan).
| Objet | Catégorie | Emprise | Motif de dépose | Provenance |
|---|---|---|---|---|
| Commode 4 tiroirs | rangement | 1.00 × 0.45 m — centre (5.90 ; 5.20) | moved — déposé puis reposé ailleurs | saisi à la main · user |
| Canapé 3 places (usé) | assise | 2.10 × 0.90 m — centre (2.60 ; 0.90) | removed — évacué | détection automatique · confiance 88 % · vision_detect_v0.3 |
| Baignoire 170×70 | sanitaire | 1.30 × 0.70 m — centre (7.10 ; 5.40) | removed — évacué | détection automatique · confiance 93 % · vision_detect_v0.3 |
Les kept et les moved : un meuble
déplacé reste dans le logement (inventory.kept_list).
| Objet | Catégorie | Emprise | Statut | Provenance |
|---|---|---|---|---|
| Table de repas 140×80 | table | 1.40 × 0.80 m — centre (2.00 ; 2.60) | kept | saisi à la main · user |
| Bibliothèque murale | rangement | 0.35 × 2.20 m — centre (0.40 ; 1.60) | kept | détection automatique · confiance 84 % · vision_detect_v0.3 |
| Lit 140×190 (chambre 1) | literie | 1.40 × 1.90 m — centre (1.50 ; 6.00) | kept | détection automatique · confiance 95 % · vision_detect_v0.3 |
| Commode 4 tiroirs | rangement | 1.00 × 0.45 m — centre (5.90 ; 5.20) | moved | saisi à la main · user |
Les added (inventory.shopping_list). Un ajout qui
ne remplace rien reste un achat sec : aucun appariement n'est deviné.
| Objet | Catégorie | Emprise | Réf. catalogue | Remplace | Provenance |
|---|---|---|---|---|---|
| Canapé d'angle convertible | assise | 2.40 × 1.00 m — centre (2.60 ; 0.95) | CAT-ASS-4471 | f-canape-vieux | proposé par le designer IA · confiance 72 % · designer_ia_v1 |
| Douche à l'italienne 120×90 | sanitaire | 1.20 × 0.90 m — centre (7.10 ; 5.40) | CAT-SAN-2019 | f-baignoire | saisi à la main · user |
| Bureau 120×60 (chambre 2) | bureau | 1.20 × 0.60 m — centre (4.60 ; 6.90) | CAT-BUR-0882 | achat sec | proposé par le designer IA · confiance 64 % · designer_ia_v1 |
« Remplacé » n'est pas un 6e statut : c'est une PAIRE
calculée à la demande, un removed et un added reliés
par sourceItemId (inventory.replacements).
| Déposé | Acheté | Lien |
|---|---|---|
Canapé 3 places (usé)f-canape-vieux | Canapé d'angle convertiblef-canape-neuf · réf. CAT-ASS-4471 | sourceItemId = f-canape-vieux |
Baignoire 170×70f-baignoire | Douche à l'italienne 120×90f-douche · réf. CAT-SAN-2019 | sourceItemId = f-baignoire |
Les défauts ci-dessous ont été injectés volontairement.
Sur le plan de référence, validatePlan rend
0 violation : il n'y aurait rien à
montrer. Deux défauts ont donc été introduits dans une copie, le plan
de référence n'étant jamais modifié :
DOOR_MIN_WIDTH_M = 0.73 m)room_unreachable — accessibilité par le graphe des portes)Ce que le moteur trouve sur la copie, mot pour mot, avec sa règle et sa mesure chiffrée :
| Règle | Constat du moteur |
|---|---|
door_too_narrow | door "t3-door-couloir-sdb" too narrow (0.60 m, min 0.73 m) |
room_unreachable | room "WC" (t3-wc) unreachable from "Entrée / Couloir" via the door graph |
Seuils du moteur : largeur de passage minimale
DOOR_MIN_WIDTH_M = 0,73 m, marge minimale d'une ouverture en bout
de mur OPENING_MIN_MARGIN_M = 0,15 m, plus le contrôle
d'accessibilité de chaque pièce depuis l'entrée par le graphe des portes.
Produit par demo_metier_imagein_plan.ts puis
demo_metier_imagein.py, hors ligne, sans appel réseau ni base de
données. Aucune valeur de ces tableaux n'a été saisie à la main : elles
sortent des fonctions nommées en tête de chaque section.