Fibric: el control total sobre las telas

Mi nombre es Agustín González y, junto a Pepe Buendía Rubio, somos los creadores de Fibric, una herramienta para el software Houdini que facilita la creación de ropa utilizando exclusivamente curvas (ya expandiremos más sobre eso). Antes que nada, queremos agradecer a Marco por invitarnos a escribir esta columna. Hace unas semanas tuvimos el placer de presentar nuestro toolset en la FMX de Stuttgart, en una charla que podéis encontrar en YouTube, en el canal oficial de Houdini, bajo el título: «Fibric: Procedural Clothing Creation.»

Dado que en esa presentación mostramos en profundidad las capacidades y posibles aplicaciones de Fibric, creemos que este espacio en Renderout! merece un enfoque diferente, más personal. Por eso, en esta columna queremos compartir “el lado B” de Fibric: Cómo surgió la idea, de qué manera se nos fueron ocurriendo los distintos módulos y qué caminos tuvimos que recorrer para que este desarrollo no solo funcionara, sino que también fuera “performante” y amigable para los artistas.


EL CAMINO HACIA FIBRIC

Con Pepe nos conocimos en Able & Baker, un estudio de animación en Madrid, donde yo estaba trabajando como CG Supervisor en los proyectos de cinemáticas y publicidad. En ese momento, estábamos buscando un Houdini TD que pudiera ayudarnos a empujar los “workflows” de modelado y “dressing” procedural. Por suerte, una demo reel de una ciudad generada “proceduralmente” llegó a nuestras manos, y al final del video aparecía el nombre de Pepe Buendía. No dudamos en escribirle, y desde su llegada se armó una sinergia de equipo que nunca paró.

Desde el principio trabajamos a todo ritmo: generamos un pueblo nórdico totalmente procedural en tiempo récord, ejecutamos más de cinco minutos de animación estilo “Spiderverse” con mezcla de efectos visuales al mejor estilo “Tron”, y también atravesamos una etapa intensa produciendo cortos y comerciales en Unreal Engine. En medio de toda esa vorágine, encontramos algo más que eficiencia: descubrimos una manera de pensar y construir en común. Y eso nos llevó a empezar a soñar con proyectos propios, fuera del horario laboral, más por curiosidad y ganas que por necesidad. Algo que nos divirtiera, pero que también representara un desafío real.

Después de un par de años trabajando juntos, recibí una oferta para cambiar de estudio y decidí aceptarla. Y aunque eso nos separaba laboralmente, también se convirtió en la excusa perfecta para empezar algo juntos por fuera, como un dúo creativo. En ese momento, los dos teníamos varias ideas en mente. Estábamos explorando armar “workflows” en USD usando Solaris, experimentar con el nuevo contexto de composición llamado COPs (o Copernicus, en Houdini 20.5), y en general, jugar con herramientas que normalmente quedan al margen en los flujos de producción tradicionales durante los primeros meses o años de lanzamiento.

En medio de esas exploraciones, volví a experimentar con unas herramientas que había desarrollado años atrás para hacer bordados en Substance Designer, y pensé: ¿por qué no hacer “embroidery” con curvas, como si fuesen guías de grooming?

Al principio parecía un experimento sencillo, pero pronto nos dimos cuenta de que el verdadero reto no era técnico, sino conceptual: el mundo del bordado es vasto, lleno de técnicas y estilos. Tratar de cubrir todas las posibilidades era un camino sin fin. Aun así, nos animamos a hacer algunas pruebas. En una de ellas, generamos un patrón de “knitting” como base para un bordado. En ese momento no le dimos demasiada importancia, pero con el pasar de los días empezamos a notar algo: ese patrón de tejido hecho con curvas era extremadamente flexible, y podía escalar hacia algo más. Podíamos rasgarlo, agregarle “stitches”, “fuzz”, controlar su integridad, tanto global como sectorizada… Nos dimos cuenta de que el control era infinito. Y ahí fue cuando, sin saberlo del todo, dimos el primer paso hacia lo que hoy es Fibric.


INSPIRACIÓN Y RESEARCH

