PIROTTA Sistemas Simulacion

16
Sistemas de simulación física y sistemas complejos: Relevamiento de herramientas de software y hardware para la generación de imagen lineal o interactiva Autor: Tarcisio Lucas Pirotta Proyecto de investigación “El Arte Generativo en las Artes Multimediales” – Director Carmelo Saitta IUNA / Artes Multimediales – Yatay 843 – Ciudad Autónoma de Buenos Aires – tel : 4862.8209 [email protected] Palabras clave Simulación, física, software, librerías, partículas Introducción El presente trabajo es un relevamiento de herramientas de software, algoritmos y hardware, desarrolladas recientemente para generación de sistemas de simulación física y sistemas complejos aplicados a la generación de imagen, tanto para producciones lineales o interactivas en tiempo real. Los algoritmos de colisión y simulación física han logrado tal nivel de optimización que permitieron su aplicación en simulaciones de tiempo real no solo en el campo científico, comercial o del entretenimiento (basicamente orientado al el desarrollo de video juegos), sino que tambien han expandido sus posibilidades a computadoras personales permitiendo generar entre otras cosas aplicaciones artísticas interactivas. Desde entonces, la simulación física dejó de ser una tecnología reservada para grandes compañías con un gran capital financiero. Ahora desarrolladores, académicos, programadores y estudiantes pueden aprender y explorar con esta tecnología, en especial gracias a la aparición de varios Physics engines 1 a modo de librerías de código abierto, principal objeto de análisis de este trabajo. 1 Sistemas de simulación física y sistemas complejos Comenzaremos haciendo referencia a algunos conceptos relevantes, como ser los sistemas complejos y los sistemas de simulación. Un Sistema Complejo está compuesto por varias partes interconectadas o entrelazadas cuyos vínculos crean información adicional no visible antes por el observador. Como resultado de las interacciones entre elementos, surgen propiedades nuevas que no pueden explicarse a partir de las propiedades de los elementos aislados. Dichas propiedades se denominan propiedades emergentes. Con respecto a los sistemas de simulación física podemos decir que son modelos que tratan de simular, reproducir y representar el comportamiento que tienen los objetos en la realidad acuerdo a las leyes físicas que nos rigen. Las simulaciones se ejecutan de forma cíclica, calculando el estado de los cuerpos durante intervalos discretos de tiempo. Los pasos de una simulación física interactiva son estos: 1- Calculo de sumatoria de fuerzas iniciales: gravedad, torques, y otras fuerzas inducidas por controladores. 2- Con estas fuerzas se estiman las trayectorias que estos cuerpos realizarán en el siguiente intervalo de tiempo integrando las ecuaciones de movimiento newtonianas. 1 motor físico en ingles, es una expresión empleada en informática para referirse a un software capaz de realizar simulaciones de ciertos sistemas físicos como la dinámica del cuerpo rígido, el movimiento de un fluido y la elasticidad. Se emplean sobre todo en la industria de los videojuegos. 1

description

jukgjkkkk

