01 · Frontières du code
Des responsabilités distinctes pour le domaine, le GPU et l'interface
Le monorepo Frontend sépare trois packages : core, renderer et web. Core calcule échantillonnage, directions, disposition, budgets et métadonnées sans React, Three.js, DOM ni réseau. Renderer possède les chargeurs, l'évaluation des poses, la caméra et les ressources WebGL2. L'application organise interactions, sélections et travaux de capture.
Les dépendances suivent web → renderer → core, avec un accès direct de web à core. Les points d'entrée publics évitent les dépendances aux fichiers internes d'un autre package. Composition et petites interfaces soutiennent Strategy pour les styles, Factory pour les chargeurs et une façade de capture, sans classe centrale responsable de toute la scène.
| Couche | Responsabilité | Décision |
|---|---|---|
| core · TypeScript | Images, angles, CapturePlan, feuilles et JSON | Règles de domaine indépendantes du GPU |
| renderer · Three.js / WebGL2 | Importation, pose, matériaux et pixels | Cycle de vie explicite des ressources |
| web · React | Espaces de travail, état et orchestration | Scène/GPU hors du rendu React |
| Desktop · C# / WPF | WebView2, fichiers et optimisation | Port DesktopHost et messages versionnés |
| API · ASP.NET Core | Fondation de services et contrôles de santé | Indépendante de l'éditeur et de la capture |