Al encontrarnos frente a esta nueva idea, crear ropa a partir de curvas, entendimos que lo primero era investigar a fondo cómo funcionan realmente los tejidos. Empezamos por dos grandes familias dentro del mundo textil: el weave (tejido entrelazado) y el knitting (tejido de punto). Rápidamente descubrimos que, al igual que en el bordado, existe una enorme variedad de estilos, técnicas y patrones. Pero había una diferencia fundamental: en el “weave” y el “knitting” sí existen diagramas técnicos generados por diseñadores textiles, pensados para indicar de forma precisa cómo entrelazar los hilos. Esos diagramas se convirtieron en una referencia clave para nosotros.

«Nuestro reto era encontrar una manera de traducir esa lógica visual a un sistema procedural, pero sin que el usuario tuviera que recurrir a cálculos complejos o conocimientos técnicos avanzados. El objetivo siempre fue que cualquier artista pudiera generar sus propios patrones de tejido sin usar una calculadora».

En el caso del tejido entrelazado (“weave”), eso fue relativamente directo. Pudimos reproducir patrones clásicos a partir de sus diagramas, permitiendo modularidad y variaciones controladas. Pero claro, estos patrones presentan una repetición natural, como ocurre con el “denim” o el “herringbone”, que funciona muy bien para ciertos casos. ¿Pero qué pasaba si queríamos algo más personalizado, como un telar artesanal estilo “Jacquard”?

La idea para resolverlo me vino, curiosamente, el Día de Reyes. Mi mujer me pidió que me disfrazara de Rey Mago para sorprender a nuestro hijo, y al ponerme todas las capas de tela que nos había prestado mi suegra, una de ellas me hizo clic. Tenía un patrón tan específico y artístico que me hizo pensar: no necesitamos solo repetir un diagrama, necesitamos una forma de controlar el entrelazado una vez que la tela ya está aplicada sobre el cuerpo.

Así nació Weave by Image, una solución que permite usar cualquier mapa complejo para modificar el patrón de entrelazado directamente en la geometría vestida. Le comenté la idea a Pepe y, en menos de un par de horas, teníamos un prototipo “performante” y listo para probarse. Gracias a eso, ahora es posible simular tejidos con detalles únicos, como los de un telar “Jacquard”, sin perder control ni eficiencia.

Sin embargo, el “knitting” resultó ser un desafío mucho mayor. Empezamos incorporando el típico patrón de “weft knitting”, pero pronto nos dimos cuenta de que eso solo cubría una pequeña parte del universo de posibilidades. La dirección de la aguja, la tensión de las fibras, las técnicas libres que aplican los tejedores… todo eso hacía que el “knitting” fuera casi imposible de encapsular en reglas fijas. Si seguíamos por ese camino, los usuarios iban a necesitar hacer un curso completo de tejido para poder generar un simple suéter.

Así que decidimos buscar un punto medio. Por un lado, incluimos algunos patrones listos para usar. Pero por otro, desarrollamos una solución más abierta: la posibilidad de dibujar manualmente el patrón con curvas Bézier, dejando que el usuario construya visualmente su propio diseño de tejido. A esta técnica la llamamos Custom Knitting, y se convirtió en una de nuestras herramientas favoritas dentro de Fibric. Abre la puerta a una creatividad total, sin ataduras técnicas, respetando el espíritu libre del tejido a mano.

EL CONTROL SOBRE LAS TELAS

Hasta este punto, lo que teníamos era algo que, en esencia, ya ofrecen muchos “softwares” de texturas: aplicar un patrón sobre una geometría y repetirlo hasta que, con suerte, parezca algo realista. Pero fue justo ahí donde empezó lo divertido. Con los distintos módulos de Fibric, empezamos a tener control centímetro a centímetro sobre el comportamiento de los hilos: podíamos “randomizar” su posición, acumular pelusas en zonas de fricción, o incluso desgarrar la tela de forma procedural, tanto en el asset estático como dentro de una simulación. Esa flexibilidad es impagable.

Como artista de personajes, es común enfrentarse a la ardua tarea de lograr que los tiles de textura parezcan orgánicos y únicos en cada parte de una prenda. En muchos casos, eso implica un trabajo manual muy intensivo, y a veces destructivo, para romper la repetición.

Si bien herramientas como Substance Painter permiten cierto “proceduralismo”, muchas veces estamos intentando forzar píxeles y polígonos para que se comporten como si fueran fibras. Aplicamos “micro-displacement”, mapas de opacidad de alta frecuencia y efectos como “subsurface scattering” o translucencia para simular lo que debería surgir de forma natural. Todo eso impacta directamente en los tiempos de render, y además requiere una enorme cantidad de texturas para mantener un nivel alto de calidad.

