# Boneco realista de Planos Anatômicos `frontend/public/mannequin/body-male-realistic.glb` (usado pelo componente `Mannequin` em `frontend/src/components/viewer/Mannequin.tsx`, exclusivo da página `/planos-anatomicos`) não é um asset do Z-Anatomy — é um corpo humano esculpido de verdade (não geometria procedural tipo caixa/cilindro), mas extraído fora do dataset de anatomia real por dois motivos: (1) o Z-Anatomy é pesado demais pra um boneco decorativo que só serve pra indicar planos/eixos, e (2) essa página nunca precisou de fidelidade anatômica interna (músculos, órgãos) — só de uma silhueta externa correta. ## Fonte e licença - **Origem**: pacote oficial **Human Base Meshes** da Blender Studio (equipe por trás dos "Blender Open Movies"), distribuído gratuitamente em . - **Licença**: CC0 (domínio público) — sem exigência de atribuição, mas citamos a fonte aqui por transparência/manutenção futura. - **Malha usada**: objeto `GEO-body_male_realistic` dentro do bundle v1.4.1 (`human_base_meshes_bundle.blend`), nível 1 do modificador Multires (~42k triângulos antes da otimização final — ver abaixo). ## O que foi alterado A malha original vem numa pose relaxada tipo "A" (braços afastados do corpo em ~20-23°), não em posição anatômica (braços estendidos ao lado do corpo). Como o arquivo não tem armature/rig, a repose foi feita rotacionando os vértices do braço em torno do ombro (ângulo medido a partir da própria malha, não chutado), com uma transição suave (`smoothstep`) na axila pra não deixar costura — ver `repose_and_export.py`. ## Como reproduzir Precisa do Blender (`brew install --cask blender` no macOS, ou o pacote da distro no Linux) e do Node do `data-pipeline` já instalado (`npm install`). ```sh # 1. Baixar o bundle oficial (~50MB) curl -L -o /tmp/human-base-meshes.zip \ "https://mirror.blender.org/demo/asset-bundles/human-base-meshes/human-base-meshes-bundle-v1.4.1.zip" unzip -o /tmp/human-base-meshes.zip -d /tmp/hbm # 2. Reposicionar os braços e exportar o GLB bruto blender --background \ "/tmp/hbm/human-base-meshes-bundle-v1.4.1/human_base_meshes_bundle.blend" \ --python data-pipeline/scripts/mannequin-asset/repose_and_export.py # 3. Otimizar (weld + dedup + quantize + remover UV não usada — sem # textura, a malha usa só uma cor sólida) — reduz de ~3.3MB pra ~1.3MB cd data-pipeline node scripts/mannequin-asset/optimize.mjs # 4. Copiar pro frontend cp /tmp/mannequin-realistic.optimized.glb \ ../frontend/public/mannequin/body-male-realistic.glb ```