From 9f2fe75ff6a73128341ff9090bca0978605101cb Mon Sep 17 00:00:00 2001 From: Rodrigo Bertoldo de Sousa Martins Date: Thu, 10 Sep 2026 19:42:05 -0300 Subject: [PATCH] tegumentar3 --- README.md | 8 +- data-pipeline/package.json | 2 +- data-pipeline/scripts/build-seed-models.mjs | 118 ------ data-pipeline/scripts/geometry.mjs | 146 ------- data-pipeline/seed/build-manifest.mjs | 373 +++++------------- .../public/tegumentar/skin-cross-section.jpg | Bin 0 -> 168282 bytes frontend/src/components/SkinDiagram.tsx | 69 ++++ frontend/src/components/viewer/Scene.tsx | 5 +- .../src/components/viewer/SystemModel.tsx | 7 + frontend/src/data/skinHotspots.ts | 28 ++ frontend/src/routes/AtlasPage.tsx | 2 + 11 files changed, 221 insertions(+), 537 deletions(-) delete mode 100644 data-pipeline/scripts/build-seed-models.mjs delete mode 100644 data-pipeline/scripts/geometry.mjs create mode 100644 frontend/public/tegumentar/skin-cross-section.jpg create mode 100644 frontend/src/components/SkinDiagram.tsx create mode 100644 frontend/src/data/skinHotspots.ts diff --git a/README.md b/README.md index 8e78834..fe076a3 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ O pipeline (`data-pipeline/`) baixa os `.fbx` reais, converte para `.glb` via `a **Tradução dos nomes**: como isso é uma ferramenta de estudo para prova, uma tradução errada de termo médico é pior do que nenhuma tradução — por isso só traduzimos para PT-BR quando o nome bate exatamente com um dicionário curado (`data-pipeline/scripts/translate-pt.mjs`, ~120 termos comuns). Estruturas fora desse dicionário aparecem com o nome original em inglês/latim, que também é nomenclatura anatômica padrão usada no ensino de anatomia. -**O que não veio do Z-Anatomy-Sample**: a amostra pública não inclui camadas de pele — por isso o sistema **tegumentar** continua usando geometria esquemática simples (`data-pipeline/seed/build-manifest.mjs`), como um placeholder claramente sinalizado. Também não importamos (ainda) os arquivos "Regions of human body" e "Reference lines, planes and movements" do mesmo repositório — dá para adicionar depois seguindo o mesmo padrão em `data-pipeline/scripts/sources.mjs`. +**O que não veio do Z-Anatomy-Sample**: a amostra pública não inclui camadas de pele (confirmado consultando a listagem completa do repositório). Duas tentativas de bloco 3D esquemático (geometria procedural) pro sistema **tegumentar** não ficaram boas o bastante pra estudo, então ele agora é um diagrama 2D clássico com pontos clicáveis (imagem de domínio público, NCI/SEER Training Modules) — ver `data-pipeline/seed/build-manifest.mjs` (dados das estruturas), `frontend/src/data/skinHotspots.ts` (posição dos marcadores sobre a imagem) e `frontend/src/components/SkinDiagram.tsx`. ## Arquitetura @@ -87,15 +87,17 @@ Depois `docker compose up -d --build anatomia-db anatomia-api anatomia-web && do ## Expandindo o dataset -1. **Mais arquivos do Z-Anatomy-Sample** (ex: "Regions of human body", "Reference lines, planes and movements"): adicione a entrada em `data-pipeline/scripts/sources.mjs` (`SOURCES` + `SOURCE_TARGETS`), rode o pipeline de novo. +1. **Mais arquivos do Z-Anatomy-Sample**: adicione a entrada em `data-pipeline/scripts/sources.mjs` (`SOURCES` + `SOURCE_TARGETS`), rode o pipeline de novo. 2. **Melhorar a tradução PT-BR**: acrescente entradas em `data-pipeline/scripts/translate-pt.mjs` (`EXACT_PT`) — é correspondência exata de propósito, para não arriscar tradução errada de termo médico. -3. **Sistema tegumentar com malha real**: se aparecer uma fonte aberta com camadas de pele, substitua a geração esquemática em `data-pipeline/seed/build-manifest.mjs` pelo mesmo padrão de extração usado em `scripts/extract-manifest.mjs`. +3. **Sistema tegumentar com malha 3D real**: se aparecer uma fonte aberta (sem exigir conta/token pra baixar) com camadas de pele, dá pra trocar o diagrama 2D atual (`SkinDiagram.tsx`) por um modelo real seguindo o mesmo padrão de extração usado em `scripts/extract-manifest.mjs`. 4. **Novos sistemas anatômicos**: adicione em `data-pipeline/seed/systems.mjs` — o schema (`backend/prisma/schema.prisma`) já suporta qualquer sistema sem mudar código. ## Créditos Modelos 3D derivados do projeto **Z-Anatomy** (github.com/LluisV/Z-Anatomy-Sample), com base no dataset BodyParts3D/FMA (Database Center for Life Science, Universidade de Tóquio) — licença **CC BY-SA 4.0**. As malhas foram convertidas de FBX para glTF e recoloridas por sistema anatômico para este atlas. +Diagrama do sistema tegumentar (corte de pele): **National Cancer Institute / SEER Training Modules** (training.seer.cancer.gov) — obra do governo dos EUA, domínio público. + ## Desenvolvimento local (sem Docker) ```bash diff --git a/data-pipeline/package.json b/data-pipeline/package.json index 42618a7..709f0c7 100644 --- a/data-pipeline/package.json +++ b/data-pipeline/package.json @@ -7,7 +7,7 @@ "fetch:models": "node scripts/fetch-real-models.mjs", "convert:models": "node scripts/convert-fbx.mjs", "extract:manifest": "node scripts/extract-manifest.mjs", - "build:tegumentar": "node seed/build-manifest.mjs && node scripts/build-seed-models.mjs", + "build:tegumentar": "node seed/build-manifest.mjs", "merge:manifest": "node scripts/merge-manifests.mjs", "seed:db": "node scripts/seed-db.mjs", "run:all": "npm run fetch:models && npm run convert:models && npm run extract:manifest && npm run build:tegumentar && npm run merge:manifest && npm run seed:db" diff --git a/data-pipeline/scripts/build-seed-models.mjs b/data-pipeline/scripts/build-seed-models.mjs deleted file mode 100644 index 816293a..0000000 --- a/data-pipeline/scripts/build-seed-models.mjs +++ /dev/null @@ -1,118 +0,0 @@ -import { Document, NodeIO } from "@gltf-transform/core"; -import { readFileSync, mkdirSync } from "node:fs"; -import path from "node:path"; -import { fileURLToPath } from "node:url"; -import { buildGeometry } from "./geometry.mjs"; - -const __dirname = path.dirname(fileURLToPath(import.meta.url)); -const manifestPath = path.resolve( - __dirname, - process.argv[2] ?? "../seed/manifest-tegumentar.json", -); -const outDir = path.resolve(__dirname, "../seed/models"); -mkdirSync(outDir, { recursive: true }); - -const { structures } = JSON.parse(readFileSync(manifestPath, "utf-8")); - -function eulerToQuat([x, y, z]) { - const cx = Math.cos(x / 2), sx = Math.sin(x / 2); - const cy = Math.cos(y / 2), sy = Math.sin(y / 2); - const cz = Math.cos(z / 2), sz = Math.sin(z / 2); - return [ - sx * cy * cz - cx * sy * sz, - cx * sy * cz + sx * cy * sz, - cx * cy * sz - sx * sy * cz, - cx * cy * cz + sx * sy * sz, - ]; -} - -function hexToRgb(hex) { - const n = parseInt(hex.replace("#", ""), 16); - return [((n >> 16) & 255) / 255, ((n >> 8) & 255) / 255, (n & 255) / 255, 1]; -} - -const bySystem = new Map(); -for (const s of structures) { - if (!bySystem.has(s.system)) bySystem.set(s.system, []); - bySystem.get(s.system).push(s); -} - -const systemColors = { - esqueletico: "#e8e2d0", - muscular: "#b5433a", - nervoso: "#f2c14e", - cardiovascular: "#c1121f", - respiratorio: "#4f7cff", - tegumentar: "#e0a96d", -}; - -for (const [systemSlug, items] of bySystem) { - const doc = new Document(); - const buffer = doc.createBuffer(); - const scene = doc.createScene(systemSlug); - doc.getRoot().setDefaultScene(scene); - - // Cada item pode pedir uma cor própria (opts.color) pra se distinguir dos - // demais (ex: glândula amarela, vaso vermelho/azul, pelo castanho) em vez - // de todo o sistema sair de uma cor só — cache por hex evita recriar - // material repetido. - const materialCache = new Map(); - function materialFor(hex) { - if (materialCache.has(hex)) return materialCache.get(hex); - const mat = doc - .createMaterial(hex) - .setBaseColorFactor(hexToRgb(hex)) - .setRoughnessFactor(0.6) - .setMetallicFactor(0.05) - // O bloco de pele usa caixas com a face da frente removida (ver - // openFrontBox em geometry.mjs) pra dar pra ver o conteúdo por - // dentro — sem dupla face, as paredes de trás/lados ficariam - // invisíveis quando vistas "de dentro" da caixa aberta. - .setDoubleSided(true); - materialCache.set(hex, mat); - return mat; - } - const defaultHex = systemColors[systemSlug] ?? "#cccccc"; - - for (const item of items) { - const material = materialFor(item.color ?? defaultHex); - const geo = buildGeometry(item.shape); - const posAccessor = doc - .createAccessor() - .setType("VEC3") - .setArray(geo.positions) - .setBuffer(buffer); - const normAccessor = doc - .createAccessor() - .setType("VEC3") - .setArray(geo.normals) - .setBuffer(buffer); - const idxAccessor = doc - .createAccessor() - .setType("SCALAR") - .setArray(geo.indices) - .setBuffer(buffer); - - const prim = doc - .createPrimitive() - .setAttribute("POSITION", posAccessor) - .setAttribute("NORMAL", normAccessor) - .setIndices(idxAccessor) - .setMaterial(material); - - const mesh = doc.createMesh(item.meshName).addPrimitive(prim); - const node = doc - .createNode(item.meshName) - .setMesh(mesh) - .setTranslation(item.position) - .setRotation(eulerToQuat(item.rotation ?? [0, 0, 0])) - .setExtras({ slug: item.slug }); - - scene.addChild(node); - } - - const io = new NodeIO(); - const outFile = path.join(outDir, `${systemSlug}.glb`); - await io.write(outFile, doc); - console.log(`✓ ${outFile} (${items.length} estruturas)`); -} diff --git a/data-pipeline/scripts/geometry.mjs b/data-pipeline/scripts/geometry.mjs deleted file mode 100644 index dc63268..0000000 --- a/data-pipeline/scripts/geometry.mjs +++ /dev/null @@ -1,146 +0,0 @@ -// Minimal parametric mesh generators (box/sphere/cylinder), dependency-free. -// Returns { positions: Float32Array, normals: Float32Array, indices: Uint32Array }. - -// skipNormals: normais (como "0,-1,0") das faces a NÃO gerar — usado pelo -// bloco de pele em corte (openFrontBox abaixo) pra deixar a face da frente -// aberta, como uma caixa de diorama, revelando o conteúdo interno em vez de -// escondê-lo atrás de uma parede opaca. -export function box(w, h, d, skipNormals = []) { - const x = w / 2, y = h / 2, z = d / 2; - const positions = []; - const normals = []; - const indices = []; - - const faces = [ - // [normal, 4 corners CCW] - [[0, 0, 1], [[-x, -y, z], [x, -y, z], [x, y, z], [-x, y, z]]], - [[0, 0, -1], [[x, -y, -z], [-x, -y, -z], [-x, y, -z], [x, y, -z]]], - [[0, 1, 0], [[-x, y, z], [x, y, z], [x, y, -z], [-x, y, -z]]], - [[0, -1, 0], [[-x, -y, -z], [x, -y, -z], [x, -y, z], [-x, -y, z]]], - [[1, 0, 0], [[x, -y, z], [x, -y, -z], [x, y, -z], [x, y, z]]], - [[-1, 0, 0], [[-x, -y, -z], [-x, -y, z], [-x, y, z], [-x, y, -z]]], - ]; - - const skip = new Set(skipNormals.map((n) => n.join(","))); - - for (const [n, corners] of faces) { - if (skip.has(n.join(","))) continue; - const base = positions.length / 3; - for (const c of corners) { - positions.push(...c); - normals.push(...n); - } - indices.push(base, base + 1, base + 2, base, base + 2, base + 3); - } - - return { - positions: new Float32Array(positions), - normals: new Float32Array(normals), - indices: new Uint32Array(indices), - }; -} - -// Caixa "de diorama": todas as faces normais, exceto a de baixo em Y -// (nosso eixo "frente/trás" no bloco de pele) — deixa a frente aberta pra -// dar pra ver o conteúdo (folículos, glândulas, vasos) por dentro, em vez -// de uma parede opaca escondendo tudo. -export function openFrontBox(w, h, d) { - return box(w, h, d, [[0, -1, 0]]); -} - -export function sphere(radius, widthSegments = 16, heightSegments = 12) { - const positions = []; - const normals = []; - const indices = []; - - for (let y = 0; y <= heightSegments; y++) { - const v = y / heightSegments; - const theta = v * Math.PI; - for (let x = 0; x <= widthSegments; x++) { - const u = x / widthSegments; - const phi = u * Math.PI * 2; - const nx = -Math.cos(phi) * Math.sin(theta); - const ny = Math.cos(theta); - const nz = Math.sin(phi) * Math.sin(theta); - positions.push(radius * nx, radius * ny, radius * nz); - normals.push(nx, ny, nz); - } - } - - const rowSize = widthSegments + 1; - for (let y = 0; y < heightSegments; y++) { - for (let x = 0; x < widthSegments; x++) { - const a = y * rowSize + x; - const b = a + rowSize; - indices.push(a, b, a + 1, b, b + 1, a + 1); - } - } - - return { - positions: new Float32Array(positions), - normals: new Float32Array(normals), - indices: new Uint32Array(indices), - }; -} - -export function cylinder(radiusTop, radiusBottom, height, radialSegments = 12) { - const positions = []; - const normals = []; - const indices = []; - const halfH = height / 2; - - // Side wall. - for (let y = 0; y <= 1; y++) { - const r = y === 0 ? radiusTop : radiusBottom; - const py = y === 0 ? halfH : -halfH; - for (let x = 0; x <= radialSegments; x++) { - const u = (x / radialSegments) * Math.PI * 2; - const nx = Math.sin(u); - const nz = Math.cos(u); - positions.push(r * nx, py, r * nz); - const slope = (radiusBottom - radiusTop) / height; - const len = Math.sqrt(1 + slope * slope); - normals.push(nx / len, -slope / len, nz / len); - } - } - const rowSize = radialSegments + 1; - for (let x = 0; x < radialSegments; x++) { - const a = x, b = a + rowSize; - indices.push(a, b, a + 1, b, b + 1, a + 1); - } - - // Caps. - function cap(y, r, py, flip) { - const base = positions.length / 3; - const ny = flip ? 1 : -1; - positions.push(0, py, 0); - normals.push(0, ny, 0); - for (let x = 0; x <= radialSegments; x++) { - const u = (x / radialSegments) * Math.PI * 2; - positions.push(r * Math.sin(u), py, r * Math.cos(u)); - normals.push(0, ny, 0); - } - for (let x = 0; x < radialSegments; x++) { - if (flip) indices.push(base, base + x + 2, base + x + 1); - else indices.push(base, base + x + 1, base + x + 2); - } - } - if (radiusTop > 0) cap(0, radiusTop, halfH, true); - if (radiusBottom > 0) cap(1, radiusBottom, -halfH, false); - - return { - positions: new Float32Array(positions), - normals: new Float32Array(normals), - indices: new Uint32Array(indices), - }; -} - -export function buildGeometry(shape) { - switch (shape.type) { - case "box": return box(shape.w, shape.h, shape.d); - case "openFrontBox": return openFrontBox(shape.w, shape.h, shape.d); - case "sphere": return sphere(shape.r); - case "cylinder": return cylinder(shape.rt, shape.rb, shape.h); - default: throw new Error(`Unknown shape type: ${shape.type}`); - } -} diff --git a/data-pipeline/seed/build-manifest.mjs b/data-pipeline/seed/build-manifest.mjs index 26447e3..2b8c887 100644 --- a/data-pipeline/seed/build-manifest.mjs +++ b/data-pipeline/seed/build-manifest.mjs @@ -1,24 +1,28 @@ -// Gera manifest-tegumentar.json: o Z-Anatomy-Sample não inclui camadas de -// pele (epiderme/derme/hipoderme) nem seus anexos (folículo piloso, glândulas -// etc.) — confirmado consultando a listagem completa de -// Assets/Models/1.0 Models no repositório (só Skeletal, Muscular, Nervous, -// CardioVascular, Visceral, Joints, LymphoidOrgans, Regions e Reference -// lines) — são estruturas microscópicas, nenhum dataset de corpo inteiro as -// modela como malha. Por isso o sistema tegumentar (só ele — os demais -// sistemas continuam vindo de malhas reais via scripts/extract-manifest.mjs, -// sem nenhuma mudança) usa um "bloco" esquemático construído com geometria -// paramétrica simples (ver scripts/geometry.mjs e scripts/build-seed-models.mjs, -// também exclusivos do tegumentar — só o script "build:tegumentar" os chama). +// Gera manifest-tegumentar.json. // -// MODELO "DIORAMA": uma caixa sólida (as 3 camadas empilhadas, cada uma uma -// openFrontBox — ver geometry.mjs) com a face da frente removida, como uma -// caixa de vidro sem uma parede, no estilo do desenho clássico de corte de -// pele (Netter/Sobotta): de cima dá pra ver a superfície da epiderme com os -// pelos saindo; do lado dá pra ver a "banda" de cor de cada camada; e pela -// frente aberta dá pra ver os componentes (folículos, glândulas, vasos, -// corpúsculos) soltos dentro do volume da derme/hipoderme, sem nada opaco -// na frente escondendo-os. Gire o modelo com o mouse pra explorar de vários -// ângulos. +// HISTÓRICO: tentamos duas vezes um bloco 3D esquemático (geometria +// procedural — caixas/esferas/cilindros) pro sistema tegumentar, já que o +// Z-Anatomy-Sample não tem nenhum dado de pele (confirmado consultando a +// listagem completa de Assets/Models/1.0 Models: só Skeletal, Muscular, +// Nervous, CardioVascular, Visceral, Joints, LymphoidOrgans, Regions e +// Reference lines). Nenhuma das duas ficou boa o suficiente pra estudo. +// +// DECISÃO ATUAL: em vez de insistir num modelo 3D (que exigiria ou uma +// malha real licenciada — ex: Sketchfab, mas isso pede conta/token de API, +// uma dependência externa nova — ou continuar no procedural, já reprovado), +// o tegumentar agora é um DIAGRAMA 2D com pontos clicáveis (hotspots), como +// a ilustração clássica de corte de pele. A imagem usada é de domínio +// público (obra do governo dos EUA — National Cancer Institute / SEER +// Training Modules, https://training.seer.cancer.gov/melanoma/anatomy/), +// salva em frontend/public/tegumentar/skin-cross-section.jpg. Sem +// restrição de uso — não precisa nem de atribuição, mas mantemos por boa +// prática (ver frontend/src/components/SkinDiagram.tsx). +// +// As posições dos hotspots (x/y em % da imagem) ficam em +// frontend/src/data/skinHotspots.ts, não aqui — são um detalhe de +// apresentação (onde desenhar o marcador em cima da figura), enquanto este +// arquivo só gera os DADOS da estrutura (nome, descrição) que entram no +// banco, do mesmo jeito que qualquer outra estrutura do atlas. import { writeFileSync } from "node:fs"; import { fileURLToPath } from "node:url"; import path from "node:path"; @@ -27,288 +31,121 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url)); const structures = []; -// Todo o desenho abaixo é escrito em "unidades de projeto" (a escala -// original, pensada peça por peça) e só na hora de gerar a estrutura final -// o add() aplica o fator SCALE — assim dá pra aumentar/diminuir o bloco -// inteiro mudando um único número, sem recalcular à mão a posição de cada -// uma das peças. -const SCALE = 3; - -function scaleShape(shape) { - const scaled = { ...shape }; - for (const key of ["w", "h", "d", "r", "rt", "rb"]) { - if (scaled[key] != null) scaled[key] *= SCALE; - } - return scaled; -} - -// Escala a posição em torno da âncora do bloco (CX, CY, Z_TOP) — assim o -// bloco cresce a partir do ponto onde "gruda" no antebraço, em vez de só se -// afastar dele. -function scalePosition([x, y, z]) { - return [CX + (x - CX) * SCALE, CY + (y - CY) * SCALE, Z_TOP - (Z_TOP - z) * SCALE]; -} - -function add(system, slug, namePt, nameEn, region, shape, position, opts = {}) { +// modelFile/meshName são NOT NULL no schema mas não fazem sentido pro +// tegumentar (não há malha 3D) — o frontend nunca tenta carregar um glb +// pra esse sistema (ver o filtro em Scene.tsx), então usamos um valor- +// sentinela só pra satisfazer o schema. +function add(slug, namePt, nameEn, description, region = []) { structures.push({ - system, + system: "tegumentar", slug, namePt, nameEn, - synonyms: opts.synonyms ?? [], - description: opts.description ?? "", - regionPath: region, - modelFile: `${system}.glb`, + synonyms: [], + description, + regionPath: ["Sistema Tegumentar", "Corte Transversal da Pele", ...region], + modelFile: "n/a", meshName: slug, - shape: scaleShape(shape), - position: scalePosition(position), - rotation: opts.rotation ?? [0, 0, 0], - color: opts.color, }); } -const TX = ["Sistema Tegumentar", "Corte Transversal da Pele (Diorama)"]; - -// Centro/âncora do bloco (coordenadas do mundo, mesma escala do corpo -// Z-Anatomy — colado na face do antebraço, como antes). -const CX = 0.24; -const CY = 0.85; - -const BLOCK_W = 0.14; // extensão em X (largura do bloco) -const Y_DEPTH = 0.12; // profundidade em Y (frente-trás) — a mesma pras 3 camadas -const Y_FRONT = CY - Y_DEPTH / 2; // onde fica a abertura (face removida) - -// Espessura (eixo Z) de cada camada e a profundidade onde cada uma começa/ -// termina — definidas uma vez aqui pra tudo (camadas E componentes) usar os -// mesmos números e não desalinhar. Proporções exageradas (derme/hipoderme -// bem mais grossas que na realidade) de propósito, pra caber e destacar os -// componentes — como em qualquer diagrama didático de pele. -const Z_TOP = 0.038; // superfície da epiderme -const D_EPI = 0.012; -const D_DERME = 0.035; -const D_HIPO = 0.053; -const Z_EPI_BOTTOM = Z_TOP - D_EPI; // limite epiderme/derme -const Z_DERME_BOTTOM = Z_EPI_BOTTOM - D_DERME; // limite derme/hipoderme -const Z_HIPO_BOTTOM = Z_DERME_BOTTOM - D_HIPO; // base do bloco - -const ROT_Z = [Math.PI / 2, 0, 0]; // deixa cilindros na vertical (eixo nasce em Y, isso gira pra Z) - -// ---- As 3 camadas da pele, como uma caixa de diorama (frente aberta) ---- add( - "tegumentar", "epiderme", "Epiderme", "Epidermis", [...TX], - { type: "openFrontBox", w: BLOCK_W, h: Y_DEPTH, d: D_EPI }, - [CX, CY, Z_TOP - D_EPI / 2], - { - color: "#e0a96d", - description: - "Camada mais externa e avascular da pele, formada por epitélio pavimentoso estratificado queratinizado; sua função é a principal barreira contra perda de água, atrito, micro-organismos e raios UV (com a ajuda da melanina). É a face de cima do bloco, de onde saem os pelos.", - }, + "epiderme", "Epiderme", "Epidermis", + "Camada mais externa e avascular da pele, formada por epitélio pavimentoso estratificado queratinizado; principal barreira contra perda de água, atrito, micro-organismos e raios UV.", ); add( - "tegumentar", "derme", "Derme", "Dermis", [...TX], - { type: "openFrontBox", w: BLOCK_W, h: Y_DEPTH, d: D_DERME }, - [CX, CY, Z_EPI_BOTTOM - D_DERME / 2], - { - color: "#c97b4a", - description: - "Camada de tecido conjuntivo rica em colágeno e elastina, vasos sanguíneos, terminações nervosas e os anexos cutâneos (folículos pilosos, glândulas); sustenta a epiderme e dá à pele resistência e elasticidade. Visível como a faixa do meio no lado do bloco.", - }, + "derme", "Derme", "Dermis", + "Camada de tecido conjuntivo abaixo da epiderme, rica em colágeno e elastina, vasos sanguíneos, nervos e os anexos cutâneos (folículos pilosos, glândulas); dá à pele resistência e elasticidade.", ); add( - "tegumentar", "hipoderme", "Hipoderme (Tecido Subcutâneo)", "Hypodermis (Subcutaneous Tissue)", [...TX], - { type: "openFrontBox", w: BLOCK_W, h: Y_DEPTH, d: D_HIPO }, - [CX, CY, Z_DERME_BOTTOM - D_HIPO / 2], - { - color: "#f2d4a3", - description: - "Camada mais profunda, rica em tecido adiposo; isola termicamente, absorve impactos e serve de reserva de energia — não é tecnicamente parte da pele, mas a conecta aos músculos e ossos subjacentes. É a faixa mais grossa, na base do bloco.", - }, -); - -// ---- 6 "colunas" de componentes, cada uma numa posição X própria, dentro -// do volume aberto do bloco — a altura (Z) de cada peça já indica em qual -// camada ela vive; um leve desvio em Y dá sensação de profundidade. ---- -const COL = (i) => CX - 0.06 + i * 0.024; // 6 colunas igualmente espaçadas - -// ---- Coluna 1: complexo pilossebáceo (pelo + folículo + músculo eretor + glândula sebácea) ---- -const HX = COL(0); -const HY = CY - 0.02; -const HAIR_TILT = [Math.PI / 2 + 0.3, 0.2, 0]; - -add( - "tegumentar", "pelo", "Pelo (Haste Capilar)", "Hair Shaft", [...TX, "Complexo Pilossebáceo"], - { type: "cylinder", rt: 0.0006, rb: 0.001, h: 0.02 }, [HX, HY, Z_TOP + 0.01], - { - color: "#4a3527", - rotation: HAIR_TILT, - description: - "Porção do pelo visível acima da superfície da pele, formada por células queratinizadas mortas; sua cor vem da melanina produzida no bulbo piloso.", - }, + "hipoderme", "Hipoderme (Subcútis)", "Subcutis (Hypodermis)", + "Camada mais profunda, rica em tecido adiposo; isola termicamente, absorve impactos e serve de reserva de energia — não é tecnicamente parte da pele, mas a conecta aos músculos e ossos subjacentes.", ); add( - "tegumentar", "foliculo-piloso", "Folículo Piloso", "Hair Follicle", [...TX, "Complexo Pilossebáceo"], - { type: "cylinder", rt: 0.0022, rb: 0.0022, h: 0.058 }, [HX, HY, 0.009], - { - color: "#8a6a52", - rotation: HAIR_TILT, - description: - "Invaginação da epiderme para dentro da derme/hipoderme que envolve e forma a raiz do pelo; suas células-tronco também participam da regeneração da epiderme após lesões.", - }, + "estrato-corneo", "Estrato Córneo", "Stratum Corneum", + "Camada mais superficial da epiderme, formada por células mortas cheias de queratina que se descamam continuamente; é a barreira física final contra o ambiente.", + ["Epiderme"], ); add( - "tegumentar", "bulbo-piloso", "Bulbo Piloso", "Hair Bulb", [...TX, "Complexo Pilossebáceo"], - { type: "sphere", r: 0.004 }, [HX - 0.005, HY, -0.02], - { - color: "#6b4c38", - description: - "Base dilatada do folículo, na hipoderme; contém a papila dérmica (com vasos que nutrem o pelo) e a matriz germinativa, onde o pelo é produzido por divisão celular.", - }, + "camada-pigmentar", "Camada Pigmentar", "Pigment Layer", + "Região da epiderme onde os melanócitos depositam melanina nas células vizinhas, dando à pele sua cor e protegendo o DNA celular da radiação UV.", + ["Epiderme"], ); add( - "tegumentar", "musculo-eretor-do-pelo", "Músculo Eretor do Pelo", "Arrector Pili Muscle", [...TX, "Complexo Pilossebáceo"], - { type: "box", w: 0.0012, h: 0.014, d: 0.003 }, [HX + 0.005, HY, 0.017], - { - color: "#b5433a", - rotation: [1.05, 0, 0], - description: - "Pequeno músculo liso ligado obliquamente ao folículo; ao se contrair (frio, medo), eleva o pelo e comprime a glândula sebácea — é o responsável pela pele arrepiada (piloereção).", - }, + "estrato-germinativo", "Estrato Germinativo (Basal + Espinhoso)", "Stratum Germinativum (Basale + Spinosum)", + "Camadas mais profundas da epiderme (estrato basal + estrato espinhoso), onde as células-tronco se dividem continuamente para repor as células que se perdem na superfície.", + ["Epiderme"], ); add( - "tegumentar", "glandula-sebacea", "Glândula Sebácea", "Sebaceous Gland", [...TX, "Complexo Pilossebáceo"], - { type: "sphere", r: 0.005 }, [HX + 0.008, HY, 0.022], - { - color: "#f2c14e", - description: - "Glândula anexa ao folículo piloso que secreta sebo — mistura oleosa que lubrifica o pelo e a pele e ajuda a impermeabilizá-la; sua obstrução está por trás da acne.", - }, -); - -// ---- Fios de pelo extras, só decorativos (mesma descrição do "pelo"), pra -// a superfície do bloco não ficar com um pelo solitário — no desenho de -// referência vários pelos saem da epiderme ao mesmo tempo. ---- -const EXTRA_HAIRS = [ - [COL(1) + 0.01, CY - 0.03], - [COL(2) - 0.008, CY - 0.015], - [COL(4) + 0.006, CY - 0.025], -]; -EXTRA_HAIRS.forEach(([x, y], i) => { - add( - "tegumentar", `pelo-extra-${i + 1}`, "Pelo (Haste Capilar)", "Hair Shaft", - [...TX, "Complexo Pilossebáceo"], - { type: "cylinder", rt: 0.0006, rb: 0.001, h: 0.02 }, [x, y, Z_TOP + 0.01], - { - color: "#4a3527", - rotation: [Math.PI / 2 + (i - 1) * 0.15, 0.15, 0], - description: - "Porção do pelo visível acima da superfície da pele, formada por células queratinizadas mortas; sua cor vem da melanina produzida no bulbo piloso.", - }, - ); -}); - -// ---- Coluna 2: glândula sudorípara (écrina) + ducto + poro ---- -const SX = COL(1); -const SY = CY; -add( - "tegumentar", "glandula-sudoripara", "Glândula Sudorípara (Écrina)", "Eccrine Sweat Gland", [...TX, "Glândula Sudorípara"], - { type: "sphere", r: 0.006 }, [SX, SY, -0.045], - { - color: "#4f7cff", - description: - "Porção secretora enovelada, na derme profunda/hipoderme; produz o suor (água + eletrólitos), principal mecanismo de termorregulação do corpo por evaporação.", - }, + "papila-dermica", "Papila Dérmica", "Dermal Papilla", + "Projeção da derme para dentro da epiderme, aumentando a área de contato entre as duas camadas e alojando as alças capilares que nutrem a epiderme (que não tem vasos próprios).", + ["Derme"], ); add( - "tegumentar", "ducto-sudoriparo", "Ducto Sudoríparo", "Sweat Duct", [...TX, "Glândula Sudorípara"], - { type: "cylinder", rt: 0.0012, rb: 0.0012, h: 0.083 }, [SX, SY, -0.0035], - { - color: "#7ba6ff", - rotation: ROT_Z, - description: - "Canal que conduz o suor da glândula, atravessando a derme e a epiderme, até a superfície da pele.", - }, + "pelo", "Pelo (Haste Capilar)", "Hair Shaft", + "Porção do pelo visível acima da superfície da pele, formada por células queratinizadas mortas; sua cor vem da melanina produzida na papila do pelo.", + ["Complexo Pilossebáceo"], ); add( - "tegumentar", "poro-sudoriparo", "Poro Sudoríparo", "Sweat Pore", [...TX, "Glândula Sudorípara"], - { type: "sphere", r: 0.0012 }, [SX, SY, Z_TOP + 0.0005], - { - color: "#a9c6ff", - description: "Abertura do ducto sudoríparo na superfície da epiderme, por onde o suor é liberado.", - }, -); - -// ---- Coluna 3: plexo vascular dérmico ---- -const VX = COL(2); -const VY = CY - 0.01; -add( - "tegumentar", "arteriola-dermica", "Arteríola Dérmica", "Dermal Arteriole", [...TX, "Plexo Vascular Dérmico"], - { type: "cylinder", rt: 0.0012, rb: 0.0012, h: 0.02 }, [VX - 0.005, VY, 0.008], - { - color: "#c1121f", - rotation: ROT_Z, - description: "Ramo arterial que leva sangue oxigenado ao plexo de capilares da derme, nutrindo a pele (a epiderme em si não tem vasos).", - }, + "foliculo-piloso", "Folículo Piloso", "Hair Follicle", + "Invaginação da epiderme para dentro da derme/hipoderme que envolve e forma a raiz do pelo; suas células-tronco também participam da regeneração da epiderme após lesões.", + ["Complexo Pilossebáceo"], ); add( - "tegumentar", "venula-dermica", "Vênula Dérmica", "Dermal Venule", [...TX, "Plexo Vascular Dérmico"], - { type: "cylinder", rt: 0.0012, rb: 0.0012, h: 0.02 }, [VX + 0.005, VY, 0.008], - { - color: "#3457d5", - rotation: ROT_Z, - description: "Ramo venoso que drena o sangue do plexo capilar dérmico de volta à circulação.", - }, + "papila-do-pelo", "Papila do Pelo", "Papilla of Hair", + "Estrutura na base do folículo, rica em vasos sanguíneos, que nutre a matriz germinativa responsável por produzir o pelo.", + ["Complexo Pilossebáceo"], ); add( - "tegumentar", "alca-capilar-dermica", "Alça Capilar Dérmica", "Dermal Capillary Loop", [...TX, "Plexo Vascular Dérmico"], - { type: "cylinder", rt: 0.0006, rb: 0.0006, h: 0.012 }, [VX, VY, 0.024], - { - color: "#e0464f", - rotation: ROT_Z, - description: "Alça de capilares que sobe até as papilas dérmicas, logo abaixo da epiderme, levando nutrientes e oxigênio para a base da epiderme por difusão.", - }, + "musculo-eretor-do-pelo", "Músculo Eretor do Pelo", "Arrector Pili Muscle", + "Pequeno músculo liso ligado obliquamente ao folículo; ao se contrair (frio, medo), eleva o pelo e comprime a glândula sebácea — é o responsável pela pele arrepiada (piloereção).", + ["Complexo Pilossebáceo"], ); - -// ---- Coluna 4: corpúsculo de Meissner (toque leve) ---- add( - "tegumentar", "corpusculo-de-meissner", "Corpúsculo de Meissner", "Meissner's Corpuscle", [...TX, "Receptores Sensoriais"], - { type: "sphere", r: 0.003 }, [COL(3), CY - 0.015, 0.024], - { - color: "#34d399", - description: - "Receptor sensorial encapsulado logo abaixo da epiderme; detecta toque leve e vibrações de baixa frequência — muito numeroso na ponta dos dedos e nos lábios.", - }, + "glandula-sebacea", "Glândula Sebácea", "Sebaceous Gland", + "Glândula anexa ao folículo piloso que secreta sebo — mistura oleosa que lubrifica o pelo e a pele e ajuda a impermeabilizá-la; sua obstrução está por trás da acne.", + ["Complexo Pilossebáceo"], ); - -// ---- Coluna 5: corpúsculo de Pacini (pressão profunda) ---- add( - "tegumentar", "corpusculo-de-pacini", "Corpúsculo de Pacini", "Pacinian Corpuscle", [...TX, "Receptores Sensoriais"], - { type: "sphere", r: 0.008 }, [COL(4), CY + 0.02, -0.045], - { - color: "#22d3ee", - description: - "Grande receptor sensorial encapsulado em camadas (como uma cebola), na hipoderme; detecta pressão profunda e vibrações de alta frequência.", - }, + "glandula-sudoripara", "Glândula Sudorípara (Écrina)", "Eccrine Sweat Gland", + "Porção secretora enovelada, na derme profunda/hipoderme; produz o suor (água + eletrólitos), principal mecanismo de termorregulação do corpo por evaporação.", + ["Glândula Sudorípara"], +); +add( + "poro-sudoriparo", "Poro Sudoríparo", "Sweat Pore", + "Abertura do ducto da glândula sudorípara na superfície da epiderme, por onde o suor é liberado.", + ["Glândula Sudorípara"], +); +add( + "fibra-nervosa", "Fibra Nervosa", "Nerve Fiber", + "Prolongamento de neurônio que percorre a derme levando informação sensorial (toque, dor, temperatura) captada na pele até o sistema nervoso central.", + ["Inervação da Pele"], +); +add( + "terminacao-nervosa-tato", "Terminação Nervosa Sensorial (Tato)", "Sensory Nerve Ending for Touch", + "Receptor sensorial na junção derme-epiderme que detecta toque leve — muito numeroso na ponta dos dedos e nos lábios (tipo Meissner).", + ["Inervação da Pele"], +); +add( + "corpusculo-de-pacini", "Corpúsculo de Pacini", "Pacinian Corpuscle", + "Grande receptor sensorial encapsulado em camadas (como uma cebola), na hipoderme; detecta pressão profunda e vibrações de alta frequência.", + ["Inervação da Pele"], +); +add( + "vasos-sanguineos-linfaticos", "Vasos Sanguíneos e Linfáticos", "Blood and Lymph Vessels", + "Rede de vasos na derme que nutre a pele (a epiderme em si não tem vasos), participa da termorregulação e drena o excesso de líquido tecidual.", + ["Vascularização da Pele"], +); +add( + "arteria", "Artéria (Ramo Cutâneo)", "Artery (Cutaneous Branch)", + "Ramo arterial que entra na derme profunda e alimenta o plexo de vasos que nutre a pele.", + ["Vascularização da Pele"], +); +add( + "veia", "Veia (Ramo Cutâneo)", "Vein (Cutaneous Branch)", + "Ramo venoso que drena o sangue do plexo vascular da pele de volta à circulação.", + ["Vascularização da Pele"], ); - -// ---- Coluna 6: lóbulos de tecido adiposo, espalhados pela hipoderme ---- -const FX = COL(5); -const FY = CY + 0.01; -const FAT_OFFSETS = [ - [0, -0.02], [0.012, -0.03], [-0.01, -0.025], - [0.005, -0.04], [-0.008, -0.045], [0.01, -0.052], -]; -FAT_OFFSETS.forEach(([dx, dz], i) => { - add( - "tegumentar", `adipocito-${i + 1}`, `Lóbulo de Tecido Adiposo ${i + 1}`, `Adipose Tissue Lobule ${i + 1}`, - [...TX, "Tecido Adiposo"], - { type: "sphere", r: 0.007 }, [FX + dx, FY, dz], - { - color: "#f7e08c", - description: - "Grupo de adipócitos (células de gordura) da hipoderme; armazena energia, isola termicamente e amortece impactos mecânicos.", - }, - ); -}); writeFileSync( path.resolve(__dirname, "manifest-tegumentar.json"), diff --git a/frontend/public/tegumentar/skin-cross-section.jpg b/frontend/public/tegumentar/skin-cross-section.jpg new file mode 100644 index 0000000000000000000000000000000000000000..487c9021daa84ad5006b0facc9f8f2fae1a34b14 GIT binary patch literal 168282 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 literal 0 HcmV?d00001 diff --git a/frontend/src/components/SkinDiagram.tsx b/frontend/src/components/SkinDiagram.tsx new file mode 100644 index 0000000..ac9831f --- /dev/null +++ b/frontend/src/components/SkinDiagram.tsx @@ -0,0 +1,69 @@ +import { useAtlasStore } from "../store/useAtlasStore.js"; +import { SKIN_HOTSPOTS } from "../data/skinHotspots.js"; +import type { Structure } from "../lib/api.js"; + +// O sistema tegumentar não tem malha 3D (Z-Anatomy não cobre pele — ver +// nota em data-pipeline/seed/build-manifest.mjs) e duas tentativas de bloco +// 3D esquemático não ficaram boas o bastante pra estudo. Em vez disso, é um +// diagrama 2D clássico (domínio público, NCI/SEER) com pontos clicáveis — +// cada um abre o mesmo StructureInfoPanel usado pelos outros sistemas. +export function SkinDiagram({ bySlug }: { bySlug: Map }) { + const selectedStructureId = useAtlasStore((s) => s.selectedStructureId); + const selectStructure = useAtlasStore((s) => s.selectStructure); + const toggleSystem = useAtlasStore((s) => s.toggleSystem); + + const tegumentar = [...bySlug.values()].filter((s) => s.system.slug === "tegumentar"); + if (tegumentar.length === 0) return null; + + return ( +
+
+
+