Agustín y Pepe en FMX

Con Fibric, en cambio, el comportamiento óptico de la tela no es una ilusión: los hilos están realmente ahí. Los “shaders” reaccionan de manera mucho más orgánica con la luz. La forma en la que las curvas se acumulan, se cruzan o se afinan genera una riqueza visual que antes solo se podía simular con muchos trucos. La translucencia real entre fibras curvas aporta una profundidad que no se puede lograr solo con texturas planas.

FIBRIC STITCHES, EL MÓDULO MÁS POTENTE

Cuando empezamos a pensar en cómo abordar las costuras dentro de Fibric, las primeras ideas que surgieron fueron las más obvias: instanciar pequeños modelos de hilo a lo largo de una curva. Pero rápidamente sentimos que eso no estaba a la altura del tipo de soluciones que veníamos desarrollando. Era funcional, sí, pero carecía de la elegancia y profundidad que queríamos para el sistema.

Pepe tomó el liderazgo de este módulo y se sumergió en entender cómo funcionan las costuras en el mundo real: cómo generan tensión en la tela, cómo no solo aparecen en los bordes visibles de una prenda, sino que también conectan internamente las piezas, afectando su forma y caída. A partir de esa investigación, desarrolló un sistema que no solo permite elegir entre distintos tipos de costuras, sino que también expone parámetros clave para iterar y refinar cada detalle del comportamiento visual y físico.

Además, incorporó una opción de “custom” input a prueba de balas, que permite al artista dibujar su propio estilo de costura y adaptarlo perfectamente al flujo de Fibric. Este tipo de flexibilidad es difícil de encontrar en herramientas similares, y fue uno de los grandes logros del módulo. Como si eso fuera poco, también exploramos soluciones basadas en imágenes, una herencia directa de nuestras primeras pruebas con “embroidery”. De hecho, Fibric_Stitches no está tan lejos de ser un primo técnico de aquel primer intento de bordado procedural que quedó en pausa.

Tal vez por eso, y por todo lo que permite hacer, este nodo se ha convertido, para mí, en uno de los pilares más potentes y representativos de todo el sistema.


LA PRUEBA DE RENDIMIENTO QUE LO CAMBIÓ TODO

Cuando empezamos con aquella primera prueba de “knitting”, mi cabeza no paraba de repetirme: «esto está muy bien en el viewport, pero para renderizar debe ser un infierno de noise». Estaba preparado para lo peor. Pero por suerte, Pepe venía trabajando con Karma XPU desde hacía un tiempo, y al volcar la ropa con curvas en Solaris, nos llevamos una grata sorpresa: el render del “frame” tardaba solo unos segundos.

La siguiente duda que tuvimos fue: ¿cómo se comporta esto en producción real? ¿Qué pasa cuando tenéis que renderizar una prenda completa hecha con miles (o millones) de curvas, cada una con su comportamiento óptico, volumen y translucencia?


Para responderlo, hicimos lo que todo artista técnico teme y desea a la vez: una prueba de fuego. Armamos una escena completa, con un personaje en movimiento, ropa detallada exclusivamente con Fibric, luces complejas y un “setup” de render pensado para simular condiciones reales de producción. El resultado fue sorprendente: no solo los tiempos eran razonables, sino que además, gracias al uso de curvas nativas de render, el impacto en memoria y tiempos fue muchísimo menor de lo esperado.

Recordemos que el “workflow” de Fibric se asemeja al de grooming, donde una curva vive en la escena como tal y luego es el motor de render el que la interpreta como una cinta (“ribbon”) o cilindros (“thick”, “tuve”), dependiendo siempre de lo que el usuario necesite. Gran parte del rendimiento viene de evitar subdivisiones y “displacement” de geometría, así como también cantidades exorbitantes de UDIMs o texturas en 4K saturando la memoria. En su lugar, todo está en las curvas: estructuras livianas, limpias, que se comportan de forma natural con la luz.

Pero ojo, no nos confundamos. En Fibric, las UVs de las curvas son transferidas desde la geometría desde la cual se generaron, lo que nos permite seguir utilizando mapas de color y máscaras, para así tener un control total sobre el “lookdev”. Es decir, no estamos renunciando al “shading” tradicional, sino integrándolo de forma inteligente al comportamiento físico de los hilos. Esto abre un abanico enorme de posibilidades, desde mapas de desgaste hasta coloración específica por zona, todo con la misma lógica procedural.

