Documentación Técnica — v1.0

LABIM3D

Modelos para la Educación Biomédica

Institución
Universidad Austral de Chile
Laboratorio
TecMedHub
Licencia
CC BY 4.0
Actualización
Marzo 2026
Contenido
01

¿Qué es LABIM3D?

LABIM3D es una plataforma web educativa desarrollada por TecMedHub (Universidad Austral de Chile, Puerto Montt) que funciona como repositorio curado de modelos anatómicos 3D para la enseñanza en ciencias de la salud.

La plataforma combina modelos alojados localmente —archivos STL originales o modificados— con enlaces a repositorios externos como Thingiverse y NIH 3D Print Exchange, presentándolos bajo una interfaz unificada con metadatos completos, información de licencias Creative Commons y visualización 3D directa en el navegador.

50+
Modelos Curados
100%
Acceso Libre
CC
Licencias Abiertas
0
Backend Requerido

Objetivos principales

💡

La filosofía central de LABIM3D es la innovación abierta: democratizar el acceso a herramientas educativas de calidad para la formación práctica en ciencias de la salud, sin barreras tecnológicas ni económicas.


02

Arquitectura Técnica

LABIM3D es un sitio web estático: no requiere servidor de aplicaciones ni base de datos. Toda la lógica reside en el frontend (HTML + CSS + JavaScript) y el contenido se gestiona mediante archivos JSON.

Stack tecnológico

TecnologíaFunciónDetalles
HTML / CSS / JSInterfaz completa del catálogo, filtros y vistas de modeloVanilla JS, sin frameworks
Three.jsVisualización 3D interactiva de archivos STL en el navegadorOrbitControls incluido
JSON filesGestión de contenido: modelos, metadatos, índice maestroSin base de datos
jsPDFGeneración de PDF para órdenes de impresiónIntegrado en frontend
PHP 7 (opcional)Script auxiliar para automatizar carga de archivosBackend mínimo y prescindible
localStorageAuto-guardado en el panel de administraciónEstado temporal del editor

Estructura de directorios

LABIM3D/
├── index.html          ← Página principal
├── catalog.html        ← Catálogo con filtros y búsqueda
├── model.html          ← Vista detallada de modelo
├── about.html          ← Esta página
├── admin.html          ← Panel de administración
├── css/
│   ├── base.css        ← Variables globales, nav, footer
│   └── home.css        ← Estilos específicos del home
├── js/
│   ├── catalog.js      ← Lógica de filtrado y búsqueda
│   ├── model-viewer.js ← Visualizador Three.js
│   └── admin.js        ← Gestor de modelos
├── models/             ← Datos JSON por modelo
│   ├── index.json      ← Índice maestro (listado completo)
│   ├── oido-interno.json
│   └── articulacion-rodilla.json
└── images/
    └── models/         ← Thumbnails e imágenes por modelo

03

Sistema de Gestión de Modelos

El corazón del sistema es el enfoque JSON modular: cada modelo tiene su propio archivo JSON con todos sus metadatos, y un index.json centraliza las referencias para el catálogo. Este diseño permite agregar modelos sin modificar código HTML ni lógica JavaScript.

Flujo para agregar un modelo

💡

El panel admin.html automatiza los pasos 2 y 3: genera el JSON del modelo y actualiza el index.json mediante formularios con auto-completado, eliminando errores de escritura manual.

Estructura del JSON de un modelo

Cada modelo se describe completamente en su archivo JSON individual. A continuación la plantilla con todos los campos disponibles:

models/[id].json — Plantilla completa
{
  "id":          "nombre-del-modelo",
  "title":       "Nombre Completo del Modelo",
  "category":    "Sistema Anatómico",
  "subcategory": "Subsistema o región",
  "tags":        ["tag1", "tag2", "tag3"],

  "type":   "external | local | modified | original",
  "status": "active | draft | review",

  "files": [
    {
      "filename": "modelo.stl",
      "label":    "Pieza principal",
      "path":     "stl/models/nombre-modelo.stl"
    }
  ],

  "thumbnail": "images/models/nombre/thumb.jpg",
  "images":   ["images/models/nombre/img1.jpg"],

  "description":     "Descripción educativa del modelo.",
  "educationalNotes": "Notas pedagógicas para el docente.",

  "printSpecs": {
    "material":  "PLA",
    "infill":   "20%",
    "supports": true,
    "time":     "4-6 horas",
    "scale":    "1:1"
  },

  "attribution": {
    "originalCreator":      "Nombre del autor original",
    "originalSource":       "https://url-fuente-original.com",
    "license":              "CC BY 4.0",
    "labim3dModifications": "Descripción de cambios realizados"
  },

  "externalLink": "https://url-si-es-externo.com",
  "dateAdded":    "2025-01-15",
  "addedBy":     "fernanda.lopez"
}

Campos del JSON — Referencia rápida

