Simulacion de fluidos y materiales complejos

Simulación de fluidos y materiales complejos, como agua, fuego, humo y tejidos usando GPU y CPU híbridas

Simulación de un entorno para videojuegos

La simulación física de fluidos y materiales blandos generalmente se fundamenta en solucionar estimaciones de las ecuaciones de movimiento (Navier–Stokes, tensiones) mediante el uso de modelos de partículas o mallas. Para líquidos, como agua y fluidos viscosos, se utilizan técnicas de tipo Euleriano (rejilla discreta con Navier-Stokes) o Lagrangiano (partículas). Por ejemplo, motores como Phoenix de Chaos emplean un solucionador de fluidos adaptativo, mientras que sistemas de partículas como SPH (Hydrodynamics Smoothed Particle) o PBD (Dynamics Basadas en Posición) facilitan la aparición de salpicaduras y gotas. El complemento NVIDIA FleX es una representación de un solver fundamentado en partículas unificadas (rígidas, flexibles, fluidas, telas) que opera en GPU. Otra metodología híbrida es FLIP, empleada en Houdini, que fusiona los dos modelos (rejilla+partículas) para conseguir simulaciones líquidas de gran realismo.

Simulaciones

Para humo y fuego (gases inflamables), se simulan movimientos de fluidos mediante la dinámica de gases: se toman en cuenta la densidad, la temperatura y las fuerzas de flotación. Los solvers gaseosos (tales como Pyro de Houdini o Phoenix FX) emplean rejillas volumétricas para solucionar ecuaciones de advección y difusión del calor, generando efectos de humo/llamas. NVIDIA Flow es una librería dirigida a GPU destinada a humo y fuego que utiliza una rejilla dinámica optimizada para DirectX; proporciona una simulación en tiempo real de fluidos inflamables con volumen variable. Además, PhysX (NVIDIA) incorpora un módulo Flow para humo/fuego GPU, aunque en el SDK abierto, el solver principal de PhysX (PBD) se enfoca en partículas.

Para tejidos y cuerpos blandos se usan modelos masa-resorte, FEM y PBD. Algunos de los motores y herramientas usadas son, Unreal (Chaos) ofrece telas en tiempo real muy optimizadas (incluso con ML), PhysX soporta FEM y telas y su variante GPU basada en PBD acelera las telas, NVIDIA FleX combina PBD para tejidos y líquidos, y Houdini usa Vellum (PBD) con opción de aceleración GPU (OpenCL). Unity y Blender emplean principalmente solucionadores por CPU, mientras que las versiones GPU son más rápidas pero requieren hardware y adaptaciones.

Motores y frameworks destacados

Unreal Engine (Chaos + Niagara)

Unreal 5 incorpora el sistema Chaos para física de telas y rígida en CPU (multihilo), junto con el VFX Niagara para partículas. UE5 contiene instrumentos para simular fluidos en tiempo real de 2D y 3D: efectos de agua, humo y fuego fundamentados físicamente. Por ejemplo, Niagara posibilita efectos visuales realistas (ondas, salpicaduras), mientras que Chaos Cloth proporciona una simulación exacta de tejidos en tiempo real. Adicionalmente, hay plugins como Fluid Flux (demo en UE5) que permiten aguas realistas. Unreal también facilita la incorporación de librerías externas (como PhysX, Flex o Flow en plugins).

Unity

Unity utiliza principalmente NVIDIA PhysX en CPU para la física de cuerpos rígidos y telas, sin la necesidad de solucionar fluidos propios. Normalmente se consigue la simulación de líquidos o gases mediante sistemas de partículas (Shuriken) o el Gráfico de Efecto Visual (GPU), que es más visual que físico. Es posible utilizar assets (como Obi Fluid) o crear propio código con compute shaders. Unity facilita el uso de DOTS (Jobs, Burst) para paralelizar físicas en CPU, sin embargo, la estrategia gpu-native está restringida a sistemas de partículas (GPU). En conclusión, Unity opta por CPU para colisiones/tejidos, y tiene la posibilidad de delegar operaciones en GPU a través de shaders o el Graph VFX.

Houdini (SideFX)