USD, RENDER-TIME PROCEDURAL Y PIPELINE

Uno de los objetivos que tuvimos desde el principio con Fibric fue que no se quedara solo en el terreno de lo experimental o lo “de demo”. Queríamos que se pudiera integrar fácilmente en un pipeline moderno, donde USD y Solaris ya no son el futuro, sino el presente. Por eso, cada módulo fue pensado con esa mentalidad: evitar dependencias innecesarias, mantener una estructura clara de atributos y permitir una exportación limpia y reutilizable.

© Able & Bakers. All rights reserved.

La naturaleza procedural de Fibric se extiende incluso al momento del render. Una de nuestras soluciones clave en este aspecto es nuestro “render-time procedural”, que permite trabajar únicamente con la prenda en T-pose generada con Fibric (cuyo cache suele pesar entre 400 MB y 1.5 GB), y aplicarla directamente sobre un cache de ropa simulada en el momento de ejecutar el render. Esto evita tener que generar y almacenar una versión curva por cada “frame” animado, lo cual reduce drásticamente el peso total de los “assets” por plano.

Ahora bien, si escalamos esta lógica a un entorno de estudio de animación, donde muchas veces se trabaja con servidores distribuidos en distintas partes del mundo, el tráfico de información y los tiempos de transferencia se reducen al mínimo. Por eso pusimos tanto empeño en desarrollar una solución flexible, que se integre de forma fluida a pipelines colaborativos y que se adapte a los flujos de producción modernos sin sacrificar detalle ni control artístico.

Además, al trabajar completamente sobre curvas y atributos estándar, Fibric se lleva muy bien con los motores de render modernos, como pueden ser Arnold, RenderMan, Cycles y el ya mencionado Karma. Además, funciona sin fricciones dentro de contextos USD en Solaris, Maya o hasta incluso Blender.

Nuestra intención siempre fue: que un usuario pueda adoptar la herramienta sin necesidad de rehacer su “pipeline” ni comprometer su eficiencia. En cuestiones de “pipeline”, Fibric también supone un cambio importante, ya que ofrece ventajas y soluciones que con los “workflows” tradicionales de “texturing” y “shading” suelen ser muy difíciles de implementar entre departamentos. Imaginemos que el equipo de VFX necesita romper, mojar, quemar o intervenir una prenda. Si esta fue construida con técnicas clásicas basadas en texturas, eso suele implicar un ida y vuelta interminable entre los equipos de “assets” y “shots”: reuniones, “retakes”, versiones modificadas del “asset” para que pueda responder correctamente a la intervención, e incluso la necesidad de crear una variante exclusiva solo para un plano específico.

Con Fibric, ese proceso se simplifica considerablemente. Al estar construido con curvas físicas, el asset es mucho más accesible para otros departamentos. Si el equipo de CFX o VFX abre el archivo, se encontrará con una estructura tangible y modificable. Eso habilita una colaboración directa: pueden ajustar, intervenir o reinterpretar la prenda sin necesidad de reestructurarla.

¿Queréis hacer un “shot” donde la arena atraviesa las fibras? ¿O quemar un suéter y ver cómo los hilos se encogen o se desintegran? Con Fibric, la ropa es realmente un conjunto de fibras, y eso abre la puerta a nuevas formas de contar historias a través de lo físico.

EL FUTURO DE FIBRIC

Fibric es una herramienta que genera tejidos a partir de curvas en Houdini, pero su integración con USD abre la posibilidad de llevar esos datos a cualquier otro software o pipeline que lo soporte. Desde el principio, la pensamos no solo como un experimento creativo, sino como una solución lista para producción, flexible y abierta a distintos tipos de flujos de trabajo.

Nuestro deseo es que más artistas y estudios puedan acceder a Fibric y, con suerte, sumar un nuevo nivel de detalle y calidad a sus producciones. Estamos trabajando activamente para que eso sea posible, y tendremos más novedades a lo largo del año. Podrán seguir los avances a través de nuestros perfiles de LinkedIn. ¡Estén atentos! Muchísimas gracias por leernos, y nos vemos en la próxima.

AUTORES

AGUSTÍN GONZÁLEZ

Surfacing Lead at Skydance Animation

PEPE BUENDÍA RUBIO

Houdini/Pipeline TD at Able&Baker

COMPARTE ESTE CONTENIDO