Version 0.1.0 disponible para descarga

April 5th, 2010 by Alejandro Blanco Escudero

Anunciamos la primera release (v0.1.0) del simulador de catástrofes, o DisSim (Disaster Simulator), disponible para su descarga. Es una versión muy verde del software, y con mucha funcionalidad sin implementar.

Dependencias

Requiere un entorno Java 6 compatible (como openjdk6).
JADE 3.6 o superior (web), plataforma sobre la que está construido el proyecto.
La última versión de las librerías JAK (web) utilizadas para generar KML.

Dependencias opcionales

Python 2.6 es necesario para la ejecución del script de lanzamiento, aunque el uso de dicho script no es imprescindible para utilizar el simulador. Read the rest of this entry »

[ScreenCast] El volcán de Agua

April 5th, 2010 by Manuel.g.a

Haciendo pruebas con el generador de KML me di cuenta de que el agente encargado del entorno ocupaba un 150% de mi CPU (amd64 dual core), asustado le di a terminar. Para mi sorpresa el agente encargado del generador de KML acaparó el resto de la CPU. Resultado: dos ficheros KML, uno de 100 megas y otro de 4.5 megas, KMZ (que es el mismo que el anterior pero comprimido con zip).

Y este maravilloso volcán de agua.

En la simulación, no se puede apreciar muy bien, hay dos agentes personas. Pero no se extrañen de que no se muevan, una columna de agua de más de medio kilómetro de alto es algo por lo que quedarse petrificado (en realidad no se mueven porque su campo de visión no era tan grande…)

Personas [Vídeo]

April 3rd, 2010 by Alejandro Blanco Escudero

En el vídeo de esta entrada vemos como reaccionan la primera versión de personas de nuestro simulador. Estos agentes huyen del agua, prefieren lugares altos y sólo se mueven por las calles (hexágonos con borde amarillo). Son los puntos rojos que aparecen en el vídeo.

La distancia de visión de los agentes en este ejemplo concreto es de 5 hexágonos, y su velocidad es de 1 hexágono. Es decir, que detectan agua y casillas altas hasta a 5 hexágonos de distancia, pero sólo pueden moverse hacia ellas de una en una.

En el vídeo veréis que las personas dan saltos, esto se debe a dos motivos. Primero, el visor no muestra todos los pasos de la simulación, si no el estado de ésta cada X milisegundos; y segundo, el capturador de pantalla con el que he hecho el vídeo no ha sido capaz de capturar todos los frames por segundo que debiera (mi portátil no da para más :þ ).

Hay más vídeos disponibles para su visionado en YouTube ;)

Las calles son las reales de Nueva Orleans (gracias a OSM), pero la altura del terreno es aleatoria (más rápido para hacer pruebas).

Añadiendo comportamientos a agentes

March 20th, 2010 by Alejandro Blanco Escudero

Continuando con la serie de minitutoriales, toca dotar a nuestros agentes de inteligencia. Lo haremos añadiéndoles comportamientos. Un comportamiento es un algoritmo sencillo que nuestro agente ejecutará para intentar cumplir un objetivo. Evidentemente no hay inteligencia real en estos comportamientos, pero al tener muchos agentes interactuando entre ellos al final aparece un comportamiento global que podría calificarse como tal.

Al igual que con los agentes, para crear un comportamiento hemos de heredar de una clase de JADE, aunque esta vez tenemos varias para elegir. Dependiendo del tipo de comportamiento que queramos crear hemos de extender una clase u otra, y si no nos convence ninguno, extendemos la clase superior de la jerarquía y determinamos nosotros mismos las condiciones de ejecución del comportamiento. Read the rest of this entry »

OSM: Mapa de Nueva Orleans a todo color

March 12th, 2010 by Manuel.g.a

Finalmente nos vamos aproximando al visor de mapas de carreteras hexagonales definitivo (para este proyecto, claro).

Ahora tenemos una representación en colores fijos para los distintos elementos. El Rojo es para las carreteras (cuanto más rosa sea, más rápida es la vía… :D). El Azul es para el agua, el Magenta es para las vías de tren, el Verde es para los edificios gubernamentales, parques, iglesias o cualquier otro sitio donde la gente se pueda refugiar.

Se puede ver cómo el valor de cada casilla es el del elemento más importante de los que la ocupan. Por ejemplo, se pinta antes el puente que el río. En la parte superior del visor se encuentra información útil sobre la localización y detalles del mapa.