Advertisement
Bienvenido a Squishdot Reportes Anuncios Debian Ciencia Linux
 principal
 nivel superior
 enviar artículo
 buscar
 administrar
 acerca de ...
 rdf
 rss
 main


!!! Primeros Demos !!!!!
Reportes Posted by angolero on Friday July 07, @01:24PM el 2006
from the dept.
Reporte

Hola a todos !!!

Me siento contento al anunciar los primero demos aparecidos del programa que ando haciendo.

Pero primero que nada e de pedir una disculpa a aquellos amigos que solo utilizan Linux, me temo que existe una parte del demo que solo funciona en Windows, por desgracia (o por suerte) ya tenia escrito un pequeño código en donde varios threads interaccionan, como en un principio se analizo la posibilidad (todavía no descartada por completo) de hacer la parte grafica en directX, estudie los threads de Windows en donde realice el susodicho código; En fin ahora tenemos la vista en Coin3d una librería grafica GPL en C++ completamente multiplataforma basada en open inventor. Pero con las prisas no e desarrollado la parte de los threads en alguna librería multiplataforma C++ GPL (creo será Boost).

Además pongo unos cortos en donde se ve el contexto de lo que estoy haciendo, para aquellos con no tienen idea y para los que la tenemos o creemos tenerla también, ya que una de las partes mas bellas de la ciencias empíricas son precisamente, los datos de fenómenos impresionantes, aunque una ves mas no se si se puedan ver en Linux.


OK a lo nuestro:

El archivo comprimido con los demos y videos lo pueden bajar de aquí, a la banda del proyecto les recomendaría ir siguiendo el texto antes de ver todos los .exe.
Los ejemplos los hice pensando en que los ven en las maquinas Dell mas nuevas del cubículo, o al menos en compus que tengan algún acelerador de video, si no es así, el demo 8.exe probablemente resulte estupidamente lento, y en general mis comentarios sonaran excepcionalmente optimistas casi rallando en el delirio :-p.

El primer demo (1.exe) mas que mostrar como funciona todo es para mostrar un error, todavía no e terminado bien la parte multithread del programa, así que en este demo se ve aparecer una excepción, esta excepción se da cuando el modelo llama al render de la vista antes de que la vista allá terminado de renderear la anterior iteración (la escena anterior), así que tenemos el fenómeno conocido como race condition, es decir dos threads quieren acceder a un dispositivo al mismo tiempo, en este caso a la función de rendereo.
Esto se da porque la gradilla es muy pequeña y el modelo recorre muy rápido todas las celdas y las modifica antes que la vista termine lo suyo, si no aparece la susodicha excepción en sus compus es por que tienen unas compus súper lentas jajaja, en fin.

El siguiente demo (2.exe) solo muestra la gradilla en la condición inicial, para que vean todas las opciones con que cuenta coind3d, esta es un vista genérica para trabajar demos, ya que muestra muchas mas cualidades de las que se muestran y necesitan en una simulación normal.
Por cierto, en la pantalla de programa, se ven unas letras que aparecen cada 3 segundos creo, simplemente son otros threads, del demo, para que sea mas evidente que se tienen otros hilos de ejecución además de la vista y el modelo, en estos casos, y aunque ahora no hagan nada son el controlador y el event manager

El siguiente demo (3.exe) muestra una gradilla de células de 250*250, de un automaton sincrónico  con bordes, con  la regla de cambio de estado cíclica de Cage, a de mencionarse que no se ha hecho ningún intento por optimizar el código, y sin embargo por el puro hecho de pasar de python  a C++ al menos en mi computadora se nota mucho la diferencia entre el demo de python de 30*70 y el 3.exe, todo esto ¡SIN LA TARJETA DE VIDEO!, con la tarjeta de video, la cual cuanta con 500 MB de video, aparece la excepción del demo 1. Además si tratan de mover o ampliar la imagen lo mas probable es que la excepción se deje ver, mas race condition.
Por cierto, cuando aparece la vista desplegada, todo el tiempo que se tarda en comenzar la “animación” se debe a que se esta calculando la estructura de la grafica (muy evidente en el demo 8.exe), en base a la topología y el tipo de vecindarios, me párese que esto será una de las partes que se tendrán que atacar de manera fuerte a la hora de llevar a cabo la optimización del código, aunque una vez creada la grafica, esta ya no cuanta con dimensiones, así que para cada iteración del autómatas simplemente se recorren cada uno de los elementos de la grafica y se pasa a la función de siguiente estado, así que optimizar esa parte se ve mas difícil, ya que solo se itera sobre un array.

