img2threejs: convierte una imagen en un modelo 3D editable escrito con código

Las herramientas de IA que convierten una imagen en un objeto 3D llevan tiempo mejorando, pero casi todas comparten el mismo planteamiento: generan directamente una malla, a menudo pesada, compleja y difícil de tocar después. img2threejs va por otro camino: reconstruye el objeto escribiendo código procedural con Three.js.

El proyecto es de código abierto, se distribuye bajo licencia Apache 2.0 y está pensado para trabajar con agentes como Claude Code, Codex y OpenCode. A partir de una imagen de referencia, genera una factory en TypeScript que devuelve un THREE.Group formado por primitivas, geometría generada, materiales y una jerarquía lista para animarse e interactuar.

Lo esencial en 30 segundos

  • img2threejs reconstruye objetos a partir de una imagen de referencia.
  • No se basa en fotogrametría ni en extraer automáticamente una malla grande.
  • Genera código TypeScript y Three.js.
  • Usa primitivas, shaders procedurales y geometría generada.
  • Puede incorporar pivotes, sockets, colliders y jerarquías de componentes.
  • Trabaja en varias fases y compara los renders resultantes con la imagen original.
  • Está pensado para funcionar con Claude Code, Codex y OpenCode.
  • El resultado se puede editar, versionar y reutilizar como cualquier otro código.
  • El propio proyecto reconoce las limitaciones de reconstruir geometría tridimensional a partir de una sola imagen.

De una imagen a código Three.js

La diferencia de fondo de img2threejs está en lo que produce como salida. En vez de devolver sin más un archivo 3D, el sistema construye una función TypeScript encargada de recrear el objeto usando Three.js. El propio repositorio lo describe como un proceso de «reconstrucción por código», y lo distingue explícitamente de la fotogrametría, la extracción de mallas o el uso de packs de assets ya hechos.

Eso significa que un objeto puede acabar formado por elementos que cualquier desarrollador entiende: primitivas geométricas, curvas, materiales, geometría procedural y componentes organizados en jerarquía.

Según la documentación actual del proyecto, el resultado es una factory que devuelve un THREE.Group. Además de la geometría visible, puede haber una estructura en tiempo de ejecución con pivotes, sockets, colliders y otros elementos pensados para que el modelo se pueda animar o integrar después en una aplicación.

No intenta resolverlo todo de una tacada

Otro detalle interesante es que img2threejs no plantea la reconstrucción como un único prompt a la IA. Usa un pipeline progresivo, parecido a un proceso de escultura digital.

Las fases documentadas por ahora son:

blockout ? structural ? form ? material ? surface ? lighting ? interaction ? optimization

El proceso arranca con los volúmenes y la estructura general. Después se afinan formas, materiales y superficies, antes de pasar a la iluminación, la interacción y la optimización.

El sistema genera y revisa cada fase con visión artificial, comparando la imagen de referencia original con el render resultante. La idea es detectar diferencias y corregir el modelo antes de avanzar a la siguiente fase.

La IA juzga, los scripts hacen el trabajo mecánico

Uno de los aspectos más interesantes de la arquitectura es cómo intenta reducir el consumo de tokens. El proyecto evita pedirle al modelo de lenguaje que haga todas las tareas mecánicas del proceso.

Una colección de scripts Python deterministas se encarga de la validación, la gestión del estado del pipeline, la generación de especificaciones, las comprobaciones de calidad y la creación de fichas comparativas.

La IA se reserva sobre todo para la tarea donde de verdad aporta: mirar el resultado y decidir qué hay que corregir.

Según el proyecto, sus scripts principales funcionan con Python 3.10 o superior y están pensados sin dependencias externas para el flujo básico.

Antes de construir, intenta entender el objeto

img2threejs incluye también una fase llamada detailInventory. Antes de generar código, el sistema intenta identificar los pequeños detalles que importan para conservar la identidad visual del objeto.

Pueden ser cosas como:

  • biseles y bordes redondeados;
  • tornillos y remaches;
  • líneas grabadas o pintadas;
  • contornos;
  • diferencias entre superficies mate y brillantes;
  • desgaste y manchas;
  • detalles estructurales pequeños.

Cada uno de estos elementos tiene que asociarse después a un componente o material concreto. Hay incluso un modo estricto de calidad que puede bloquear la generación si la especificación inicial se considera demasiado superficial.

Un modelo pensado para seguir siendo editable

Probablemente esta sea la ventaja conceptual más importante frente a otros sistemas de imagen a 3D. Una malla generada automáticamente puede quedar convincente, pero modificarla después no siempre es sencillo.

Con img2threejs, el objeto es código. Un desarrollador puede localizar un componente, cambiar sus dimensiones, sustituir un material, mover su posición o incluso reemplazar entera la lógica que lo construye.

También se le puede añadir comportamiento. Por ejemplo, una puerta puede tener un pivote de rotación, una rueda puede convertirse en un componente independiente, o ciertas piezas pueden exponerse como sockets para engancharles otros objetos más adelante.

Este enfoque puede resultar especialmente útil para:

  • experiencias 3D en la web;
  • configuradores de producto;
  • videojuegos;
  • visualizaciones interactivas;
  • prototipos;
  • interfaces WebGL;
  • escenas generativas;
  • experiencias educativas;
  • aplicaciones que necesitan manipular objetos en tiempo real.

