-
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