El siguiente demo (4.exe) muestra las mismas condiciones que los anteriores solo que la gradilla es de 500*500, si cuentan con una tarjeta de video, es decir alguna que no sean los 4 MB o algo así que tienen las integradas a la tarjeta madre, pues verán por fin el modelo como debería verse siempre (si no lo mas probable es que fuera con el anterior).

Los siguientes demos (5.exe, 6.exe, 7.exe) muestra las mismas condiciones que el anterior
Solo que en el primero los bordes del tablero se han eliminado es decir tenemos un toro, aunque e de decir que el patrón se conserva.
A de decirse que con un simple cambio en el código se logra esto, vivan los objetos!!!!

topology->setDimensionNormalized(0);

topology->setDimensionNormalized(1);

Y el siguiente demo muestra todo igual excepto que el vecindario es un poco mas largo.

neighborhood = new TowerNeighborhood(2);

Y por ultimo el ultimo ejemplo de este párrafo es todo igual al del anterior párrafo solo que el automaton no es sincrónico, en donde tampoco se conserva el patrón.

Ya en el súper clabon el siguiente demo (8.exe) muestra las mismas condiciones que los anteriores solo que la gradilla es de 1000*1000, si cuentan con una tarjeta de video buena pues notarán, que con suerte al optimizar el código, la velocidad de este automaton no esta nada mal, con lo que el sueño de un 1000*1000 de manera fácil no párese tan lejano.     

Para estos demos puse las películas 1,2, y 3 esperando que vean cierta similitud entre lo muestreado y lo que queremos evidenciar con toda esta verborrea de modelaje computacional, en las películas se ven patrones de difusión de CAM entre células amebiodes de dictyostelium, estos hongos son unicelulares excepto cuando se reproducen, y para ello forman un pseudos tejido llamado plasmodio, y para organizarse sin un director, se ponen de acuerdo gracias a la emergencia de orden debido a la autoorganización característica de los sistemas fuera del equilibrio termodinámico ….. puf, mejor chequen en google al respecto que es muy largo el rollo o mándenme un mail y yo les mando bibliografía especializada.
Aunque si solo quieren saber más de dictyostelium acá esta la liga a la página de donde saque los videos.

El siguiente demo (9.exe) muestra un ejemplo que yo no programe y solo lo pongo acá para mostrar las bellezas de la librería y se puede ver que un agente que se encuentre cambiando de forma como se avía postulado va a quedar espectacular!! A ver cuantos aguanta al mismo tiempo.

El siguiente demo (10.exe) muestra lo mismo que lo anterior solo que le puse textura asociada, la texturas permitirán imprimir mucho mas realismo a las escenas las cuales se utilizan mucho en los videojuegos.

Asociadas a estos dos demos puse la película 4, que muestra a dictyostelium en otro estado de desarrollo.

--------------------------------------------------------------------------------------------------------------

Por hacer:

Como se ve apenas comenzamos pero algo es algo, dentro del contexto de los autómatas celulares falta vario por hacer, independientemente del contexto del software, tres variantes que me parecen interesantes ya que se soportan por algunas otras librerías de CA’s son:
Ver la posibilidad de ampliar la topología para que se puedan cubrir gradillas hexagonales y triangulares, supongo que en si esto ya se puede, es decir al fin y al cavo lo que tenemos al final es una grafica, pero se tiene que pensar mas a ver que honda.
Comenzar a desarrollar todo el viaje de combinatoria para la creación de los vecindarios.
Y la otra parte mucho mas “realista” se refiere a implementar la estructura de las celdas en bloque ya no solo enfocada a una celda, aunque suene redundante, ya que para implementar la dinámica de fluidos y gases en los CA’s y mantener la ley de conservación de la energía se utilizan los llamados CA’s en bloque los cuales agrupan varias casillas que son las que cambian de estado, y de esta manera se puede mantener la susodicha ley,  sin importar si el CA es en paralelo, es decir sincrónico o no.
En ambos casos también se podría modificar la vista para desplegar  hexágonos y triángulos. Lo cual no es muy difícil, y aplicar imágenes que se usan bastante en el caso de los autómatas de fluidos, como son flechas en ves de colores.

Con respecto al software falta establecer la estructura de excepciones y terminar de ajustar por completo la dinámica de los constructores y get y set métodos.
Empezar a buscar una herramienta para el profiling.
Empezar a documentar (aunque de manera interna el código esta bien documentado).
También me gustaría crear la grafica con la librería Boost ya que en estos momentos la grafica que se crea es simplemente un contenedor de structs los cuales tienen un pointer a la célula central, y el índice del comienzo y el final, estos índices son el comienzo y el final de los pointer colocados en un contenedor que tiene todas las referencias a partes de la gradilla y representan los vecinos de dicha célula.
Implementar las opciones de una y tres dimensiones en la vista y sin duda alguna muchas, muchas, muchas otras cosas mas.