Los modelos funcionan directamente en el navegador

El repositorio incluye una galería aparte donde las reconstrucciones corren directamente con Three.js. Entre los ejemplos disponibles hay una bici BMX, unos auriculares Sony WF-1000XM3 con su estuche de carga, un diorama de la casa de Doraemon y varios objetos hard-surface. Diorama de la casa de Doraemon reconstruido con img2threejs en Three.js

El proyecto deja claro que las demos están construidas con primitivas, shaders procedurales y geometría generada, y que el código fuente de cada reconstrucción se puede inspeccionar. Esto refuerza una de las ideas centrales de img2threejs: el objetivo no es conseguir un archivo 3D opaco, sino un modelo que pueda formar parte directa del código de una aplicación.

También soporta personajes, aunque con límites importantes

El proyecto ha ampliado su planteamiento original más allá de los objetos rígidos. Ahora mismo clasifica los sujetos como object, character o hybrid.

Los personajes siguen una ruta propia que tiene en cuenta proporciones, puntos de referencia faciales y pose. Hay también un modo opcional orientado a maximizar el parecido mediante ajuste de plantillas paramétricas, coincidencia de cámara y proyección de la imagen de referencia.

Aquí el propio proyecto incluye un aviso importante: una sola imagen no puede revelar con precisión todas las partes de un objeto tridimensional. Las superficies ocultas hay que inferirlas, y el sistema no puede garantizar una reconstrucción geométricamente exacta.

De hecho, la documentación indica que hay que identificar las regiones con menor confianza y que puede hacer falta añadir imágenes de referencia adicionales cuando la fidelidad importa de verdad.

También puede usar varias vistas

Para reducir esta limitación existe un modo opcional llamado visualHull. Cuando se aportan al menos dos siluetas ortográficas, el sistema puede cruzarlas para construir una aproximación volumétrica.

En vez de inventar automáticamente lo que no se ve en las imágenes, el sistema marca las regiones desconocidas como zonas de baja confianza. Es una distinción importante, porque separa lo que es reconstrucción probable de lo que está realmente respaldado por el material de referencia.

Cómo usar img2threejs

La instalación documentada para Claude Code pasa por clonar el repositorio dentro del directorio de skills:

git clone https://github.com/img2threejs/img2threejs.git ~/.claude/skills/img2threejs

Después se puede adjuntar una imagen de referencia y usar una petición parecida a esta:

/img2threejs Reconstruye este objeto como un modelo Three.js,
manteniendo proporciones, ángulos y colores.

El sistema analiza la imagen, crea una valoración inicial, genera una especificación y va construyendo el modelo poco a poco a través de sus distintas fases. También puede usarse con Codex o con OpenCode, ya que el proyecto está pensado para no depender de un agente concreto, siempre que este proporcione visión y acceso al navegador.

No sustituye necesariamente a las herramientas tradicionales de imagen a 3D

No hay que entender img2threejs como un competidor directo de cualquier generador de modelos 3D tradicional. Su objetivo es distinto.

Cuando lo único que importa es conseguir rápido una malla muy detallada para renderizar, otras técnicas pueden venir mejor. img2threejs se vuelve especialmente interesante cuando la estructura final necesita ser:

  • comprensible;
  • editable;
  • procedural;
  • lista para animar;
  • ligera;
  • versionable con Git;
  • integrable directamente en una aplicación web.

Su salida principal incluye tanto una especificación JSON ObjectSculptSpec como una factory TypeScript que genera el objeto. Eso también significa que los cambios se pueden revisar mediante diffs y mantenerse en un repositorio de código como cualquier otra parte de una aplicación.

Su hoja de ruta va mucho más allá de objetos sueltos

El roadmap del proyecto apunta a algo bastante más ambicioso. Las próximas etapas incluyen mejoras en la reconstrucción de personajes, generación de entornos, exportadores para Unity y Unreal, integración con Blender, generación de LOD, auto-rigging y una futura interfaz web.

Más adelante, el roadmap también contempla reconstrucción multi-vista y generación procedural de entornos completos. Conviene distinguir estos planes de lo que ya funciona hoy: varios de estos puntos forman parte explícita del roadmap y no deberían interpretarse como funcionalidad ya terminada.

Otra forma de pensar el 3D generado por IA

Puede que la idea más interesante detrás de img2threejs no sea simplemente que una IA reconstruya un objeto a partir de una foto. Eso ya lo hacen otros sistemas.

Lo distinto aquí es que el asset 3D final puede ser código en vez de un archivo. El objeto deja de ser solo una malla importada en una aplicación y pasa a ser una estructura programable cuyos componentes, materiales, interacciones y animaciones se pueden modificar directamente.

Para el desarrollo web y las experiencias interactivas, esa diferencia puede tener bastante peso. Las herramientas tradicionales de imagen a 3D intentan generar geometría. img2threejs intenta generar otra cosa: la receta para reconstruir esa geometría a través de código.

Y por eso puede resultar especialmente interesante para quienes quieren usar inteligencia artificial no solo para crear assets 3D, sino para conseguir assets que después puedan entender, modificar y programar.

Repositorio oficial de img2threejs en GitHub, README y documentación del proyecto.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP