En general, no es sencillo simular con precisión los fenómenos físicos, pues en ellos están implicadas complejas relaciones que se modelan matemáticamente mediante sistemas de ecuaciones diferenciales cuya solución, en la gran mayoría de los casos, no es posible obtener de forma analítica, es decir, no es posible obtener una fórmula (más o menos compleja) que nos de el cálculo exacto.
Sin embargo, cuando no se corre el peligro de poner menos hormigón de la cuenta (y por tanto se caiga el puente) o de diseñar una carrocería poco aerodinámica (y el F1 no sea competitivo), y lo "único" que se propone es conseguir un efecto visual similar al fenómeno real; nos podemos permitir realizar aproximaciones que simplifican enormemente el trabajo a realizar.
Aquí tienes disponible mi librería en C++ que permite representar modelos tridimensionales dotándolos de una estructura elástica formada por tensores (muelles).
El solver (algo así como "resolvedor") implementado es un simple euler que permite procesar gran cantidad de partículas y tensores a costa de tener que ajustar con cuidado todos los parámetros del sistema (rozamiento, masa, fuerzas, incremento de tiempo, etc...) pues el sistema puede volverse muy inestable. No obstante, es más que suficiente para hacer curiosos experimentos.
El componente principal utilizado es un tensor lineal que mantiene dos partículas unidas de tal forma que si están muy separadas hace fuerza para que se junten y si están muy próximas, hace fuerza para separarlas. La distancia de reposo es aquella en la que el resorte no hace ninguna fuerza (está en reposo).
Para formar objetos tridimensionales se establecen todas las partículas intervinientes y se definen tensores lineales entre ellas, cuantos más tensores se definen, más consistencia tendrá el cuerpo (su forma aunque elástica será más estable), es importante establecer tensores tanto a lo largo de las superfícies (por ejemplo en las caras de un dado) como dentro del propio cuerpo cruzando las superfícies (por ejemplo, las diagonales del cubo).
Existen diversas técnicas para dar esta consistencia a los cuerpos, algunas de ellas se basan en añadir tensores adicionales, sin embargo en algunos casos (como por ejemplo para simular telas y cabello) requiere añadir muchos tensores adicionales y que los tensores se salgan del interior del objeto (algo negativo si queremos utilizar los tensores para detectar colisiones), por eso es interesante definir tensores angulares.
Los tensores angulares se definen mediante tres partículas, dos a los extremos y una central y se establece el ángulo en el que se encuentra en reposo (puede ser angulo recto, plano o cualquier otro). Esto hace que con un sólo tensor (de este tipo) se generen las fuerzas adecuadas para formar una determinada superfície, por ejemplo telas y cabellos.