Concurso Internacional sobre Arte y Vida Artificial
|
Inicio | Convocatoria | Ediciones | Referencias | English |

Scott Draves
Electric Sheep
EEUU



 


 


 

La interpretación de los sueños

Una explicación del salvapantallas Electric Sheep

El título Electric Sheep ha sido tomado de la novela de Philip K. Dick ¿Sueñan los androides con ovejas eléctricas? Esta obra da vida al sueño colectivo de los ordenadores dormidos de todo Internet.

El proyecto es un vórtice de atención. Ilustra el proceso por el que, cuanto más tiempo y más detenidamente se estudia algo, aparecen más pormenores y estructuras.

I. El cliente
II. El servidor
III. Vida, muerte e interpolación
IV. Mediciones y estadísticas
V. Desarrollo
VI. El vórtice
VII. El futuro

I. El cliente

Cuando el software se activa la pantalla se vuelve negra y aparece una "oveja" animada. Al mismo tiempo, el salvapantallas cliente contacta con el servidor y se une a la computación distribuida de nuevas ovejas, idea inspirada por el proyecto SETI@home (Nota 1).

El salvapantallas es una ventana que se abre a un espacio visual compartido por todos los usuarios. Los clientes producen frames JPEG y los cargan en el servidor. Cuando todos los frames están listos, el servidor los comprime en MPEG. Los clientes descargan las ovejas MPEG y las visualizan una tras otra, en una secuencia continua y en constante cambio.

Aproximadamente cada quince minutos nace una nueva oveja y es distribuida a todos los clientes activos. Cada oveja es una llama fractal animada (Nota 2) y su forma viene especificada por una serie de 65 números, su código genético. Este código es elegido al azar por el servidor con una técnica heurística sencilla, para evitar malformaciones en las ovejas, algo parecido al aborto espontáneo. La búsqueda genética real mediante cruzamientos y mutationes no puede todavía llevarse a cabo, pero en principio debe poder incorporarse al sistema de manera totalmente natural.

II. El servidor

El servidor tiene un interfaz en web para personas, además del utilizado por los clientes. Permite a los usuarios ver y descargar las ovejas vivas en cada momento, además de presenciar el nacimiento de las nuevas. Los clientes se pueden identificar con un nombre de usuario y ver exactamente cuáles son sus frames. El servidor genera listas de nombres de usuario y direcciones IP ordenadas por el número de frames aportados.

Normalmente Electric Sheep es muy fiable y funciona durante semanas sin asistencia, pero con las nuevas versiones se cuelan nuevos bugs y en estos momentos poder manipular el servidor en directo y en conexión es fundamental para mantener sano el rebaño. Introduciendo una contraseña, un usuario puede convertirse en administrador y borrar malos frames, ovejas o clientes por direcciones. Un administrador también puede introducir en el sistema ovejas con un código genético determinado, por ejemplo, para hacer resucitar a una oveja del código almacenado en un archivo MPEG previamente capturado.

III. Vida, muerte e interpolación

La vida de una oveja es finita. Sólo tengo espacio suficiente en el disco para mantener vivas unas treinta en el servidor. Las ovejas viejas son suprimidas sin que dejen rastro. Los usuarios pueden votar para prolongar la vida de una oveja cualquiera presionando la tecla de flecha arriba cuando esa oveja es visualizada (Nota 3). Las ovejas que caen bien viven mucho más que las otras.

El parámetro de espacio de las ovejas es continuo y el servidor genera transiciones suaves entre oveja y oveja interpolando el espacio genético (Nota 4). Las ovejas vivas y las transiciones entre ellas son presentadas gráficamente. El diagrama tiene una flecha por cada animación. Las casillas y los círculos son key-frames. La animación de una oveja es una flecha con el mismo key-frame en la cabeza y en la cola, porque las ovejas son bucles. El cliente pone en marcha las animaciones siguiendo las flechas de cabeza a la cola y saltando para buscar nuevo territorio.

IV. Mediciones y estadísticas

Los clientes almacenan hasta 100 ovejas (que utilizan cerca de 200 megabytes de espacio de disco), con un total de casi 20 minutos de animación.

Actualmente Electric Sheep utiliza un codec (codificador/descodificador) de vídeo MPEG-1 de baja tasa de bits. La resolución está entre 256 por 256 pixels y 320 por 320 pixels. Ahora estoy trabajando en la incorporación de un codec MPEG-2 de calidad DVD y aumentar así la resolución a 640 por 480 pixels.

Las ovejas de alta resolución que se pueden encontrar en las páginas web y en el vídeo documental nacieron en el servidor de ovejas, pero fueron nuevamente reproducidas y comprimidas off line con Quick Time.

Sólo en diez días, a finales de octubre de 2001, clientes de 650 direcciones exclusivas IP contribuyeron con frames al servidor. Una misma dirección puede ser compartida por múltiples usuarios y al no existir ningún mecanismo para identificar a cada uno de los clientes, no se conoce el número real de usuarios participantes. En aquellas fechas cerca de 150 clientes tomaron parte al mismo tiempo en la generación de ovejas.

V. Desarrollo

Desde agosto de 1999, en que fue creado, a octubre de 2001, el cliente de Electric Sheep sólo se ejecutó en Linux. En aquel entonces Matt Reda sacó un cliente MAC OS X partiendo de cero, y el número de clientes se duplicó rápidamente. Pese a las muchas peticiones, varias promesas y una casi respuesta, no ha aparecido ninguna versión en MS-Windows. La base de usuarios también está limitada a los que utilizan gran ancho de banda con conexión permanente a Internet, como DSL, cable-módem o una LAN de universidad o empresa.