CampoDescripciónEjemplo / Valores
idIdentificador único, usado en URLs y referencias internasoido-interno
typeOrigen del modelo en el sistemalocal / external / modified / original
tagsEtiquetas libres para búsqueda y filtrado en catálogo["coclea", "vestibulo", "orl"]
categorySistema anatómico principal — define agrupación en catálogoSistema Auditivo
files[]Array de STL — permite modelos multi-piezafilename, label, path
printSpecsDatos técnicos de impresión 3D para el usuariomaterial, infill, supports, time
attributionDatos de autoría y licencia CC — cumplimiento obligatoriocreator, source, license, mods
educationalNotesContenido pedagógico adicional para el docenteTexto libre, HTML-compatible
externalLinkURL directa si el archivo no está alojado localmentehttps://nih3d...

El índice maestro (index.json)

El index.json contiene una versión resumida de cada modelo — solo los campos necesarios para renderizar las tarjetas del catálogo y ejecutar filtros. Esto evita cargar todos los JSON completos al iniciar.

models/index.json — Estructura
{
  "models": [
    {
      "id":        "oido-interno",
      "title":     "Oído Interno - Cóclea y Vestíbulo",
      "category":  "Sistema Auditivo",
      "tags":      ["coclea", "vestibulo", "orl"],
      "type":      "modified",
      "thumbnail": "images/models/oido-interno/thumb.jpg",
      "license":   "CC BY 4.0"
    }
    // ... demás modelos
  ],
  "lastUpdated": "2025-03-15",
  "totalModels": 3
}

La doble escritura —JSON individual + index.json— es la principal fuente de errores. El panel de administración sincroniza ambos automáticamente. Si se edita manualmente, ambos archivos deben actualizarse.


04

Etiquetas y Categorías

El sistema de organización del catálogo opera en dos niveles jerárquicos: categorías (agrupaciones por sistema anatómico) y etiquetas libres (tags) para búsqueda granular. No existe una lista cerrada de valores predefinidos; los términos se definen al crear cada modelo.

Categorías del sistema

Categoría Modelos actuales
AUDITIVOOído Interno — Cóclea y Vestíbulo
ESQUELÉTICOVértebra Lumbar Completa
ARTICULARArticulación de Rodilla Funcional
💡

Las categorías son texto libre. La consistencia depende de usarlas idénticas entre modelos: cualquier variación en mayúsculas o tildes crea una categoría nueva en los filtros. Se recomienda definir un vocabulario controlado antes de escalar el catálogo.

Convención de tags recomendada


05

Panel de Administración y Plantillas

El panel admin.html provee una interfaz gráfica para agregar y editar modelos sin editar JSON manualmente. Implementa el patrón plantilla prellenada que garantiza campos consistentes y cumplimiento de atribución de licencias.

Funcionalidades del panel

Plantilla JSON mínima para uso manual

Si se prefiere crear el JSON sin usar el panel, copiar esta plantilla mínima:

Plantilla vacía — copiar y completar
{
  "id":          "",
  "title":       "",
  "category":    "",
  "subcategory": "",
  "tags":        [],
  "type":        "local",
  "status":      "active",
  "files":       [{ "filename": "", "label": "Pieza única", "path": "" }],
  "thumbnail":   "",
  "images":      [],
  "description":      "",
  "educationalNotes": "",
  "printSpecs": {
    "material": "PLA", "infill": "20%",
    "supports": false, "time": "", "scale": "1:1"
  },
  "attribution": {
    "originalCreator":      "",
    "originalSource":       "",
    "license":              "CC BY 4.0",
    "labim3dModifications": ""
  },
  "externalLink": null,
  "dateAdded":    "YYYY-MM-DD",
  "addedBy":     ""
}

Checklist para agregar un modelo

El patrón de plantilla prellenada es lo que permite mantener consistencia en los datos a medida que crece el repositorio: cada nuevo colaborador parte del mismo esquema, garantizando que todas las fichas tengan los mismos campos y el mismo nivel de detalle.


06

Equipo TecMedHub

LABIM3D es un proyecto de TecMedHub, laboratorio de fabricación digital de la Escuela de Tecnología Médica, Universidad Austral de Chile, Puerto Montt. El equipo integra tecnología médica, ciencias biomédicas e ingeniería de software.

Nicolás Baier Quezada
Director
Neurociencias cognitivas · Bioingeniería · IA aplicada
Vanessa Uribe Hernández
Lab Manager
Otorrinolaringología · Tecnologías open source · Simulación clínica
Fernanda López Moncada
Investigadora · Dev
Ciencias Biomédicas · IA diagnóstica · Modelos educativos
Marcia Molinet Guerra
Investigadora
Morfología · Sistema vestibular · Anatomía clínica funcional
Carolina Almendras Rodríguez
Investigadora
Oftalmología · Deep learning · Retinopatía diabética
Cristina Vargas Bustamante
Investigadora
Audiología · Telemedicina · Tecnología docente ORL
📍

TecMedHub — Campus Costanera, Edificio 500, 3er piso. Av. Juan Soler Manfredini 1771, Puerto Montt, Los Lagos, Chile. Contacto: fernanda.lopez@uach.cl