Referencia en efectos VFX. Emplea solvers sólidos: FLIP para recipientes líquidos, Pyro para gases y Vellum para tejidos. Inicialmente funcionan en CPU (utilizando multi-hilos y amplios caches), pero se ha incorporado aceleración por GPU (OpenCL) para Pyro y Vellum en estaciones de trabajo potentes. En las producciones, suele ser habitual distribuir simulaciones (Deadline) o emplear CPUs de gran núcleo/clok para FLIP. Houdini se distingue por su adaptabilidad a las instrucciones más que por el offloading de GPU de serie.

Blender (Mantaflow)

Blender proporciona simuladores de fluidos libres (MantaFlow) para agua y humo, fundamentados en FLIP/PIC de CPU de múltiples hilos. Su simulador de tejidos (Cloth) se caracteriza por ser de masas/resortes en malla. Similar a Houdini, Blender no emplea GPU para realizar cálculos físicos; sus efectos demandan tiempo de cálculo en CPU.

NVIDIA

NVIDIA FleX: SDK (legacy) de simulación de partículas en GPU. Aplica PBD para resolver unificado de materiales rigidos, deformables, fluidos, tejidos y gases. Se integró en demos (TouchDesigner, plugins) mostrando que la GPU puede incrementar el número de partículas simuladas. Adaptable pero ya no conservado oficialmente (ambiente PhysX 4/5).

NVIDIA PhysX / Flow: PhysX es el motor físico de NVIDIA, ahora open-source. Incorpora cuerpos rígidos, articulaciones, cuerpos suaves (FEM), tejidos y fluidos (PBD) en un marco unificado. PhysX Flow (que se deshizo de GameWorks) era un módulo específico para humo y fuego en GPU. El esquema de características de PhysX indica que Smoke & Fire (Flow) y PBD (líquidos/telas) tienen la capacidad de funcionar en GPU, en cambio, otras partes (colisiones rígidas, controladores de personajes) generalmente funcionan en CPU.

Simulación del viento a través de las turbinas, y del avión en general

CPU vs GPU en la simulación

Las CPU tienen pocos núcleos potentes, optimizados para tareas seriales y complejas. Son altamente adaptables y promueven la exactitud numérica y la solidez en algoritmos complejos (colisiones, solucionadores de matrices, etc.). De acuerdo con Intel, la CPU “orienta su menor número de núcleos a realizar tareas de manera rápida” en series de cálculos, lo que la hace ideal para cargas de trabajo secuenciales. En cambio, las GPU disponen de cientos o miles de núcleos pequeños que operan de manera paralela. Una GPU “posee numerosos núcleos más pequeños y especializados” que, en conjunto, proporcionan un alto rendimiento en actividades altamente paralelas, como la actualización de posiciones de miles de partículas o celdas de malla al mismo tiempo.

GPU: rapidez. CPU: precisión.

En términos prácticos, esto significa que los algoritmos de fluidos basados en partículas o en rejilla densa tienen la capacidad de acelerarse significativamente en GPU (como los cálculos de Navier–Stokes o SPH en paralelo), mientras que las CPU se encargan de la lógica principal, subpasos y colisiones complejas. Como indica un tutorial de Unity, las simulaciones CPU proporcionan mayor exactitud pero menor rapidez, en cambio, las simulaciones GPU son considerablemente más veloces pero necesitan simplificaciones y experiencia especializada. Por lo tanto, las simulaciones en tiempo real (como videojuegos, Realidad Aumentada) suelen utilizar la GPU (shaders de computación, cuerdas dinámicas, partículas GPU), destinando la CPU a tareas generales o cuando no se cuenta con una GPU potente.

Arquitectura Hibrida

La arquitectura híbrida persigue el máximo beneficio de ambos: el CPU gestiona el flujo general del simulador y soluciona situaciones particulares, mientras que la GPU lleva a cabo el cálculo numérico en su totalidad. Por ejemplo, PhysX puede emplear GPU para la dinámica PBD avanzada de fluidos/colisiones, o Houdini pone en marcha la alternativa de GPU en Pyro y Vellum para agilizar dichas cargas. En Unreal, el simulador de fluidos tiene la capacidad de realizar etapas en la GPU (Niagara GPU, rasterización de volúmenes) y posteriormente ser gestionado por la CPU. En motores híbridos, frecuentemente se transmiten datos (ubicaciones de partículas, campos de velocidad) a la GPU cada secuencia para su actualización, y posteriormente se reenvían parcialmente. Este intercambio implica una sobrecarga, por lo que se reduce al transmitir únicamente lo requerido.

