Go back

Projects

SIMULATIONS

Java Physics Processing

Simulaciones que creamos en la asignatura de simulación para aprender los principios básicos de la simulación. Empleamos el modelo masa-muelle, los integradores numéricos y otros métodos para relizar escenas con simulaciones realistas, todo esto hecho en processing aplicando ecuaciones físicas para generar entornos lo mas fieles posibles a la realidad.

Lanzador de bolas

Flotabilidad

Explicación: En esta práctica se ha implementado un modelo de flotabilidad en el que una partícula simula encontrarse inicialmente en el fondo del mar y asciende de forma progresiva hasta estabilizarse en la superficie, reproduciendo el comportamiento que tendría un objeto menos denso que el agua en un entorno real. Para conseguir este efecto, se ha aplicado una fuerza de flotación que contrarresta la gravedad a medida que la partícula se sumerge, y cuya magnitud depende de la profundidad relativa del objeto respecto al fluido. De este modo, la simulación reproduce de forma intuitiva cómo un cuerpo tiende a flotar hasta alcanzar el equilibrio hidrostático en la superficie, lo que permite visualizar de manera clara los conceptos físicos implicados en el principio de Arquímedes.

Modelo Masa-Muelle

Explicacion: En esta práctica se ha utilizado el modelo masa-muelle para simular el comportamiento físico de una partícula unida a varios muelles. Este modelo consiste en representar los objetos como un conjunto de masas puntuales (partículas) conectadas entre sí mediante muelles ideales que ejercen fuerzas en función de su elongación. Los muelles siguen la ley de Hooke, generando fuerzas proporcionales a la distancia respecto a su longitud de reposo, y se puede añadir amortiguación para simular la pérdida de energía. Para calcular el movimiento de las partículas a lo largo del tiempo, se han implementado distintos métodos de integración numérica, que permiten resolver las ecuaciones diferenciales del sistema dinámico de forma aproximada.

Los métodos probados han sido: Euler explícito, el más simple y rápido, pero menos preciso y estable; Euler simpléctico, que mejora la conservación de la energía en sistemas oscilatorios y es más estable que el anterior; Heun (RK2), un método de segundo orden que promedia dos estimaciones de pendiente para obtener mejores resultados que Euler; y Runge-Kutta de orden 4 (RK4), uno de los métodos más precisos, que calcula cuatro aproximaciones intermedias por paso para lograr alta precisión en sistemas dinámicos. En la simulación se han comparado estos métodos aplicados a una partícula unida a múltiples muelles, observando diferencias en la precisión, estabilidad y realismo del movimiento según el método utilizado. Esta implementación ha permitido experimentar y analizar tanto el comportamiento del modelo masa-muelle como el impacto de las técnicas de integración numérica.

Emisor de particulas

Explicación: En esta práctica se ha implementado un emisor de partículas capaz de generar varios chorros simultáneos (en este caso, tres) controlados por un sistema de partículas. Este sistema permite configurar la tasa de emisión (es decir, el número de partículas emitidas por segundo), lo que da flexibilidad para simular diferentes tipos de efectos, como humo, fuego, lluvia o, como en este caso, chorros de agua. Cada partícula sigue una trayectoria determinada por fuerzas como la gravedad, y se ha aplicado además una textura o visualización específica a las partículas para lograr una representación visual más realista y estética. Lo fundamental en esta práctica ha sido comprender el funcionamiento interno de un sistema de partículas: cómo se crean, actualizan, eliminan y renderizan de forma eficiente miles de elementos en tiempo real, todo ello conservando el rendimiento del sistema y respetando los parámetros físicos definidos.

Solidos blandos

Explicación:En esta simulación he creado un cubo deformable mediante la combinación de numerosas partículas conectadas entre sí con muelles, utilizando el modelo físico de masa-muelle. Para construir su estructura interna, he empleado dos tipos de conexiones: la estructura structural, que conecta las partículas vecinas de forma directa en los ejes principales (horizontal, vertical y profundidad), proporcionando rigidez y forma básica al cubo; y la estructura shear, que añade conexiones diagonales entre partículas, lo que permite simular mejor la resistencia a las torsiones y deformaciones angulares. Gracias a esta combinación, el cubo reacciona de forma realista a las fuerzas externas: puede flexionarse, comprimirse o torsionarse dependiendo de los parámetros usados (como la rigidez de los muelles o la masa de las partículas), y su comportamiento varía según la intensidad y dirección de las fuerzas aplicadas. Esta técnica permite simular materiales blandos o elásticos de forma visual y físicamente coherente.