Espero no se les sequen los ojos después de tanto choro, la neta un mensaje de vos ya me empieza a parecer tentador.

Suerte a  todos, y hasta la próxima.

Respuesta de reporte | REUNION URGENTE MIERCOLES 5 DE JULIO A LAS 18:00 HORAS  >

 

Related Links
  • Articles on Reportes
  • Also by angolero
  • Contact author
  • The Fine Print: The following comments are owned by whoever posted them.
    ( Reply )

    Re: !!! Primeros Demos !!!!!
    by Jergas on Sunday July 09, @06:57AM
    Hola constructores del Mundito, o Serpientes Emplumadas (haciendole honor al ultimo nombre de nuestro proyecto),

    Vian, me parece muy chido que ya haya demos, aunque yo soy de esos que esta usando linux, asi que espero con ansia que cambies a esa libreria multiplataforma, pero aun asi hare el esfuerzo de probarlos en maquinas ajenas.

    A los dos, la excelente noticia es que me aceptaron ponencias de ambos en el consol, aunque ya se habia cerrado el call for papers. Para esta ocasion insisto fuertemente en que tenemos que abandonar nuestra tendencia a exponer choro teorico cientifico, no por que tenga algo de malo, sino porque no es la audiencia adecuada para ello. Panx, creo que debes exponer algo sobre Pyrex. Y Vianagan, creo que tu deberias exponer algo sobre graficacion en c++.

    Yo estare en portugal las 2 semanas antes del consol, asi que me gustaria que nos reunieramos en el df para trabajar los 3 algo asi como la penultima semana de este mes. Voy a estar en europa buena parte de septiembre, pero quizas podemos reunirnos en tu casa Vian algunos dias en Agosto despues del consol, pues creo que hay algunos detalles de arquitectura sobre los que hay que ponernos de acuerdo para trabajar bien separados.

    Entre esos detalles estas lo de redes y lo de interoperatividad. Pero eso seria para despues del consol. La reunion de antes seria para algo mucho mas inmediato, pulir nuestra pagina, nuestro espacio en sourceforge, y nuestras conferencias para el consol. Por lo mismo, nuestra reunion de despues del consol la podemos postergar un poco, pero la de antes no.


    [ Reply to this ]
    • Re: !!! Primeros Demos !!!!!
      by angolero on Wednesday July 12, @04:59PM

      Pues supongo que suena bien, pero a que te refieres con que se aceptaron dos ponencias?

      Supongo que yo podría hablar de varias cosa de c++ aunque todavía no soy ni medianamente maestro en ello, puede ser la librería de graficas de boost, o un poco de cómo hacer código c++ mas rápido, que es justamente a lo que me dedicaba en estos momentos, ya que estaba empezando por dar una nueva revisadita a todo mi código.

      E reunido bastante bibliografía de c++ la cual se puede encontrar aquí y me encontraba leyendo el libro Efficient C++; Performance Programming Techniques by Dov Bulka and David Mayhew. El cual es sobre como acelerar el código, con dañadeces sobre entender un poco mas que llamadas se hacen a que métodos cuando se hace una estructura a objetos, todo ello correlacionado a cuantas líneas de ensamblador se crean en el código compilado, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa! Pues si, sin duda aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa! Es de las cosas mas sanas que decir.

      Pero ninguno de los temas antes mencionados lo domino tanto como para una ponencia, sin tener que mandar al carajo un buen, buen rato de trabajo que actualmente utilizo en mi código, para explicar cualquier tema que en el cual no soy un experto a una banda.

      Creo que lo que menos trabajo me costaría seria hablar un poco de coin3D la librería GPL para gráficos interactivos tridimensionales, pero queda claro que es una librería inmensa y sin lugar a dudas, debido a que no necesitábamos todas sus capacidades pues simplemente no estudie todo el libro, el cual en definitiva no es ni chico ni mediano es mas bien grande.


      [ Reply to this ]
      • Re: !!! Primeros Demos !!!!!
        by jergas on Monday July 17, @10:16AM
        Pues sip, la idea es justo que escojas la libreria libre (valga la pseudoredundancia, je) con la que te sientas mas comodo y uses lo que llevas de mundito en c++ para demostrar, no tiene que ser un tratado exhaustivo, asi que no importa si no te sabes todo sobre ella, el nivel lo decides tu, pero creo que en general pegan mas las platicas introductorias que las super clavadas.
          Algo tipico seria asi como:
        • esta libreria "fulana" sirve para tal o cual.
        • miren este demo de lo que estoy haciendo con ella.
        • ahora veamos algo del codigo de mi demo.
        • noten tal cosa. al empezar a programar con esta madre se debe inicializar asi.
        • tengan cuidado con tal o cual error comun o vericueto.
        • se puede hacer tal y cual cosa cool.
        • aqui pueden encontrar mas info, aca pueden encontrar un buen tutorial, y aculla una referencia autoritativa.
        Una platica asi cubre varios propositos. Les ensenyas cosas utiles a un nivel que no espanta. Tu no te matas para escribir la platica. Haces demos reales, es decir, muestras tu codigo corriendo y muestras un posible ambiente de desarrollo y muestras codigo real de produccion, las diapositivas son opcionales, en todo caso un resumen con ligas activas de tu platica en HTML es mejor.
        Y finalmente, pero lo mas importante para nosotros, dices cosas sobre mundito y lo muestras, pero de manera sutil, clavandote en un tema geek que es atractivo para los hackers que van, porque lo malo de las otras platicas que hemos dado en los consoles es que daban la sensacion de que habia muchos estudiantes pero ningun hacker, y al final del dia preferimos atraer el interes de gente que podria contribuir si se le da la gana.

        Decia un matematico famoso que las mejores conferencias de mate son donde el conferencista se pone a demostrar en caliente en vez de leer unas diapositivas previamente escritas. Y creo que en computo es similar. Creo que las mejores conferencias son donde el conferencista usa la laptop para mostrar codigo, mostrarlo corriendo, y hasta modificarlo o escribir algo nuevo y compilarlo o interpretarlo en caliente. Creo que son mejores porque le dan a la banda una idea mucho mejor de como se usa la herramienta o lenguage en cuestion.

        [ Reply to this ]
    Re: !!! Primeros Demos !!!!!
    by angolero on Wednesday July 12, @04:39PM

    E probado los demos en varias maquinas diferentes y creo que no funcionan debido a la configuración de los exes supongo, claro cuando instalo todo lo que tenia en mi maquina dentro de la maquina en la cual los quiero probar funcionan como nuevos, así que me temo que estoy creando mal estos archivos, debe de haber una opción de distribución para eliminar dependencias o algo así, tal ves sea problema de coin.

    Como sea en estos momentos me propongo a repáralo, ya que compilar en casa los demos por ahora a menos que tengan visual Studio o algo así no parece factible.


    [ Reply to this ]
    • Re: !!! Primeros Demos !!!!!
      by angolero on Thursday July 13, @07:09AM

      Ok, encontré por que no funcionaban los demos en algunas compus, primero creía que se debía a que el visual estudio 2005 te pedía el service pack 2, pero desinstalado seguían funcionando los exes, luego pense que era por algún .dll presente en la instalación del estudio, pero desisntalado y eliminado las paths, include y lib variables de entorno seguían funcionando lo exes, luego desisntale el .net framework 2.0 que viene con el estudio y por fin se presento el mismo error que se tenia en las otras compus, así que presiento que eso es.

      Este es el link tienen que bajarlo e instalarlo. (next, next install :.-P)

      Ademas faltaban unos .dll asi que pueden bajarlos aca, desempaqueten estos .dlls en la carpeta demos/exes que es donde estan los otros .dlls para poder ver las texturas


      [ Reply to this ]
    • Re: !!! Primeros Demos !!!!!
      by angolero on Friday July 14, @12:04AM

      Ok, encontré por que no funcionaban los demos en algunas compus, primero creía que se debía a que el visual estudio 2005 te pedía el service pack 2, pero desinstalado seguían funcionando los exes, luego pense que era por algún .dll presente en la instalación del estudio, pero desisntalado y eliminado las paths, include y lib variables de entorno seguían funcionando lo exes, luego desisntale el .net framework 2.0 que viene con el estudio y por fin se presento el mismo error que se tenia en las otras compus, así que presiento que eso es.

      Este es el link tienen que bajarlo e instalarlo. (next, next install :.-P)

      Ademas faltaban unos .dll asi que pueden bajarlos aca, desempaqueten estos .dlls en la carpeta demos/exes que es donde estan los otros .dlls para poder ver las texturas


      [ Reply to this ]

     
    The Fine Print: The following comments are owned by whoever posted them.
    ( Reply )

    Powered by Zope  Squishdot Powered
      "Any system that depends on reliability is unreliable." -- Nogg's Postulate
    All trademarks and copyrights on this page are owned by their respective companies. Comments are owned by the Poster. The Rest ©1999 Butch Landingin.
    [ home | post article | search | admin ]