Files
anatomia/data-pipeline/scripts/mannequin-asset
Rodrigo Bertoldo de Sousa Martins 85ec49c4f0 fix corpo manequim
Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo@martinsevieira.adv.br>
2026-09-14 22:52:55 -03:00
..
2026-09-14 22:42:46 -03:00
2026-09-14 22:42:46 -03:00
2026-09-14 22:52:55 -03:00

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 https://www.blender.org/download/demo-files/#assets.
  • 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).

# 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