Simulación de fluidos (líquidos y gases)

La simulación de fluidos (agua, aire, líquidos complejos) aprovecha intensamente el paralelismo. Tradicionalmente se emplean CPU multihilo en ambientes de HPC (como solvers CFD como Ansys Fluent), sin embargo, las GPU proporcionan aceleraciones de gran magnitud. Investigaciones actuales indican que un único GPU puede equiparar o exceder el desempeño de cientos de núcleos CPU. Por ejemplo, en las pruebas de Ansys Fluent, un solver basado en GPU (NVIDIA RTX6000) registró un rendimiento de aproximadamente 2.5–3.5× superior al de un CPU de 16 núcleos. En otra investigación, un GPU actual (H100) tuvo un rendimiento similar a 400 núcleos CPU en simulaciones de flujo. Incluso en pruebas más antiguas, el beneficio fue significativo: para un grid de 1283, un solver en GPU registró un rendimiento de aproximadamente 3000× superior al CPU de un solo hilo.

Simulación de fluidos en pintura

Simulación de humo y fuego (efectos volumétricos)

La simulación de humo, fuego y explosiones (volúmenes) es un caso especial de fluidos con reacciones, calor y partículas. Se soluciona tradicionalmente en CPU (por ejemplo, Houdini Pyro FX, FumeFX en 3ds Max). No obstante, han surgido soluciones exclusivas de GPU para efectos en tiempo real. Por ejemplo, EmberGen se beneficia totalmente de la GPU, posibilitando iteraciones extremadamente veloces: su usuario principal indica que “la iteración de una simulación es al menos 6 veces más rápida” que en el pasado. Un producto adicional, finalFluid (3ds Max), utiliza un solver de fuego/humo basado en GPU con mallas esparcidas dinámicas.

Simulacion de un objeto en llamas

Simulación de tejidos (cloth)

La simulación de tela y ropa (cloth) maneja mallas deformables con restricciones.Suele realizarce en CPU (por ejemplo, Marvelous Designer, Maya nCloth), aunque existen cada vez más alternativas GPU. NVIDIA PhysX posibilita “descargar” la simulación de tela a las GPUs CUDA para obtener un rendimiento y resolución superiores. En realidad, investigaciones académicas evidencian que los solvers en GPU pueden ser uno o dos órdenes de magnitud más veloces: una simulación de prueba (“virtual try-on”) se realizó con una velocidad de ejecución de ~10× superior en GPU que en el CPU más rápido que se probó. En Unity, el paquete MagicaCloth2 alcanza una rapidez “decenas de veces superior” al correr en GPU en comparación con la implementación preestablecida en CPU/Burst.

Simulacion de una manta sobre el sillon

Comparativa CPU vs GPU vs arquitecturas híbridas

GPU destaca en throughput bruto y paralelismo, mientras que CPU aporta flexibilidad y menor latencia. Un enfoque híbrido (usar ambos) busca balancear esto. Por ejemplo, se suele usar CPU para la logística de simulación ( colisiones complejas, lógica del juego) y GPU para los cálculos masivos del solver.

Rendimiento y escalabilidad

Los GPUs explotan miles de hilos simultáneos: ideales para grandes mallas/pantallas. Si la simulación escala con el dominio (euleriano amplio o millones de partículas), generalmente prevalece el GPU (los benchmarks indican GPUs que equivalen a decenas a centenas de CPU). No obstante, en situaciones de gran magnitud o con contenido variado, un clúster CPU puede equiparar o exceder . En sistemas híbridos (por ejemplo, Karma XPU, render en GPU+CPU) se nota que la CPU contribuye a comenzar la solución de manera más veloz, mientras que la GPU acelera cada ciclo.

Precisión y estabilidad

