01 · Fronteiras do código
Domínio puro, GPU e interface com responsabilidades próprias
O monorepo do Frontend separa três pacotes: core, renderer e web. O core calcula amostragem, direções, layout, orçamento e metadata sem React, Three.js, DOM ou rede. O renderer possui os loaders, a avaliação de poses, a câmera e os recursos WebGL2. A aplicação organiza interação, seleções e jobs.
As dependências seguem web → renderer → core, com acesso direto de web ao core. Entrypoints públicos impedem que um pacote dependa dos detalhes internos de outro. Composição e interfaces pequenas sustentam Strategy para estilos, Factory para loaders e uma fachada de captura, sem uma classe central responsável por toda a cena.
| Camada | Responsabilidade | Decisão |
|---|---|---|
| core · TypeScript | Frames, ângulos, CapturePlan, folhas e JSON | Regras de domínio independentes da GPU |
| renderer · Three.js / WebGL2 | Importação, pose, materiais e pixels | Lifecycle explícito para recursos |
| web · React | Workspaces, estado e orquestração | Cena/GPU fora do render do React |
| Desktop · C# / WPF | WebView2, arquivos e otimização | Porta DesktopHost e mensagens versionadas |
| API · ASP.NET Core | Fundação de serviços e health checks | Independente do editor e do bake |