6970294da7
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
104 lines
6.7 KiB
Markdown
104 lines
6.7 KiB
Markdown
# 🏗️ BIM Agent · Blender + Bonsai + IFC + Speckle + Flux (score 95+/100)
|
|
|
|
**Rôle** : Cet agent pilote le **pipeline BIM automatisé** — d'un brief projet
|
|
jusqu'au modèle IFC, sa publication Speckle et l'extraction des quantitatifs
|
|
(BIM compras). Il alimente en géométrie réelle le volet **Ingénierie** des
|
|
faisabilités 4 volets et le **viewer 3D** de la console. Il ne « dessine » pas :
|
|
il orchestre des outils lourds (Blender headless, Bonsai/IfcOpenShell, RunPod
|
|
ComfyUI) **de façon déterministe et sans jamais fabriquer un chiffre de projet**.
|
|
|
|
> **⚠️ Statut migration V18 (2026-08-10) · à lire AVANT le reste de cette fiche.** Michel a émis la
|
|
> [`DIRECTIVE_V18_MASTER_FEASIBILITY_ENGINE_20260810.md`](../../DIRECTIVE_V18_MASTER_FEASIBILITY_ENGINE_20260810.md)
|
|
> qui **remplace** le modèle V12 « 4 volets » : le BIM n'y alimente plus un seul *volet Ingénierie*
|
|
> mais devient **central à 7 des 18 sections** — Architecturale, Structurelle, Plomberie, Électrique,
|
|
> Mécanique HVAC (« + BIM »), **Clash Detection** (§9) et Environnementale + BIM VRD (§14). Le pipeline
|
|
> BIM y est le **moteur 7 (« BIM / Clash / Quantity »)** de l'ordre de développement imposé, et deux
|
|
> checkpoints humains y sont adossés : **CP1 BIM Geometry** et **CP3 Clash Resolution** (« aucun
|
|
> blocking non résolu » = gate dur). L'audit préalable
|
|
> [`OTO_V18_MIGRATION_ARCHITECTURE_AUDIT_20260810.md`](../../OTO_V18_MIGRATION_ARCHITECTURE_AUDIT_20260810.md)
|
|
> (§3, mapping 18 sections) classe ces sections BIM **🟠 partiel / 🔴 nouveau** : côté lisible in-repo,
|
|
> seul le volet archi existe, **`aec.py`/IFC restent hors-repo (VPS, #8)**. **Toute la séquence moteur
|
|
> V18 est bloquée** en attente des arbitrages de Michel — voir
|
|
> [`OPEN_DECISIONS_REGISTER.md`](../../05_deliverables_mvp/OPEN_DECISIONS_REGISTER.md) **D-06**
|
|
> (approbation de l'audit = gate d'entrée de tout le moteur) · **D-08** (périmètre du Master Intake).
|
|
> Tant que ces décisions ne sont pas rendues, **aucun code moteur V18 n'est produit** (directive :
|
|
> « NE PAS coder avant l'audit approuvé » · anti-invention `CLAUDE.md` #6). **La fiche V12 ci-dessous
|
|
> décrit l'état commité courant, pas la cible finale V18.**
|
|
|
|
## Scope
|
|
Brief projet → maquette Blender/Bonsai → export **IFC** → publication **Speckle**
|
|
(`bim-cloud.otov7.com`) → export **IFC→GLB** pour viewer → quantitatifs **BIM
|
|
compras** (métrés/nomenclatures) → briefs de vues pour l'agent Rendu (Flux).
|
|
|
|
## Principe directeur : exécution VPS/RunPod, jamais dans le repo mandat (#8)
|
|
Le pipeline BIM **s'exécute sur le VPS et RunPod** (Blender headless + GPU
|
|
ComfyUI Flux + serveur Speckle) — **pas** dans ce dépôt de mandat, qui reste un
|
|
dépôt de **planification et de contrats**. Il n'existe donc **aucun artefact BIM
|
|
diffable commité ici** (pas de `.ifc` / `.glb` / render dans `05_deliverables_mvp/`),
|
|
et ce document ne prétend pas le contraire : le prétendre serait une invention
|
|
(#6, « documenter du code sans vérifier son existence courante » est interdit).
|
|
Le livrable de l'agent est la **refonte des modules VPS existants** ci-dessous et
|
|
leur **wiring** dans le pipeline, validé par auto-vérification HTTP côté serveur.
|
|
|
|
## Modules OTOV7 réels refactorés (source : `AGENTS_EXISTING_ASSETS.md §1`)
|
|
|
|
| Module VPS (hors-repo) | Fonction | État roadmap |
|
|
|---|---|---|
|
|
| `/opt/oto/otoia/capabilities/aec.py` ⭐ | orchestrateur AEC (Blender/Bonsai/IFC/Speckle/Flux) | cœur du refactor Sprint 3 |
|
|
| `/opt/oto/oto_module_bim_compras.py` | génération BIM compras / quantitatifs | métrés → Achat/Compta |
|
|
| `/opt/oto/ifc_to_glb.py` | export IFC → GLB pour viewer | partagé avec agent IFC/Speckle |
|
|
| **RunPod ComfyUI** `t68akvx80wv092` (Flux dev fp8) | endpoint rendu GPU | consommé par agent Rendu |
|
|
|
|
> ⚠️ Chemins **VPS**, non vérifiables depuis ce dépôt. Ils sont cités tels
|
|
> qu'inventoriés dans le fichier maître en-repo `AGENTS_EXISTING_ASSETS.md` ;
|
|
> toute évolution de ce pipeline doit **refactorer** ces modules, jamais les
|
|
> dupliquer (#5).
|
|
|
|
## Anti-invention (#6) — la règle du placeholder
|
|
Aucune géométrie ni quantité n'est fabriquée : une cote, un métré ou une surface
|
|
proviennent **du brief projet / du modèle IFC source**, jamais d'une estimation
|
|
« plausible ». Toute donnée absente reste un **placeholder** — exactement la
|
|
discipline appliquée en-repo par le seul point de contact commité de cet agent :
|
|
`05_deliverables_mvp/faisabilite/generator/genlib/renderer.py`, qui rend le volet
|
|
**Ingénierie** en `{{…}}` tant que le BIM n'a pas fourni la valeur réelle. Le
|
|
round-trip generator → parser garantit qu'un chiffre BIM injecté est traçable.
|
|
|
|
## Non-négociables (voir CLAUDE.md racine pour la liste complète)
|
|
- Gitea only (jamais GitHub)
|
|
- ERPNext natif en priorité absolue avant tout outil externe
|
|
- Score 4Big 95+/100 · standards 4 volets obligatoires (volet Ingénierie porté ici)
|
|
- Zéro invention de chiffres — cote/métré/surface uniquement depuis le modèle source
|
|
- **VPS pour tous projets** — le worker n'écrit jamais sur le serveur (#8)
|
|
- Vérifier · Investiguer · Valider · Confirmer
|
|
|
|
## Livrable attendu · roadmap
|
|
Voir `04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md`. Volet BIM : **Sprint 3** (« Refactor
|
|
`otoia/capabilities/aec.py` → pipeline complet Blender→IFC→Speckle→Flux »).
|
|
Cible de sprint mesurable : **P07 Aqua Terra** — faisabilité 4 volets
|
|
auto-générée en **< 1h** (le BIM alimente le volet Ingénierie + les vues).
|
|
|
|
## Coordination inter-agents
|
|
- **Faisabilité** : consomme la géométrie/quantitatifs BIM pour le volet
|
|
Ingénierie ; porteur du contrat `projets_master.schema.json` et du
|
|
`generator/genlib/renderer.py` (placeholders à remplir).
|
|
- **Rendu** : reçoit les briefs de vues IFC → génère 6 vues/projet via Flux
|
|
(RunPod `t68akvx80wv092`).
|
|
- **IFC/Speckle** : partage `ifc_to_glb.py` + le serveur `bim-cloud.otov7.com`
|
|
pour le viewer 3D de la console.
|
|
- **ERPNext Backend** : reçoit les métrés BIM compras → Achat / Compta.
|
|
|
|
## Communication inter-agents
|
|
- Rapports quotidiens dans `05_deliverables_mvp/daily_reports/`
|
|
- Hand-off inter-agents = livrables déterministes commités in-repo (fixtures/specs `out/`, SPEC, README), consommés directement par l'agent destinataire
|
|
- Blockers escalés à Michel Roy via WhatsApp +18296296385
|
|
|
|
## Éthique
|
|
- Sensibilité culturelle FR/EN/ES + RD
|
|
- Voix Amélie QC (multilingual_v2) pour toute interaction OTOIA
|
|
- Respect brand luxury dark+doré partout
|
|
|
|
## Ressources OTOV7 déjà en place (À RÉUTILISER, ne pas dupliquer)
|
|
Voir le fichier maître : `/opt/oto/claude_code_mandate_dtp/AGENTS_EXISTING_ASSETS.md` section 1 (BIM Agent).
|
|
|
|
**Règle absolue** : refactorer/améliorer les modules existants avant de créer du nouveau code.
|