Los solvers CPU suelen usar doble precisión, mientras GPUs optan por simple (para velocidad).  Esto podría implicar más iteraciones en GPU (como en Fluent), pero con resultados prácticamente iguales. Las GPU también requieren de controladores (CUDA/OpenCL): su estabilidad puede fluctuar dependiendo del hardware y del administrador. Existen informes de restricciones al utilizar OpenCL en Pyro (inconvenientes de compatibilidad con GPUs/OS). Por otro lado, los Procesadores de Procesos son más previsibles y menos susceptibles a errores de software.

Latencia y consumo de memoria

El GPU ofrece throughput, pero incurre en latencia de transferencia memoria PCIe. En simulaciones interactivas, esto es evidente; por lo tanto, la simulación se elabora en grupos en la GPU y posteriormente se transmite (bake) al juego. Respecto a la memoria, la VRAM GPU es restringida (actualmente ~10–48 GB), mientras que los CPU tienen la capacidad de utilizar decenas/centenares de GB de RAM y emplear SSD para los caches. En simulaciones de gran resolución, esto permite el almacenamiento en masa de CPU y GPU cuando la GPU se queda corta.

Resiliencia

Las CPU manejan bien cargas variadas y son más tolerantes a errores. Las GPU necesitan ajustes (driver apropiado, API). Por ejemplo, se aconseja almacenar de manera regular con OpenCL activado debido a posibles bloqueos. En cambio, la GPU posibilita ciclos de iteración mucho más veloces que neutralizan este riesgo en numerosas aplicaciones.

Línea De Tiempo

Créditos

Autor: Julian David Avila Calderon

Editor: Mg. Carlos Iván Pinzón Romero

Código: CG-202502

Universidad: Universidad central

Referencias

Gómez, E. (2024). Simulación de fluidos con SIMULIA [Imagen]. ORIGEN. https://origencadcam.es/simulacion-de-fluidos-con-simulia/

José Vallejo. (2023). CÓMO HACER UNA SIMULACIÓN DE FLUIDOS EN SOLIDWORKS [Video]. YouTube. https://www.youtube.com/watch?v=v_U1VlxeMnk

McDowell, J. (2024). CPU vs GPU: NVIDIA, Exxact, and SimuTech Group Collaborate to Redefine Engineering Simulation Efficiency. SimuTech Group. https://simutechgroup.com/cpu-vs-gpu-nvidia-exxact-simutech-group-collaborate-redefine-engineering-simulation-efficiency/#:~:text=could%20jump%20straight%20into%20testing,solvers%20have%20the%20potential%20to

Moosajee, S. (2025). SideFX Houdini: Performance Analysis and Lessons from Production. Puget Systems. https://www.pugetsystems.com/blog/2025/02/24/sidefx-houdini-performance-analysis-and-lessons-from-production/?srsltid=AfmBOorZB1H2G9_HvIK40WCQSd5NvXkkM02PmiWV2rBnzG6BZhFlj_Ah#:~:text=Lastly%2C%20Pyro%20FX%20simulation%20and,by%20checking%20this%20box%20in

Pearson, S. (n.d.). Guía completa de la simulación de tela en Blender 3D [Imagen]. Skillshare. https://www.skillshare.com/es/classes/guia-completa-de-la-simulacion-de-tela-en-blender-3d/1349305765

Quick Smoke : Humo y fuego con Blender y Cycles [Imagen]. (2014). PIZiadas Gráficas. https://piziadas.com/2014/09/quick-smoke-humo-y-fuego-con-blender-y-cycles.html

Sergeev, A. (2025). Impressive Cloth Simulations With Collisions on GPU in Unity. https://80.lv/articles/impressive-cloth-simulations-with-collisions-on-gpu-in-unity

Tienda.notodoanimacion.es. (2025). Curso online de Houdini Creación y simulación de Fluidos [Imagen]. Notodoanimacion.es | Tienda Online Para Artistas Digitales. https://tienda.notodoanimacion.es/cursos-de-vfx/curso-online-de-houdini-flip-creacion-y-simulacion-de-fluidos/

Timetoast. (2025). Timeline: Computación grafica [Imagen]. https://www.timetoast.com/timelines/3188983

Unreal Engine. (2025). Contenido de formación gratuito de Epic para marzo: jugabilidad, materiales y más [Imagen]. Unreal Engine. https://www.unrealengine.com/es-ES/news/free-epic-learning-content-for-march-gameplay-materials-and-more