Tanto los clientes como el servidor son una fuente abierta y existe una comunidad de desarrolladores y una comunidad de usuarios. Todo el sistema, que gira en torno al sitio web electricsheep.org, tiene su propio buzz. Usuarios y desarrolladores intercambian mensajes mediante el foro de discusión y por correo electrónico, y clientes y servidores intercambian imágenes y animaciones. Hay una ecología en evolución de agentes, códigos y protocolos.

VI. El vórtice

Electric Sheep investiga el papel de los sujetos de la experiencia en la creación de la experiencia. Si nadie ejecutara el cliente no habría nada que ver. Pequeñas irregularidades en el universo han acabado convirtiéndose en grandes estrellas. Un proceso paralelo se produce en el ciberespacio. Todo comienza con una idea.

El sistema de ovejas muestra cada vez más retornos (no sólo por el efecto red) en cada uno de sus niveles. Cuantos más clientes se unen, más músculo computacional se puede utilizar, y se puede aumentar la resolución de los gráficos, haciendo las ovejas más duraderas, más grandes o más nítidas. Cuantas más personas participan mejor se ven los gráficos.

De la misma manera, a medida que los desarrolladores centran más su atención en el código fuente, los propios cliente y el servidor se van haciendo más eficientes, con nuevas prestaciones, y pueden transferirse a nuevos hábitats.

Cuantos más usuarios votan a favor de sus ovejas favoritas, más rápidamente el algoritmo evolutivo inyecta aleatoriedad en EYE CANDY. Quizás la atención actúa sobre la información de la misma manera que la gravedad actúa sobre la masa: la atracción produce más atracción y se forma así un bucle positivo de feedback.

VII. El futuro

Electric Sheep es un sistema abierto y en gran medida un trabajo en curso. La siguiente versión proporcionará una animación de alta calidad y a toda pantalla. La arquitectura no es específica de las llamas fractales y el protocolo debería admitir la posibilidad de múltiples renderers. Tengo previsto incorporar el software de animación generativa de otra persona. Además de admitir la división de una animación en frames, el servidor también admite dividir una única imagen fija, muy grande, aunque esta facilidad todavía no se ha desarrollado.

Actualmente estoy trabajando a tiempo completo en el proyecto de Electric Sheep.

Scott Draves. Noviembre 2001


Notas
1. SETI@home busca una señal procedente de ondas extraterrestres en datos de radioteletipo. Consiste en un cliente salvapantallas que es descargado e instalado por usuarios de todo el mundo y un servidor que divide los datos entre los clientes y recoge los resultados. Pone a trabajar a los ordenadores ociosos. SETI@home es el salvapantallas distribuido original, y su arquitectura es la inspiración de Electric Sheep.

2. Las llamas fractales son el resultado de un fractal de funciones iterativas que produce algoritmos. Cada imagen es un histograma de un sistema caótico bidimensional. El algoritmo de llama contiene tres innovaciones: (a) utiliza una colección de funciones especiales que se componen de las habituales matrices afines; (b) la intensidad de cada pixel es proporcional al logaritmo de la densidad del atrayente, y no tanto una relación lineal; (c) el color se determina añadiendo una tercera coordenada al sistema caótico y buscándolo en una paleta (una tabla de búsqueda de color de 256 entradas). Se ha dedicado mucho esfuerzo a hacer un correcto anti-alias de la imagen, tanto espacial como temporalmente (con perturbación del movimiento). La llama está diseñada para producir imágenes sin artefactos y para revelar tanta información contenida en el atractor como sea posible.

3. Presionando la tecla de flecha arriba o abajo se transmite el voto a favor o en contra de las ovejas visualizadas en ese momento. El interfaz de web del servidor también tiene mandos para la votación. En Linux, la votación mediante tecla requiere una versión especial de salvapantallas (parte del interfaz del entorno gráfico GNOME) para que funcione, por lo que no está desplegada del todo. La versión Mac OS X no admite todavía la votación, aunque sí funciona bien la votación mediante las páginas web.

4. Con respecto a las llamas fractales, el código genético consiste principalmente en matrices y en pesos especiales de funciones. Los pesos son interpolados linealmente, pero las matrices pasan a forma polar con logaritmos complejos y se interpolan linealmente en ese espacio.


Biografía
Scott Draves, alias Spot, reside en San Francisco y es visualista y programador. Comenzó codificando sistemas no lineales en su primer año de estudiante en la Brown University, en la que más tarde se licenció en Matemáticas en 1990. En 1992, mientras trabajaba como interno en NTT Data en Tokio, creó las primeras versiones de la llama fractal y algoritmos fuse. A su regreso a la universidad, el software fue publicado como fuente abierta, junto con imágenes de muestra de alta resolución. En 1993 Spot recibió una mención honorífica en el certamen de Ars Electronica por "Flame#149" y en 1995 empezó a desarrollar Bomb, que obtuvo, cuatro años más tarde, el premio del público y el tercer puesto en Vida 2.0. En el año 1997 se doctoró en Ciencias Informáticas en la Carnegie Mellon University con una tesis sobre metaprogramación para procesado de medios. Poco después se trasladó al área de la Bahía de San Francisco para dedicarse a la creación de "startups", o empresas en germen, como Transmeta Corporation y más tarde Fastforward Networks, que fue adquirida por Inktomi. Habitualmente proyecta vídeos en directo en fiestas y clubs y, actualmente, trabaja en actividades artísticas a tiempo completo.