Simulación de ondas

Explicación: He creado una simulación de olas oceánicas utilizando tres métodos distintos: ondas direccionales, que se propagan en una dirección constante simulando el oleaje típico en mar abierto; ondas radiales, que se expanden desde un punto central como si una gota impactara el agua; y ondas de Gerstner, un modelo más avanzado que permite deformaciones realistas con crestas y valles suaves, generando un efecto visual más cercano al de olas reales. Además, he combinado múltiples ondas de diferentes tipos y parámetros para lograr una superposición más rica y natural, lo que aporta mayor complejidad y realismo al movimiento de la superficie del agua. Como parte de la simulación, también he implementado un objeto flotante que colisiona e interactúa físicamente con las olas, reaccionando dinámicamente al relieve de la superficie, lo que mejora aún más la inmersión y la verosimilitud del entorno simulado.

Simulación de pelo

Simulación Banderas

Explicación: He programado una simulación física de banderas sometidas a la fuerza de la gravedad y al efecto del viento, con el objetivo de observar un comportamiento realista de las telas al ondear. Para lograrlo, he utilizado el modelo masa-muelle, en el que la bandera se representa como una malla de partículas (masas) interconectadas por muelles, que transmiten fuerzas entre sí. Además, he implementado tres tipos distintos de configuraciones de muelles: la estructura (que conecta puntos vecinos horizontal y verticalmente), la shear (que conecta en diagonal) y la bend (que une partículas con una separación intermedia para simular flexibilidad). Esto me ha permitido comparar cómo varía el movimiento de la bandera en función del tipo de conexión entre partículas, observando diferencias claras en la rigidez, deformación y ondulación del tejido ante las fuerzas externas. Esta comparación ayuda a entender mejor qué configuraciones producen un efecto más realista o más rígido según el objetivo de la simulación.

Carrera Canicas

En la carrera de canicas implementada, hemos desarrollado un juego interactivo utilizando la librería Fisica de Processing, donde el jugador puede seleccionar una canica mediante una interfaz visual compuesta por cuadrados de colores, y luego iniciar la carrera pulsando ENTER. Cada canica está representada por un cuerpo circular (FCircle) con color único, y el recorrido incluye rampas, obstáculos estáticos y elementos dinámicos como rotores y un puente oscilante, todos creados con cuerpos FBox y controlados mediante uniones FRevoluteJoint que les otorgan movimiento. El entorno físico está diseñado para generar resultados no deterministas, gracias a la interacción compleja entre las canicas y los obstáculos, fomentando la variabilidad en cada partida. Al finalizar la carrera, el sistema detecta qué tres bolas llegan primero a la meta (una zona tipo cesta) y muestra un pódium con los ganadores, indicando si el jugador acertó su apuesta. Todo ello se ha construido sobre primitivas físicas y una lógica que controla tanto la simulación como la experiencia de usuario.

Torre Cajas

Explicación: En esta práctica hemos utilizado la librería Física de Processing para desarrollar un pequeño juego basado en la construcción de torres mediante la colocación sucesiva de cubos. El reto consiste en apilar los bloques manteniendo la estabilidad de la estructura, lo cual depende de múltiples factores físicos como la fricción entre cubos, el peso acumulado y el equilibrio de las fuerzas. Gracias a las primitivas físicas de la librería, cada cubo se comporta como un cuerpo rígido afectado por la gravedad y por las colisiones, lo que permite observar cómo pequeñas variaciones en la posición o el ángulo de caída pueden hacer que la torre se tambalee o colapse. Esta simulación pone a prueba la precisión del jugador y permite explorar de forma lúdica los principios básicos del equilibrio y la mecánica de cuerpos rígidos.

SKILLS:

Lenguajes de programación

#JAVA

Tecnologías

#PROCESSING

Physics

#IMPLEMENTACION-FISICAS-REALITAS #INTEGRADORES-NUMERICOS