Proyecto destacado
MatForge
Convierte una fotografía en un material 3D completo — Normal, Roughness y Metallic— en menos de 10 segundos. Sin suscripción. Sin internet. En tu equipo.
Proyecto final del Curso de Especialización en IA y Big Data (EUSA, 2025–26). Desarrollado íntegramente de forma individual.
Resultados sobre materiales reales Mapas generados · Render en visor 3D
Genera tus propias texturas con MatForge-App
El problema
La brecha que MatForge cierra
Generar materiales PBR de calidad para producción requiere fotogrametría controlada, software especializado de pago o bibliotecas de materiales prefabricados. Las herramientas existentes no resuelven el caso de uso real simultáneamente: ejecución local, hardware de consumo, los tres mapas canónicos desde una foto, e interfaz accesible.
Posicionamiento: accesibilidad vs. calidad PBR
Ninguna herramienta identificada satisface los cuatro criterios simultáneamente: ejecución local, hardware de consumo (≤8 GB VRAM), salida N+R+M desde imagen única e interfaz accesible para artistas. MatForge cubre ese espacio.
Cómo funciona
Pipeline de predicción
Desde una sola imagen RGB hasta tres mapas PBR exportables a cualquier motor, todo en un mismo flujo local.
Corrección de perspectiva opcional
8 grupos de material
Inferencia tile-and-merge
Variaciones procedurales
Metadatos XMP incluidos
Interfaz principal — imagen cargada, lista para inferencia
Normal · Roughness · Metallic — textura metálica
Resultados
Métricas y benchmarking
Los tres objetivos cuantitativos del modelo se cumplieron. El benchmarking confirma superioridad sobre los dos baselines anteriores del proyecto en todas las métricas.
Comparativa cuantitativa — MatForge vs. baselines del proyecto
| Modelo | Normal MAE (°) ↓ | Roughness MAE ↓ | Roughness RMSE ↓ | LPIPS render ↓ |
|---|---|---|---|---|
| Pix2Pix | 14,74 | 0,212 | 0,2327 | 0,2988 |
| DeepPBR | 13,64 | 0,2238 | 0,2472 | 0,3392 |
| MatForge | 10,40 | 0,1084 | 0,1268 | 0,2911 |
Mejora de MatForge sobre Pix2Pix: 29,5% en Normal MAE, 48,9% en Roughness MAE. Sobre DeepPBR: 23,8% en Normal MAE, 51,6% en Roughness MAE.
Relabeling semántico del dataset — pipeline DINOv2 + HDBSCAN
Las categorías originales de MatSynth no siempre coinciden con propiedades físicas útiles para calibración PBR. Se desarrolló un pipeline no supervisado para reorganizar las 3.245 texturas en 8 grupos funcionales: DINOv2-small (embeddings de 384 dim) → PCA-50 → UMAP → HDBSCAN → fusión manual supervisada. Resultado: DBCV = 0,3279, superando el umbral objetivo de 0,30.
Antes: Categorías originales — dispersión sin coherencia PBR
Después: 8 grupos funcionales útiles para calibración PBR
Comparativa
MatForge vs. Substance 3D Sampler vs. Materialize
Comparativa sobre seis texturas representativas, procesadas con los tres sistemas y renderizadas bajo la misma escena Blender.
- Alta fidelidad en materiales metálicos
- Metallic map correcto en metal y no-metal
- Clasificación automática de material
- Exportación a 5 motores con metadatos XMP
- Visor 3D · SR · Variaciones · Tileable · Batch
- Dificultades en geometría fina de bajo contraste
- Resultados convincentes en materiales no metálicos
- Robusto en geometría fina
- Requiere suscripción y autenticación periódica
- Procesado parcial en servidores remotos
- Sin clasificación automática de material
- Exportación limitada al ecosistema Adobe
- Gratuito y sin dependencias de red
- Sin componente de aprendizaje profundo
- Normales planas en geometría compleja
- Roughness amplificado o invertido
- Metallic heurístico por tono de píxel
- Sin clasificación, calibración ni visor 3D
Paneles comparativos — render bajo la misma escena Blender MatForge · Substance 3D Sampler · Materialize
Paneles completos (6 texturas) en MatForge-Research
Bajo el capó
Decisiones técnicas clave
PVT-v2-B1 como encoder jerárquico
Los encoders de clasificación (ResNet, VGG) descartan información espacial
de forma irreversible mediante pooling global. Para predicción densa a nivel
de píxel eso es una limitación estructural. PVT-v2-B1 mantiene representaciones
multiescala en cuatro escalas sin downsampling agresivo, lo que lo hace
adecuado para estimar mapas de normales con coherencia espacial fina.
El cambio desde MiT-B1 —encoder originalmente previsto— fue forzado por
incompatibilidad con timm 1.0.25, y resultó equivalente en capacidad.
GAN mantenido pese al colapso del discriminador
El discriminador PatchGAN colapsó desde la primera época adversarial — D(real) y D(fake) convergiendo a 0,50. La decisión fue mantener la fase de todas formas: la feature matching loss seguía aportando señal perceptual útil con independencia del discriminador. El checkpoint final se eligió por LPIPS, no por estabilidad GAN. El resultado mejoró 0,37° en Normal MAE y 0,0118 en LPIPS respecto al checkpoint supervisado. Presentar esto con honestidad es lo que avala las métricas.
Relabeling semántico para dos problemas distintos
Las categorías originales de MatSynth mezclaban materiales visualmente
distintos y dejaban grupos críticos —especialmente metal—
con muy pocas muestras. Un mal balance en grupos pequeños pero importantes
habría sesgado el entrenamiento. El pipeline DINOv2 + PCA-50 + UMAP + HDBSCAN
reorganizó 3.245 texturas en 8 grupos funcionales coherentes, mejorando
el balance del dataset. Una vez en producción, el mismo clasificador
KNN resultante se reutilizó en la app para calibración diferenciada por
grupo —resolviendo dos problemas con una sola decisión de diseño.
Super-Resolución como módulo opcional especializado
Incluir SR como preproceso obligatorio habría aumentado el tiempo de inferencia para todos los usuarios, incluso cuando no era necesario. La decisión fue hacerlo opcional y fine-tunearlo sobre MatSynth —en lugar de usar Real-ESRGAN base— para adaptar la cadena de upscaling al dominio específico de materiales PBR. La mejora interna fue del 10,9% en LPIPS. El resultado no se transfirió al benchmarking general, lo que se interpreta como distribution shift de la cadena de degradación sintética —limitación documentada y trasladada a trabajo futuro.
Más allá de la inferencia
Pipeline completo de producción
MatForge no es solo un modelo. Es una herramienta de producción con diez funcionalidades integradas que cubren desde la entrada hasta la exportación.
Exportación multi-motor con metadatos de procedencia XMP
Todos los PNG exportados incluyen metadatos XMP con campos
dc:creator, dc:rights, xmp:CreatorTool
y xmpRights:Marked, identificando el origen de IA del contenido
en anticipación al Art. 50 del Reglamento UE 2024/1689 (vigente agosto 2026).
Honestidad técnica
Limitaciones identificadas
Un buen proyecto no oculta sus límites. Los conoce, los documenta y sabe por qué existen.
metal, que concentra
las texturas conductoras del dataset. Sin embargo, ese grupo tenía pocas
muestras en MatSynth, y el modelo no siempre genera un Metallic consistente
incluso cuando el clasificador identifica correctamente el material como metálico.
La categoría funcional no afecta al modelo MatForge —solo al postproceso—,
por lo que la inconsistencia es inherente al balance del dataset de entrenamiento.
Es la limitación más estructural del proyecto.
stone_rough concentra el mayor error angular del benchmark
(16,42°), coherente con la dificultad de inferir relieve complejo desde
una única imagen RGB sin información de profundidad.
Accede al proyecto