+ Corte Transversal da Pele — clique nos pontos pra explorar +

+ +
+ +
+ Corte transversal da pele mostrando epiderme, derme, hipoderme e seus anexos + {tegumentar.map((structure) => { + const hotspot = SKIN_HOTSPOTS[structure.slug]; + if (!hotspot) return null; + const isSelected = structure.id === selectedStructureId; + return ( +
+ +

+ Imagem de domínio público — National Cancer Institute / SEER Training Modules. +

+
+
+ ); +} diff --git a/frontend/src/components/viewer/Scene.tsx b/frontend/src/components/viewer/Scene.tsx index 7e2c265..4af416f 100644 --- a/frontend/src/components/viewer/Scene.tsx +++ b/frontend/src/components/viewer/Scene.tsx @@ -189,7 +189,10 @@ export function Scene({ bySlug }: { bySlug: Map }) { // um sistema visível — a visibilidade por malha é resolvida dentro de // cada SystemModel. const structuresByFile = useMemo(() => { - const structuresList = [...bySlug.values()]; + // Tegumentar não tem malha 3D (é um diagrama 2D — ver SkinDiagram.tsx), + // então nunca entra na busca de .glb, senão o GLTFLoader tentaria + // carregar o modelFile placeholder ("n/a") dessas estruturas. + const structuresList = [...bySlug.values()].filter((s) => s.system.slug !== "tegumentar"); const map = new Map(); for (const s of structuresList) { if (!map.has(s.modelFile)) map.set(s.modelFile, []); diff --git a/frontend/src/components/viewer/SystemModel.tsx b/frontend/src/components/viewer/SystemModel.tsx index a22b0cc..f774736 100644 --- a/frontend/src/components/viewer/SystemModel.tsx +++ b/frontend/src/components/viewer/SystemModel.tsx @@ -41,6 +41,13 @@ export function SystemModel({ const mesh = obj as THREE.Mesh; if (mesh.isMesh && mesh.material) { mesh.material = (mesh.material as THREE.MeshStandardMaterial).clone(); + // Malhas finas tipo lâmina (fáscias, aponeuroses) saem da simplificação + // do pipeline (weld + meshopt) com normais corrompidas — a frente e o + // verso dessas "folhas" quase se tocam, então o weld mistura normais + // opostas num vértice só, gerando aquele efeito de iluminação + // "manchado"/ruidoso. Recalcular a partir da geometria final (já + // soldada) sempre dá um resultado consistente com a malha real. + mesh.geometry.computeVertexNormals(); } }); clonedRef.current = clone; diff --git a/frontend/src/data/skinHotspots.ts b/frontend/src/data/skinHotspots.ts new file mode 100644 index 0000000..ee821b2 --- /dev/null +++ b/frontend/src/data/skinHotspots.ts @@ -0,0 +1,28 @@ +// Posição (em % da largura/altura da imagem) de cada marcador clicável +// sobre frontend/public/tegumentar/skin-cross-section.jpg — medidas +// diretamente sobre a imagem (domínio público, NCI/SEER Training Modules). +// Isso é só apresentação (onde desenhar o ponto em cima da figura); os +// dados da estrutura em si (nome, descrição) vêm do banco, como qualquer +// outra estrutura do atlas — ver data-pipeline/seed/build-manifest.mjs. +export const SKIN_HOTSPOTS: Record = { + "estrato-corneo": { x: 37.9, y: 15.0 }, + "camada-pigmentar": { x: 37.5, y: 18.6 }, + "papila-dermica": { x: 48.3, y: 27.2 }, + epiderme: { x: 75.0, y: 32.2 }, + "terminacao-nervosa-tato": { x: 74.6, y: 38.7 }, + derme: { x: 75.4, y: 45.8 }, + "glandula-sebacea": { x: 69.2, y: 47.3 }, + "foliculo-piloso": { x: 65.8, y: 53.7 }, + "papila-do-pelo": { x: 65.8, y: 58.7 }, + hipoderme: { x: 75.4, y: 65.9 }, + "estrato-germinativo": { x: 37.9, y: 33.7 }, + "musculo-eretor-do-pelo": { x: 42.1, y: 43.0 }, + "fibra-nervosa": { x: 38.8, y: 49.4 }, + "vasos-sanguineos-linfaticos": { x: 35.0, y: 78.1 }, + "glandula-sudoripara": { x: 47.1, y: 80.2 }, + "corpusculo-de-pacini": { x: 51.3, y: 71.6 }, + arteria: { x: 70.4, y: 78.1 }, + veia: { x: 75.0, y: 80.9 }, + pelo: { x: 65.8, y: 9.3 }, + "poro-sudoriparo": { x: 69.2, y: 27.9 }, +}; diff --git a/frontend/src/routes/AtlasPage.tsx b/frontend/src/routes/AtlasPage.tsx index 28c9627..3b0012a 100644 --- a/frontend/src/routes/AtlasPage.tsx +++ b/frontend/src/routes/AtlasPage.tsx @@ -7,6 +7,7 @@ import { ClippingControls } from "../components/ClippingControls.js"; import { SearchNav } from "../components/SearchNav.js"; import { StructureInfoPanel } from "../components/StructureInfoPanel.js"; import { QuickRegionNav } from "../components/QuickRegionNav.js"; +import { SkinDiagram } from "../components/SkinDiagram.js"; // Em telas pequenas não há espaço para os 3 painéis lado a lado — os // laterais viram gavetas (drawers) que deslizam por cima do visualizador @@ -61,6 +62,7 @@ export default function AtlasPage() {
+