Transcript of PIROTTA Sistemas Simulacion

  • Sistemas de simulacin fsica y sistemas complejos: Relevamiento de herramientas de software y hardware para la generacin de

    imagen lineal o interactivaAutor: Tarcisio Lucas Pirotta

    Proyecto de investigacin El Arte Generativo en las Artes Multimediales Director Carmelo Saitta IUNA / Artes Multimediales Yatay 843 Ciudad Autnoma de Buenos Aires tel : 4862.8209

    [email protected]

    Palabras claveSimulacin, fsica, software, libreras, partculas

    IntroduccinEl presente trabajo es un relevamiento de herramientas de software, algoritmos y hardware, desarrolladas recientemente para generacin de sistemas de simulacin fsica y sistemas complejos aplicados a la generacin de imagen, tanto para producciones lineales o interactivas en tiempo real.

    Los algoritmos de colisin y simulacin fsica han logrado tal nivel de optimizacin que permitieron su aplicacin en simulaciones de tiempo real no solo en el campo cientfico, comercial o del entretenimiento (basicamente orientado al el desarrollo de video juegos), sino que tambien han expandido sus posibilidades a computadoras personales permitiendo generar entre otras cosas aplicaciones artsticas interactivas.

    Desde entonces, la simulacin fsica dej de ser una tecnologa reservada para grandes compaas con un gran capital financiero. Ahora desarrolladores, acadmicos, programadores y estudiantes pueden aprender y explorar con esta tecnologa, en especial gracias a la aparicin de varios Physics engines1 a modo de libreras de cdigo abierto, principal objeto de anlisis de este trabajo.

    1 Sistemas de simulacin fsica y sistemas complejos

    Comenzaremos haciendo referencia a algunos conceptos relevantes, como ser los sistemas complejos y los sistemas de simulacin.

    Un Sistema Complejo est compuesto por varias partes interconectadas o entrelazadas cuyos vnculos crean informacin adicional no visible antes por el observador. Como resultado de las interacciones entre elementos, surgen propiedades nuevas que no pueden explicarse a partir de las propiedades de los elementos aislados. Dichas propiedades se denominan propiedades emergentes.

    Con respecto a los sistemas de simulacin fsica podemos decir que son modelos que tratan de simular, reproducir y representar el comportamiento que tienen los objetos en la realidad acuerdo a las leyes fsicas que nos rigen.

    Las simulaciones se ejecutan de forma cclica, calculando el estado de los cuerpos durante intervalos discretos de tiempo. Los pasos de una simulacin fsica interactiva son estos:

    1- Calculo de sumatoria de fuerzas iniciales: gravedad, torques, y otras fuerzas inducidas por controladores.

    2- Con estas fuerzas se estiman las trayectorias que estos cuerpos realizarn en el siguiente intervalo de tiempo integrando las ecuaciones de movimiento newtonianas.

    1 motor fsico en ingles, es una expresin empleada en informtica para referirse a un software capaz de realizar simulaciones de ciertos sistemas fsicos como la dinmica del cuerpo rgido, el movimiento de un fluido y la elasticidad. Se emplean sobre todo en la industria de los videojuegos.

    1

  • 3- Se calculan los punto de contacto entre las superficies de los modelos de colisin mediante intersecciones geomtricas. Se aplican algoritmos avanzados que permiten determinar el punto y el vector de tangencia que separa dos objetos de superficie convexa. Los objetos cncavos se representan como un conjunto de objetos convexos.

    Estos algoritmos de colisin detectan tambin la distancia y eje de separacin entre cuerpos lo que permite estimar el tiempo de colisin dadas las trayectorias estimadas en el paso anterior. Con el dato de tiempo estimado de colisin cada cuerpo reajusta su posicin evitando atravesar como un fantasma un muro por efecto de un desplazamiento grande durante un intervalo de tiempo.

    1.1 Antecedentes

    1.1.1 Video juegosEl principal antecedente de estos sistemas de simulacin son los video juegos. La Fsica en los juegos ha sido fundamental desde los inicios de la industria en los aos 70s. Desde el clsico Pong hasta los complejos simuladores de vuelo usados por la Fuerza Area de los Estados Unidos. Sin embargo, aunque la Fsica en los primeros juegos cumpla un papel fundamental, su aplicacin fue muy limitada debido a la falta de hardware capaz de realizar extensos clculos numricos en tiempo real.

    Por lo general la gran mayora de juegos de arcade limitaban su funcionamiento a simulaciones discretas de autmatas finitos simplificados. La secuencia de ejecucin de las acciones de los agentes inteligentes se realizaban por turnos, y el dinamismo era casi nulo.

    Algunos Juegos como Pacman y Mario Bros podan ofrecer la ilusin de dinamismo implementando simples rutinas de movimiento lineal.

    En este tipo de juegos los carros son representados internamente en el programa como simples celdas que se desplazan en una gran matriz; esta matriz se visualizaba en el juego como la pista prediseada que el usuario tendra que atravesar evitando los obstculos (celdas ocupadas). En la pantalla estas celdas cobraban vida como imgenes pinceladas del escenario. Para hallar colisiones entre el carro del jugador y el escenario se verificaba de forma discreta si el carro se encuentra en la celda ocupada por otro carro o por un rbol. Aqu, la fsica de newton nada tena que ver: la aceleracin se basaba en la rapidez a la cual se desplaza la celda del carro entre las filas de la matriz, pero ante los ojos del jugador daba la ilusin de que se desplazaba a gran velocidad por una autopista en las playas de Miami.

    Solo hasta el final de los 80s una serie de juegos de carros de PC revolucionaron la simulacin fisica en tiempo real: La serie Test Drive, y el titulo ms famoso de esta fu Stunt Racer para MS-DOS y Amiga. Solo hasta la aparicin de este juego las ecuaciones de Newton al fin salieron la luz a traves del monitor del computador. Este juego ha dado las bases para otros titulos de consolas como Need For Speed, Nascar y Daytona Racer.

    Posteriormente se establecieron las bases del algoritmo fundamental de toda simulacin fsica, el cual consiste en lo siguientes principios:

    Los objetos estn compuestos de un Modelo de Colisiones el cual representa la superficie geomtrica de este, y el Modelo de Cuerpo Rgido el cual define las propiedades dinmicas de este tales como posicin, orientacin , velocidad, aceleracin, masa y distribucin de inercia (usado en la dinmica de rotaciones).

    Los objetos pueden interactuar entre si aplicndose fuerzas entre ellos, ya sea por colisiones elsticas o por ests enlazados mediante alguna articulacin (bisagras, eslabones, resortes).

    1.1.2 Arte

    Podramos considerar a Karl Sims ( http://www.karlsims.com ) como principal antecedente del desarrollo de estas tcnicas de simulacin aplicadas al campo artstico, en este caso aplicado a la generacin efectos visuales. Este artista digital e investigador cientfico desarroll una serie de trabajos en el campo de la simulacin de sistemas complejos y modelos evolutivos. Como resultado

    2

  • de sus investigaciones fundo GenArts, una importante empresa de software dedicada a la creacin de efectos visuales.

    Entre sus trabajos interactivos podemos mencionar a Galpagos(1997) y Genetic Images (1993) y entre sus desarrollos de animacin computada lineal no interactiva se destacan Evolved Virtual Creatures (1994) y Liquid Selves (1992) y Panspermia (1990).

    figura 1: Evolved Virtual Creatures y Panspermia | http://www.karlsims.com

    Golan Levin ( http://www.flong.com/ )es una artista, diseador y compositor interesado en la creacin de dispositivos y experiencias que exploren nuevos modos de expresin audiovisual. Su trabajo se enfoca en el diseo de sistemas para la creacin de performances tanto de sonido como imagen. Como resultado de esto surge entre otros proyectos, Messa di Voce, una serie performances audiovisuales en las cuales la voz, los gritos y canciones producidas por vocalistas son materializadas en tiempo real por aplicaciones de visualizacin y simulacin interactiva especialmente desarrolladas para la sntesis de la imagen a base de sistemas complejos.

    Figura 2:Izquierda Fluid. Derecha Bounce (Jaap's Solo) | www.tmema.org/messa/messa.html

    Por ultimo podemos citar a Mine Control ( www.mine-control.com ), un grupo de artistas que empleando conocimientos adquiridos en la industria del video juego desarrolla sus propias herramientas para producir instalaciones interactivas e introducir a los participantes en novedosas tcnicas de interaccin que comprometen ntegramente cuerpo del usuario.

    Como ejemplo de este tipo de dispositivos, es oportuno hacer referencia a "Mariposa" o Sand, dos instalaciones que ofrecen al usuario la posibilidad de interactuar con diversos elementos virtuales a travs de la propia sombra que proyecta el cuerpo sobre la pantalla.

    3

  • Figura 3 :Izquierda Sand. Derecha Mariposa | www.mine-control.com

    1.2 Libreras simulacin fsica de entornos en 2DEstas libreras estn destinadas al la generacin de aplicaciones en 2D especialmente utilizadas en entornos de programacin como Processing y Adobe Flash.

    1.2.1 Box2D ttp://box2d.org/

    Box2D es un motor open source de simulacin fsica en 2D escrito en C++ por Erin Catto y que ha sido utilizado en conocidos juegos como el Crayon Physics Deluxe, Rolando, Fantastic Contraption, Incredibots, Angry Birds, Transformice y Stripe physics.

    El motor se origin como parte de un tutorial de simulacin fsica para la Game Developer Conference en marzo del 2006 y es es compatible para plataformas Nintendo DS, Wii, Android y iPhone como tambin en la mayora de los sistemas operativos. El motor ha sido adaptado en varias libreras para otros entornos y lenguajes de programacin, como Java, Adobe Flash y Processing.

    El sistema de deteccin y resolucin de partculas consta de tres partes: un barrido incremental y corte de fase amplia, una unidad de deteccin de colisiones continua y generador de contacto en tiempo continuo. Estos algoritmos permiten eficientes simulaciones rpidas y con grandes pilas sin perder colisiones o causar inestabilidad.

    Dentro de las capacidades del motor, podemos mencionar las siguientes:

    Colisiones: - deteccin continua de colisiones - deteccin simultnea de mltiples contactos- crculos y polgonos convexos

    Fsica:- gravedad- contacto, friccin, restitucin- correccin de posicin desacoplada- precisin de fuerzas de reaccin e impulso

    Uno de los principales conceptos de Box2D es el de mundo (world).El mundo definido en Box2D maneja todo dentro de la simulacin definida. Este almacena un listado de todos los objetos presentes, as como todos sus puntos de conexin.

    Al ser creado, el mundo requiere de 3 parametros:

    4

  • - AABB (axis-aligned bounding box), es decir una caja que define los bordes del universo a simular. Estoes importante, porque Box2D ignora cualquier cosas existente fuera de esa caja

    - Gravedad, se debe definir un vector de gravedad, su fuerza y direccin. No tiene porque ser fija, puede ser modificada en cualquier momento en que el programa este siendo ejecutado.

    - DoSleep, este es un argumento boleano que por lo general se define siempre como verdadero, indica al sistema que los objetos pueden dormir (sleep) cuando se les indica que descansen (rest).

    Conociendo estos tres conceptos mencionados, es posible crear un mundo Box2D.

    Podemos mencionar como ejemplo de la aplicacin de esta librera los siguientes proyectos:

    1.2.1.1 TouchPhysicshttp://www.info-design.net/multitouch/

    TouchPhysics es un prototipo de software educativo para el aprendizaje de leyes fsicas implementado sobre una mesa tangible creado por Andrea Mller y Jrgen Rhm de la Stuttgart Media University (HdM), Stuttgart , en Alemania.

    La aplicacin fue desarrollado para una pantalla Evoluce-ONE2 integrada con GestureWorks3 en plataforma Flash, empleando ActionScript3 y el motor fsico Box2D.

    Figura 4: Touch Physics | http://www.info-design.net/multitouch/

    1.2.1.2 Crayon Physicshttp://www.crayonphysics.com/

    Crayon Physics es un video juego diseado por Petri Purho en 2008, y emplea como motor fsico a Box2D. El juego es un atecedente importante en la simulacin fisica de distintos comportamientos como la gravedad, masa y energa kinetica. Estos principios son parte esencial del juego, ya que el mismo consiste en dibujar una serie de elementos que, segn su comportamiento fsico y la accin que el usuario realice sobre los mismos, permitan poner en movimiento una pelota y moverla desde su posicin original hasta un punto de llegada para poder cumplir con la meta de la escena.

    2 Evoluce es una mesa sensible multi touch con funcin hptica y Full HD, con una resolucin de 19201080 pxeles, el dispositivo de la pantalla permite reconocer manos, dedos y lpices como interfaces de control. http://evoluce.com

    3 GestureWorks es una librera de cdigo abierto para captacin de gestos orientada a la creacin de aplicaciones para pantallas tctiles con ms de 200 gestos identificados. Este motor se integra fcilmente en plataformas como Flash o Flex. Es compatible con el protocolo TUIO permitiendo diversos modos de colectividad. www.gestureworks.com/

    5

  • Figura 5: Crayon Physics | http://www.crayonphysics.com/

    1.2.1.3 Limbohttp://limbogame.org/

    Limbo es un jugo de platformas de origen danes, se lanz en julio del 2010 de manera exclusiva para Xbox Live Arcade, y posteriormente para PlayStation Network and Microsoft Windows. Es una aplicacin de recorrido en 2D que incorpora un sistema fsico diseado con Box2D, que maneja los objetos del entorno y el personaje del jugador. Siguiendo una lnea similar al Crayon Physics, en Limbo el jugador debe guiar al personaje para que atraviese diferentes obstaculos y debe encontrar soluciones a diferentes problemas para poder continuar su recorrido. El juego se presenta en forma monocromatica en blanco y negro, utilizando luces y grano de pelicula asi tambien como minimos sonidos de ambiente paa crea una atmosfera densa, cercana al horror.Es considerado un ejemplo del video juego como arte.

    Figura 6: Capturas de Limbo Game | http://limbogame.org/media/

    La librera Box2D cuenta con varias versiones adaptadas para diferentes entornos, especialmente Processing, dentro de las cuales podemos mencionar las siguientes:

    1.2.1.4 JBox2D http://www.jbox2d.org/

    Es una versin para Java del motor Box2D creado por Erin Catto. El proyecto esta encabezado por Daniel Murphy, alis toucansam, y fue iniciado a finales de 2007 por quixote_arg ( www.jengibre.com.-ar ) y ewjordan ( http://www.ewjordan.com/ ).

    6

  • 1.2.1.5 Pbox2dhttps://github.com/shiffman/PBox2D

    Daniel Shiffman (http://www.shiffman.net/) observo que algunas librerias desarolladas para processing, como Jbox2D por ejemplo, tenian un excelente renidmiento pero al instalarla el usuario se encontraba con una gran coleccin de archios java, que no eran ciertamente muy accesibles para los programadores de processing. Su objetivo fue crear una serie de ejemplos simples que, aunque no son tan variados como los que ofrece jbox2d.org, facilitan bastante el abordaje a Box2D dentro de processing.De esta manera desarroll Pbox2D, una librera para Processing que bsicamente lo que realiza es definir una serie de parmetros para creacin del mundo (world) y ofrece un facil acceso a algunas funciones que son llamadas constrantemente, sin embargo requiere un conocimiento previo de los objetos de Jbox2D.

    Figura 7: Proyectos desarrollados por Daniel Shiffman | http://www.shiffman.net/

    1.2.1.6 Box2DFlashhttp://www.box2dflash.org/

    Librera open source creada por Boris (http://personal.boristhebrave.com/ ) en base del motor Box2d anteriormente mencionado, que permite ser ejecutado dentro del entorno de Flash, podramos definirlo como una versin en actionScript3 de Box2d.

    1.2.1.7 Fisicahttp://www.ricardmarxer.com/fisica/

    Librera creada por Ricard Marxer para el entorno de Processing a inicios del 2011. Es un simple wrapper4 de Jbox2D que intenta hacer mucho mas fcil la creacin de modelos fsicos utilizando objetos del motor dentro del mismo Processing

    Podemos mencionar como ejemplo de esta librera una serie de atractores realizados por el autor de la librera, donde trata de explotar el potencial intuitivo de las interacciones mas bsicas y que logran producir a partir de procesos simples resultados interesantes y sorprendentes.

    4 Envoltura. En programacin se denomina de esta forma a un programa que controla el acceso a un segundo programa. Facilita el acceso y la inclusin de libreras y motores en diversas plataformas.

    7

  • Figura 8: Serie de atractorres | http://www.ricardmarxer.com/mechanical_attractors/

    1.2.1.8 BoxWrap2Dhttp://jbox2d.nfshost.com/processing/

    Es un un proyecto bastante reciente que se encuentra en una versin pre-alpha, desarrollado por ewjordan, BoxWrap2D es una aplicacin que corre por encima de Jbox2D, permitiendo su integracin con Processing.

    1.2.2 APEhttp://www.cove.org/ape/

    APE (Actionscript Physics Engine) es un motor de simulacin fsica 2D gratuito de cdigo abierto escrito en AS3 para Flash y Flex, desarrollado bajo la licencia de MIT por Alec Cove. Presenta las siguientes caracteristicas:

    Partculas circulares: - fijas o no fijas- de masa , elasticidad y friccin variable

    Partculas rectangulares: - rotacin- fijas o no fijas- de masa , elasticidad y friccin variable

    Partculas toroidales:- traccin y velocidad angular- de masa , elasticidad y friccin variable

    Resortes:- limitaciones- colisionables o no colisionables

    figura 9: Demos | http://www.cove.org/ape/demo1.htm

    8

  • 1.2.3 Fisix Enginewww.fisixengine.com/

    Fisix Engine es un motor de simulacin fsica en 2D diseado para Adobe Flash, que utiliza algoritmos Verlet5. Esta escrito completamente en AS3 ( ActionScript3 ) para poder ser utilizado en en flash player mejorando las capacidades del CPU. Aunque la plataforma de Flash es mas lenta comparada con otras como c/c++, or java, este motor permite realizar interesantes aplicaciones 2D con una ptima simulacin de partculas y cuerpos rgidos en tiempo real.

    Como se menciono anteriormente , este motor utiliza mtodos del algoritmo Verlet debido a que son mtodos rpidos y estables. La estructura de la librera del motor es orientada a objetos, con lo cual cada parte funciona como un objeto independiente con tareas especficas.

    Figuar 10: Capturas de Mona the Ragdoll y Bike Game | www.fisixengine.com/

    1.2.4 FOAMhttp://code.google.com/p/foam-as3/

    FOAM es un motor fsico 2D de cuerpos rgidos escrito en ActionScript 3.0. Fue pensado como una referencia estructural y matemtica para desarrolladores interesados en simulaciones fsicas en el rea de los video juegos.

    Figura 11: Demos | http://drawlogic.com/2007/11/07/as3-foam-2d-physics-engine/

    5 Mtodo ms ampliamente usado en los programas de dinmica molecular. Este algoritmo usa las posiciones y aceleraciones al tiempo t, y las posiciones del paso previo, r(t-t) para calcular las nuevas posiciones en t+t, r(t+t).

    9

  • 1.3 Libreras simulacin fsica de entornos en 3D

    1.3.1 Bullet Physics http://www.bulletphysics.com

    Bullet Physics es una importante librera de cdigo abierto para la deteccin de colisiones y simulacin fsica de cuerpos rgidos en 3D que esta siendo utilizada por las principales empresas en el rea de los video juegos. Recientemente el estudio de programacin Disney Avalanche ha lanzado al mercado su juego Toy Story 3 para las plataformas PlayStation 3, XBox 360 y Wii, empleando para su desarrollo Bullet physics. La librera se ha probado a si misma en otros emprendimientos de la industria cinematogrfica como 2012 (Sony Pictures ), Megamind y Shrek ( Dreamworks ).

    Figura 12: Cuadro de la pelicula Megamind | http://wikysdiary.blogspot.com/2010/12/megamind.html

    1.3.2 Momentumhttp://www.exocortex.com/simulation/momentum

    Momentum es una librera desarrollada por Exocortex Technologies6, escrita y diseada por Helge Mathee, fue pensada desde su concepcin para generar resultados en tiempo real y al mismo tiempo mantener la flexibilidad, el control y la solidez en la simulacin que necesita el artista o usuario. La herramienta esta basada en otra librera que ha demostrado gran solidez, la ya mencionada Bullet Physics.

    Provee soporte para los siguientes fenmenos fsicos y sus interacciones: Cuerpos rgidos y blandos, ropa, cuerdas, restricciones y deformaciones para Diagramas de Confiabilidad de Bloques (RBD), intereacciones, filtrado de colisiones y plasticidad.

    6 Exocortex Technologies es una compaa tecnolgica que se especializa en el desarrollo de avanzado de software en las reas de visualizacin y simulacin de imagen en 3D orientadas a la creacin de efectos visuales para contenidos de cine, video juegos y aplicaciones artsticas basados en C#, C++ y .NET.

    1

  • Figura 13: Ejemplos de simulaciones | http://www.exocortex.com/simulation/momentum

    1.3.3 Newtonhttp://www.newtondynamics.com

    Desarrollada por ulio Jerez y Alain Suero, Newton Game Dynamics es una librea de cdigo abierto para la simulacin de entornos fsicos en tiempo real. La librera ofrece manejo de escena, deteccin de colisiones y conductas dinmicas. El motor que posee implementa algoritmos deterministas que no estn basados en los tradicionales mtodos interactivos o LCP ( Link Control Protocol ) , pero que sin embargo logra una estabilidad y velocidad similares a las obtenidas si se utilizaran los mtodos mencionados. Actualmente se encuentra disponible para Windows, Linux, MAC (incluyendo iPhone y iPod touch).

    Entre los proyectos desarrollados con esta librera, podeoms mencionar los siguientes video juegos: Disc Drivin (Pixelocity Software) y 10 Pin Shuffle (Digital Smoke) ambos para iphone, Titanic - Der Tauchfahrt Simulator (TML-Studios) y Barrel Mania.

    figura 14: Disc Drivin | http://www.pixelocitysoftware.com/

    1.3.4 Solidhttp://www.dtecta.com

    SOLID es una librera para la deteccin de colisiones de objetos geomtricos en en 3D que permite realizar teste de proximidad con diferentes tipos de formas, incluyendo: mallas triangulares deformables, cajas, elipses, y poliedros convexos. La herramienta es especialmente til para la deteccin de colisiones entre objetos que e mueven lentamente en el tiempo. El movimiento de los objetos es controlado por la aplicacin cliente y no son afectados por Solid. Tambin se puede emplear para la simulacin fsicas, aunque no se considera un motor fsico propiamente, delega en otras libreras la aplicacin de las leyes fsicas.

    El empleo de la herramienta es ideal en las reas de desarrollo de juegos , realidad virtual e investigacin.

    1

  • 1.3.5 PhysXhttp://physxinfo.com/

    PhysX es un motor de simulacin fsica que funciona como aplicacin intermedia o "middleware" diseado para llevar a cabo clculos fsicos muy complejos. Conocido anteriormente como la SDK de NovodeX, fue originalmente diseado por AGEIA y actualmente desarrollado por Nvidia e integrado en sus placas grficas y en consolas como la Playstation, por lo cual tambin podemos considerarlo como un hardware. Estas placas integradas con PhysX producen una aceleracin en el proceso, liberan a la CPU de tareas propias del renderizado de la imagen, proporcionando imgenes ms fluidas.

    Los motores fsicos de middleware permiten a los desarrolladores de animaciones y video juegos abstraerse durante el desarrollo, ya que la herramienta proporciona funciones especializadas en simulaciones fsicas complejas, lo cual da como resultado una alta productividad en la escritura de cdigo. Actualmente se encuentra disponible para desarrolladores en plug-in para Autodesk 3ds Max y Maya

    figura 15: pantallas de los plug-in para 3Ds Max y Maya | http://physxinfo.com/

    1.3.6 Simulinkhttp://www.mathworks.com/products/simulink/

    Simulink motor de simulacin de alto nivel que funciona sobre el entorno de programacin Matlab7 . Podramos definirlo como una herramienta de simulacin de modelos o sistemas, con cierto grado de abstraccin de los fenmenos fsicos involucrados en los mismos. Se hace hincapi en el anlisis de sucesos, a travs de la concepcin de sistemas (cajas negras que realizan alguna operacin).

    Se emplea arduamente en Ingeniera Electrnica en temas relacionados con el procesamiento digital de seales (DSP), involucrando temas especficos de ingeniera biomdica, telecomunicaciones, entre otros. Tambin es muy utilizado para la stintesis y procesamiento de imagen, video, y en Ingeniera de Control y Robtica.

    Una aplicacin bsica de simulink combinado con arruino, una cmara y motores servo permite reproducir un modelo fsico conocido como Ball on Plate (bola en plato) donde una plataforma robtica hace mover una pelota pero mantenindola siempre dentro de la misma, calculando los ngulos de inclinacin y la duracin de los movimientos para que la pelota no caiga fuera de la plataforma.

    7 MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un software matemtico de alto nivel que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacin propio (lenguaje M) y que permite realizar tareas y clculos mas rpidamente en relacin a otros lenguajes como el C, C++ o Fortran. Est disponible para las plataformas Unix, Windows y Apple Mac OS X. Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la representacin de datos y funciones, la implementacin de algoritmos, la creacin de interfaces de usuario (GUI) y la comunicacin con programas en otros lenguajes y con otros dispositivos hardware.

    1

  • Figura 16: Ball on plate | http://www.youtube.com/watch?v=JwS0zQOs_oA

    1.3.7 Sapphire Visual Effectshttp://www.genarts.com/

    El motor Sapphire es desarrollado por la empresa GenArts, fundada por el anteriormente mencionado Karl Sims.

    Es un software utilizado mundialmente por los mejores artistas y creadores para disear efectos realmente sorprendentes. Posee un plug-in llamado ParticleIllusion especialmente diseado para el trabajo con simulacion de particulas y sistemas complejos.

    Figura 17: Visa del antes y despues de una escena aplicando Sapphire | http://www.genarts.com/

    1.4 Hardware

    1.4.1 Cmara Kinecthttp://openkinect.org/

    El lanzamiento de Kinect en noviembre del 2010 marco un hito importante en la historia de los videojuegos y aplicaciones interactivas.

    Kinect para Xbox 360, o simplemente Kinect (originalmente conocido por el nombre en clave Project Natal), es un dispositivo, cuyo elemento central es la propia cmara Kinect, creado por Alex Kipman, desarrollado por Microsoft para la videoconsola Xbox 360. Lo novedoso del dispositivo es que permite a los usuarios controlar e interactuar con la consola sin necesidad de tener contacto fsico con un controlador de videojuegos tradicional, mediante una interfaz natural de usuario que reconoce gestos, comandos de voz, objetos e imgenes.

    1

  • Resulta interesante analizar este dispositivo ya que da total libertad al usuario y es la combinacin ideal para varias de las herramientas de simulacin anteriormente analizadas, ya que permite un control intuitivo y real, es un complemento para que la simulacin no solo est presente en el contenido de la aplicacin, sino tambien su control e interactividad fsica real.

    Lo ms novedoso de la cmara Kinect es que incorpora unos sensores 3D, unos leds infrarojos que proyectan una trama, que al reflejarse en algun objeto o usuario, reconstruyen una matriz tridemencional, lo que le permite al dispositivo tener un registro en profundidad de los objetos, ademas de una captacion optica en 2D.

    Figura 18: Cmara kinect. Puntos proyectados por los leds infrarrojos para la captacin en 3Dhttp://www.xbox.com/es-es/kinect

    El dispositivo tuvo como objetivo primordial aumentar el uso de la Xbox 360 y competir con los sistemas Wiimote y PlayStation Move, que tambin controlan el movimiento para las consolas Wii y PlayStation, respectivamente. Sin embargo rpidamente las potencialidades de la cmara fueron empleadas para el desarrollo de otras aplicaciones, utilizando la cmara de manera independiente en en diversos sistemas operativos y plataformas, como un dispositivo que excede a la consola Xbox.

    OpenKinect ies una comunidad abierta de desarrolladores interesada en utilizar la asombrosa cmara Kinect en computadoras y otros dispositivos, desarrollando libreras de cdigo abierto que permiten a las Kinect ser usada con Windows, Linux y Mac. La tendencia impuesta por esta comunidad de desarrolladores y programadores ha dado origen a lo que se conoce como Kinect hacking, del cual han surgido varias librerias y aplicaciones. De estos desarrollos podemos mencionar las libreras de cdigo abierto para Processing openkinect desarrollada por Daniel Shiffman y dLibs de Thomas Diewald, como as tambien primeSense, un emprendimiento alternativo a la kinect.

    Como ejemplos de aplicaciones orientadas al area de la creacin artstica cabe mencionar el trabajo Kinect Graffiti&trade del artista frances Jean-Christophe Naour ( jcnaour.com/ ).

    Kinect Graffiti es una herramienta de graffiti digital que utiliza la cmara "Microsoft Kinect". La idea es utilizar la cmara Kinect para registras el movimiento que genera el graffiti. Visualizando el cuerpo y dibujando desde diferentes ngulos en tiempo real, comprendiendo el espacio que rodea al sujeto, deteniendo el tiempo, etc... Kinect Graffiti es una herramienta creada con bibliotecas openGL, SimpleOpenNI, openNI y primeSense.

    1

  • Figura 19: Kinect Graffiti&trade | http://jcnaour.com/#Kinect-Graffiti-

    Otro ejemplo es Catalina, un video clip creado por Moullinex. Para la realizacin de este video se utilizo la librera de Daniel Shiffman. Se realizaron algunas modificaciones a la misma para poder obtener la data 3D y colocarla dentro del editor de imagen, en este caso el Cinema 4D y After Effects.

    Figura 20: Catalina | http://www.creativeapplications.net/processing/moullinex-catalina-processing-kinect/

    1.5 Conclusin

    Primeramente debemos aclarar que inicialmente la idea de este trabajo era ampliar el relevamiento de estas herramientas al mbito del sonido. Si bien el empleo de la simulacin fsica para control de movimientos e interacciones entre objetos en un entorno 3D se ha vuelto algo casi comn en relacin a la produccin de imagen, esta idea no se ha extendido en un sentido general al mbito del sonido. Por lo general los componentes de un sistema sonoro dinmico comprenden sonidos pre-grabados que son ejecutados en respuesta a determinados eventos.

    En el proceso de elaboracin de este trabajo no se han encontrado libreras o aplicaciones que permitan emplear los modelos de simulacin de una manera anloga a las libreras relevadas y anteriormente descritas para la produccin de imgenes.

    Finalmente luego del recorrido realizado por las diferentes herramientas de software y hardware para la simulacin fsica y de sistemas complejos, es posible concluir en primer lugar que el avance tecnolgico de los ltimos aos, en especial aquellos provenientes de la industria del entretenimiento, han favorecido el desarrollo de diversas herramientas que actualmente se encuentran fcilmente disponibles para desarrolladores y artistas en una serie de libreras, la gran mayora de cdigo abierto gratuito. Ests aplicaciones no requieren el elevado nivel de conocimientos en programacin que requerira la generacin completa de algoritmos para la creacin de los modelos de simulacin, sino que brindan una serie de modelos bsicos ya resueltos, como quien dice listo para usar.

    Como segunda reflexin, podemos indicar que la implementacin de estas herramientas en el proceso de creacin artstica es un aporte positivo, ya que pone a disposicin de los artista un recurso ms de expresin y comunicacin, donde la tecnologa contribuye en la creacin del contenido y del enriquecimiento esttico del discurso.

    1.6 Referencias bibliogrficas

    [1] http://processing.org/

    [2] http://www.wikipedia.org/

    1

  • [3] http://web.mit.edu/

    [4] http://elybob.wordpress.com/2011/05/21/physics-engines/

    [5] John Maeda (2004) Creative Code: Aesthetics + Computation,Ed. Thames & Hudson

    [6] Kenny Erleben/Sporring Physics Based Animation" , Ed. Charlers River Media.

    [7] Christer Ericson "Real-time collision detection" Ed. Morgan Kaufmann.

    [8] Gino van den Bergen "Collision Detection in 3D environments", Ed. Elsevier.

    1