Files
BrainWind/app
..

VentoApp — NBR 6123:2023

Status (jul/2026): 8/8 marcos concluídos. 100% de cobertura da NBR 6123:2023. Próximas melhorias: ver ../PROGRESS.md seção "Roadmap pós-Marco 8".

Aplicativo para cĂĄlculo de cargas de vento conforme a norma brasileira ABNT NBR 6123:2023 — Forças devidas ao vento em edificaçÔes.

🎯 Cobertura

Implementa 100% das seçÔes e anexos normativos:

  • Sec. 5 — Velocidade caracterĂ­stica (V₀, S₁, S₂, S₃, mudança de rugosidade)
  • Sec. 6.1 — EdificaçÔes paralelepipĂ©dicas (Tabelas 6–12, excentricidade, atrito, alta turbulĂȘncia)
  • Sec. 6.2 — SuperfĂ­cies curvas: cilindros, abĂłbadas, cĂșpulas (Tabelas 13–22)
  • Sec. 6.3 — PressĂŁo interna (Cpi) — mĂ©todo simplificado + detalhado
  • Sec. 6.4 — Efeitos de vizinhança (fᔄ)
  • Sec. 7 — Muros, placas, coberturas isoladas (Tabelas 23–25)
  • Sec. 8 — Barras prismĂĄticas, reticulados, torres (Tabelas 26–30 + Figs 12–18)
  • Sec. 9 — Efeitos dinĂąmicos em estruturas alteadas, conforto humano
  • Sec. 10 — Vibração por desprendimento de vĂłrtices (Vcr, Scruton)
  • Sec. 11 — Ação de vento em pontes (Pse, flutter, galope)
  • Anexos A, B, C — S₂(qualquer t), S₃(Pₘ, vida Ăștil), 49 estaçÔes meteorolĂłgicas

🚀 Stack

  • React 19 + TypeScript + Vite 8
  • Tailwind v4 + shadcn/ui (new-york)
  • Zustand (estado)
  • @react-three/fiber + drei (3D)
  • @react-pdf/renderer (PDF)
  • Vitest (testes) — 38/38 passando

đŸ§Ș Scripts

cd app
npm run dev        # desenvolvimento (HMR)
npm run build      # tsc + vite build
npm run lint       # oxlint
npm test           # vitest run (38 testes)
npm run test:watch # vitest watch

Atenção: Os binårios em node_modules/.bin/ perdem o bit de execução. Se reclamar Permission denied, rode chmod +x node_modules/.bin/<bin> antes.

📁 Estrutura

app/src/
├── lib/
│   ├── wind-kernel.ts          Motor matemático
│   ├── bilinear-interp.ts      Interpolação bilinear (sec. 3.2)
│   ├── log-interp.ts           Interpolação log-linear
│   ├── wind-direction.ts       Mudança de rugosidade (sec. 5.5)
│   ├── internal-pressure.ts    Cpi (sec. 6.3)
│   ├── neighborhood.ts         fᔄ (sec. 6.4)
│   ├── coefficients.ts         Cpe paredes/telhados (Tab. 6-12)
│   ├── excentricity.ts         ea, eb (sec. 6.1.4)
│   ├── friction.ts             Força de atrito (sec. 6.1.5)
│   ├── drag.ts                 Ca baixa/alta turbulĂȘncia (Figs 4-5)
│   ├── comfort.ts              a_lim ISO 10137
│   ├── storage.ts              PersistĂȘncia IndexedDB
│   ├── theme.tsx               Dark/light mode
│   ├── i18n.ts                 Strings pt-BR/en-US
│   ├── stations-lookup.ts      49 estaçÔes Anexo C
│   ├── export-pdf.tsx          PDF didático
│   ├── export-csv.ts           CSV estruturado
│   ├── modules/                Strategy pattern (7 módulos)
│   ├── nbr-tables/             36 tabelas + 3 anexos
│   ├── hooks/useProjects.ts    Hook React
│   └── __tests__/              Vitest (5 suites, 38 testes)
├── components/
│   ├── ui/                     shadcn/ui
│   ├── three/
│   │   ├── Cylinder3D.tsx
│   │   ├── Vault3D.tsx
│   │   └── Dome3D.tsx
│   ├── Warehouse3D.tsx         Galpão com zonas A-J
│   └── ExportMenu.tsx
├── pages/                       10 páginas
├── store/                       Zustand
└── App.tsx                     Rotas + ThemeProvider + Layout

📋 Módulos (páginas ativas)

Rota MĂłdulo Tabelas/Figs
/galpao Galpão retangular com 3D zonas A–J 6, 7
/cilindro Silos, chaminés, reservatórios 13 + Reynolds
/abobada Abóbadas cilíndricas 15–20
/cupula CĂșpulas (terreno/parede) 21, 22 + F sust
/muros Muros e placas retangulares 23
/cobertura-isolada Cob. isoladas (uma e duas ĂĄguas) 24, 25
/barras Barras (faces planas/circulares) 26–28
/pontes Pontes (Pse, Cx/Cz, flutter, galope) 35, 36 + sec. 11
/dinamica Dinñmica + vórtices + conforto 31–34
/settings Tema, persistĂȘncia, estado —

📐 Fórmula central

Vₖ = V₀ · S₁ · S₂ · S₃
q  = 0,613 · VₖÂČ / 1000  [kN/mÂČ]
p  = q · (Cpe − Cpi)      [kN/mÂČ]

đŸ§Ș Testes (38/38 ✅)

npm test

Cobrem:

  • Motor matemĂĄtico (classe, S₂, Vₖ, q, S₃) — 14 testes
  • Interpolação bilinear e log — 5 testes
  • Cpi simplificado + clamp — 9 testes
  • Vizinhança — 4 testes
  • Reynolds + regime de escoamento — 6 testes

đŸ’Ÿ PersistĂȘncia

Projetos salvos em IndexedDB (browser local). ConfiguraçÔes de tema também em localStorage.

🌗 Temas

  • Light, Dark, System (segue prefers-color-scheme)
  • Toggle em /settings

📚 Documentação adicional

🚧 Próximas melhorias (resumo)

ID Item Esforço Impacto
M9.1 Refinar tabelas a partir do PDF real 3 dias Alto
M9.2 Cargas lineares (kN/m) por barra 2 dias Alto
M9.3 Screenshot 3D no PDF 1 dia Médio
M9.4 Export Ftool (.txt) 2 dias Médio
M9.5 Refatoração TypeScript (eliminar void) 1 dia Baixo
M9.6 3D para muros/torres/pontes/barras 3 dias Médio
M9.7 Import JSON de projetos 1 dia Médio
M9.8 i18n completo (en-US) 2 dias Baixo
M9.9 Validação contra Blessmann 2 dias Alto
M9.10 Dark mode em grĂĄficos SVG 0.5 dia Baixo
M9.11 PersistĂȘncia em servidor (especulativo) — —
M9.12 Testes E2E com Playwright 2 dias Médio

Detalhes e contexto em ../PROGRESS.md.


Aviso: Esta ferramenta é auxiliar. O projetista é responsåvel pela validação final dos resultados conforme a NBR 6123:2023 e pela emissão de ART.