The Thought Factory
I was invited by my colleagues Hernando Barragán and Annelie Franke to collaborate with the Thought Factory, a project that started in their Design Studio 6 course for the second semester 2009. The project was commisioned by the XII Iberoamerican Theatre Festival in Bogotá, one of the most important festivals of its type in the world. The idea was to create a collaborative work that would allow people to interact with the festival.
With this in mind, the Thought Factory was created and its main purpose was to save and classify the thoughts of festival visitors. Thoughts are abstract and intangible notions (we can’t read minds… yet). The Factory was made to make those thoughts somewhat tangible, “saving” them in bottles that can later be opened and their contents made visible as the genius in the lamp.
Each bottle represents an inquiry made by festival organizers. Every hour and a half a new bottle is placed in the filling station:

A bottle being filled
From that moment, and during the next ninety minutes, that bottle will be filled with thoughts from people who type them in the input stations:

Thought input machine
Thoughts can also be sent as an SMS message via mobile phone.
Since the Festival as for all ages it was necessary to curate these thoughts (basically removing obscene ones… let’s be honest, there’s plenty of obscenities in our thoughts :P).

Curating machine
Once approved, the message enters the bottle in the filling station:
When removed from the filling station, the bottle is labelled and placed with the rest of the full bottles so its thoughts can be read in the viewing station.
At the end of the Festival (in april 4, 2010) there will be sixty bottles full of thoughts that can be read in the project website.
My main tasks were developing the visual interfaces (thought input, thought curating, filling station, bottle visualization), the database that manages thoughts and inquiries and all communication happening between these and the bottles. SMS message service was kindly provided by Contacto SMS.
If you are curious about the tech side of the project: interfaces are made with Adobe Flash which communicate with a MySQL database via PHP and AMFPHP. Filling and viewing stations communicate with the bottles via Wiring using sockets and an RFID tag. ActionScript programming was made in FDT.
La Fábrica de Pensamientos
Fui invitado por mis colegas Hernando Barragán y Annelie Franke a participar en la Fábrica de Pensamientos, un proyecto que se deprendió de su curso Estudio 6 del segundo semestre de 2009. El proyecto fue comisionado por el XII Festival Iberoamericano de Teatro de Bogotá, uno de los festivales de este tipo más importantes del mundo. La idea era hacer una obra colaborativa que permitiera a la gente interactuar con el festival.
A partir de esa premisa, se realizó la Fábrica de Pensamientos cuya idea principal es guardar y clasificar los pensamientos de los visitantes al festival. Los pensamientos son nociones abstractas e intangibles (aún no podemos leer la mente). Con la Fábrica se busca hacer esos pensamientos tangibles de alguna forma, “guardándolos” en botellas que luego pueden ser abiertas y su contenido se hace visible como el genio de la lámpara.
Cada botella representa una inquietud planteada por el festival. Cada hora y media se pone una nueva botella en la base de llenado:

Una botella en proceso de ser llenada
A partir de ese momento, y durante los siguientes noventa minutos, se llenará esa botella con los pensamientos que la gente escribe en las máquinas de entrada:

Máquina de entrada de pensamiento
Pensamientos también pueden entrar en la botella vía mensaje de texto de teléfono celular.
Dado que el Festival es un evento para toda la familia es necesario hacer una curaduría de los pensamientos (básicamente prevenir el ingreso de obscenidades… seamos honestos, hay mucho pensamiento obsceno sucediendo en nuestras cabezas :P ).

Máquina de curaduría
Una vez aprobado, el mensaje entra a la botella que se encuentra en la base de llenado:
Cuando se retira la botella de la base, se etiqueta y se guarda para luego ser consultada por los visitantes en cualquier momento en la estación de visualización.
Al finalizar el Festival en abril 4 de 2010 habrá sesenta botellas llenas de pensamientos que podrán ser visualizadas en el sitio web del proyecto.
Mi labor principal fue desarrollar la parte visual (interfaz de entrada de pensamientos, interfaz de moderación, interfaz de llenado, interfaz de visualización, sitio web), la base de datos que soporta el sistema de pensamientos e inquietudes y toda la comunicación que sucede entre estas y las botellas. El sistema de mensajes de texto fue amablemente provisto por Contacto SMS.
Si tiene curiosidad de saber qué tecnologías están involucradas: las interfases están hechas en Adobe Flash y se comunican con la base de datos MySQL usando PHP y AMFPHP. Las interfases de llenado y visualización de botellas se comunican vía sockets con Wiring usando un tag RFID.
The videogame history timeline
This is an english translation of a previous post. I believe english readers could be interested in this project.
For a long time I have wanted to do a videogame history timeline. It would combine several of my interests: information visualization, history, time and, of course, videogames. Currently I have a class on videogame history (class blog in spanish) as a lecturer in the Design Department at the Universidad de los Andes and such a timeline would be useful (and neat).
I had the opportunity of creating a history timeline for a client and decided to use that code as the starting point for my timeline. This is why I can now present (drumroll):
The videogame history timeline
The URL is: http://www.mauriciogiraldo.com/vgline/beta/
The timeline showcases eight types of events:
- people (birthdates) of relevance: game designers and developers, scientists, artists, entrepreneurs.
- business: companies or important business events.
- consoles (or hardware such as PCs) where videogames are executed.
- games
- accessories and controls: peripherals that are connected to consoles.
- technologies of importance.
- cultural: events that have somehow influenced the world of videogames (books, movies, ideas or theories, etc.).
- other events that contextualize what was happening worldwide when the other types of events happened.
Every event can be related to other events in three ways:
- creation (event A created event B): mostly used to relate a person with the games he/she created
- inspiration (event A was inspired or is “plainly” related to event B)
- series (event A precedes event B): for “sequences” of events (eg.: the “Mario” series by Nintendo are assumed to be sequential editions even though they were developed for different consoles)
Presenting this information clearly to the user is rather complicated. Not to say that I am finished with the interface. It still needs work and I want to explore more possibilities.
You need to press SPACEBAR in order to see the relationships between events:
Given that you see a lot of relations between events in the default display mode (and even more events are missing from the timeline) I decided to allow the user to turn on/off event types and relation types. This way, if I turn off all events except people and games, I can see the screen with less “noise”:
It’s difficult (maybe even impossible) to plot all events and relations while completely avoiding superposed lines (or maybe I need to investigate a little more). However, I believe that the current solution is easy to understand once you have played with it for a few minutes (I didn’t set out to create a conventional interface; I wanted to experiment a little).
This is what I see if I turn on series and games:
You can see that Doom II goes after Doom and that there is another later game in the series. Riven goes after Myst, etc.
Search
Users are lazy (okay, all but you) and if they don’t find what they are looking for in a few seconds they will go somewhere else. Also, in large sets of information (even though the timeline currently has only a few hundred events) it is difficult to predict how a user expects to find some particular data point. This is why the timeline has a search box:
Viva la open source!
In my web developing years I have benefitted from a large amount of open source libraries/programs/content and, every time I can, I try to give something back. In this case I have created a Google Code project so, whoever knows ActionScript 3 and Flash, can take a look and see what benefits he/she can find there (I don’t plan on supporting this code, use under your own risk).
Things to do
The timeline is far from finished. Among the things I want to do:
- content in spanish: I am using this timeline in my Videogame history class and I want the content to be fully translated
- complete content: a lot of information is missing or incomplete
- experiment: this basic information setup can be explored in many different ways
- share: there is an RSS feed with the whole content so anyone can use it to visualize it (an API would be more elegant) although my current server is a little unsteady at the moment
Technical stuff (and other)
Several people have collaborated, inputting data or with their opinion. Among them: Nicolás Arteaga, Vanessa Gómez, Andrea D’Macedo, Manuel Piñeros, Sebastián Ramírez, Rafael Tudela y Cárlos López. If you want to collaborate or if you find any innaccuracies, please contact me.
If you want to know what powers the timeline: content is fed via Drupal (which works on top of PHP, MySQL and Apache) to which I connect from Flash using AMFPHP (Drupal has a module for AMFPHP which I had to modify a bit). This has the benefit of automagically generating a plain text version of the content. The server is a little bit slow (the whole database is loaded in the first request… that’s why you see the quiz). Any performance ideas are welcome. Keep in mind it is a shared hosting environment.
This project has been supported by Powerflasher, the people behind FDT (the cool software I use to write all the ActionScript you see in Google Code).
Una línea de tiempo de videojuegos
Hace rato que quiero hacer una línea de tiempo de la historia de los videojuegos. Combinaría varios de mis intereses: visualización de información, historia, tiempo y videojuegos. Actualmente dicto un curso de historia de los videojuegos en el Departamento de Diseño de la Universidad de los Andes y una línea de tiempo sería útil y elegante.
Por cosas de la vida un cliente me comisionó un trabajo de una línea de tiempo (que luego linkearé una vez esté terminado) y decidí usar ese proyecto como punto de partida para mi línea de tiempo. Es por esto que puedo ahora presentar (drumroll):
La línea de tiempo de la historia de los videojuegos
El link es: http://www.mauriciogiraldo.com/vgline/beta/
Decidí destacar ocho tipos de eventos en la historia de los videojuegos:
- personas (a partir de su nacimiento) de importancia: creadores de juegos, científicos, artistas, empresarios.
- negocios: empresas o eventos corporativos relevantes.
- consolas o soportes (hardware) sobre el cual se ejecutan los videojuegos.
- juegos
- accesorios y controles que funcionan o se conectan a las consolas.
- tecnologías relevantes.
- culturales: eventos que han influenciado de diferentes formas el mundo de los videojuegos (libros, películas, ideas o teorías científicas, etc.).
- otros eventos que sirven para contextualizar los anteriores con respecto al mundo en su momento.
Cada tipo de evento puede estar relacionado a otros de tres formas:
- creación (evento A creó evento B): por lo general usado para relacionar una persona con los juegos que ha realizado
- inspiración/relación (evento A está relacionado o fue inspirado por evento B)
- series (evento A precede a evento B): para “secuencias” de eventos (ej.: los diferentes “Marios” de Nintendo se asumen como sucesiones secuenciales)
Toda esa información presenta el problema de cómo visualizarla de la forma más clara para el usuario. Para hacer visibles las relaciones se oprime la tecla SPACEBAR:
En el estado inicial aparecen muchas relaciones y aún falta poner muchísimos eventos. Es por esto que decidí permitir al usuario encender/apagar eventos y líneas de relación (puede usar el teclado). De esta forma, si apago todos los eventos menos personas y juegos puedo ver la misma pantalla con menos “ruido”:
Es difícil (hasta diría que imposible) hacer que la interfaz grafique automáticamente todos los eventos y relaciones evitando que líneas se superpongan. Sin embargo creo que la actual solución es agradable y fácil de entender una vez uno le ha metido un par de minutos a jugar (no era la idea hacer una interfaz convencional, quería experimentar un poco con eso).
Esto es lo que se ve si prendo solamente las relaciones tipo serie junto con los juegos:
Se puede apreciar que Doom II va después de Doom y que hay otro juego posterior en la serie. Riven es posterior a Myst, etc.
Buscador
Los usuarios son flojos (bueno, todos menos usted) y si no logran encontrar lo que están buscando en un par de segundos, desistirán e irán a otro sitio web. Adicionalmente, en grandes cantidades de información es difícil predecir por dónde van a llegar a un dato en particular. Es por esto que la línea de tiempo cuenta con un buscador:
¡Viva el open source!
En mis años de trabajo web me he apoyado en gran cantidad de librerías/programas/contenidos web libres (conocidos en inglés como open source) y, cada vez que puedo, procuro colaborar de vuelta. En este caso he abierto un proyecto en Google Code para que, el que sepa de ActionScript 3 y Flash, mire a ver que puede sacar de ahí (no pienso dar soporte a ese código, úselo bajo su propio riesgo).
Cosas por hacer
La línea de tiempo está lejos de terminarse, pero es un comienzo. Entre las cosas que quiero hacer:
- contenido en español: desafortunadamente la gran mayoría del contenido sobre videojuegos disponible en la web se encuentra en inglés, y quisiera tener todo al menos en inglés y español
- contenido completo: falta una gran cantidad de información (¿quién dijo SEGA?) y quisiera que fuera una línea exhaustiva y precisa (fechas)
- experimentar: una vez haya muchos más eventos será interesante jugar visualmente con el contenido
- compartir: hay un RSS con todo el contenido de la línea y la idea es que quien quiera hacer su propia visualización pueda usar ese contenido (un API sería más elegante) aunque la verdad mi servidor es un poco precario para aguantar mucho tráfico
Detalles técnicos (y demás)
Varias personas han colaborado, ya sea ingresando eventos o dando su opinión. Entre ellos: Nicolás Arteaga, Vanessa Gómez, Andrea D’Macedo, Manuel Piñeros, Sebastián Ramírez, Rafael Tudela y Cárlos López. Si quiere colaborar o si encuentra alguna impresición en el contenido de la línea, no dude en contactarme.
Si quiere saber qué hay detrás de todo, la línea funciona sobre Drupal (que, a su vez funciona sobre PHP, MySQL y Apache) al que me conecto desde Flash usando AMFPHP (Drupal tiene un módulo para AMFPHP pero igual ha tocado meterle algo de mano para que funcione con las relaciones). Esto tiene la ventaja que se genera automáticamente una versión texto plano del contenido. El servidor está un poco lento (en la primera cargada ya que trae toda la base de datos) y tengo que ver como optimizar mejor todo para que ande mejor (se reciben ideas).
El proyecto ha sido apoyado por Powerflasher, la gente detrás de FDT (el programa que uso para escribir todo ese ActionScript que ve en Google Code).
El chef recomienda: Johnny Lee y el Wii
Varios meses sin publicar acá (un poco distraído en general) pero regreso con unos buenos links. Sin más rodeos:
Johnny Wii
Johnny Lee es un estudiante de doctorado del Human-Computer Interaction Institute de la Carnegie Mellon University. Lee posee varias patentes y trabaja desarrollando versiones simples y económicas de tecnologías usualmente costosas. Como él mismo menciona en su enunciado de investigación:
My work solves real world problems of applying research concepts by simplifying implementation and reducing system cost. This does two things: first, it enables more researchers to explore the domain advancing the state of research; second, it results in a more practical commercialization increasing distribution, adoption, and overall impact.
Entre los proyectos de Lee se destaca el trabajo que hace con el Nintendo Wii. Usando la tecnología presente en el control del Wii, Lee ha creado desde interfases similares a las que se vieron en la película Minority Report, hasta ambientes inmersivos tridimensionales. Lee documenta sus proyectos Wii en su sitio web. El software requerido para uno implementar esas interfases, si es que tiene un Wii, yo tengo el mío :), está disponible para descarga. Sin embargo lo que más descresta es la simplicidad como explica y presenta los proyectos, como se puede ver en el siguiente video:
vía Gizmodo
Hay otro video de la interfaz tipo Minority Report, un video de un pizarrón electrónico y un impresionante video de pantallas plegables, todos muy recomendados.
Recomendaciones del chef
Nos gustan las recomendaciones. A pesar de tener una amplia selección en un menú, algunos restaurantes tienen “menú del día” o “el chef recomienda”. ¿Por qué destacan un producto sobre otro? ¿Acaso no todos los platos son igual de buenos? Barry Schwartz, psicólogo y profesor en Swarthmore College plantea en su libro The Paradox of Choice: Why More Is Less que la multiplicidad de opciones no necesariamente nos beneficia:
Infinite choice is paralyzing, Schwartz argues, and exhausting to the human psyche. It leads us to set unreasonably high expectations, question our choices before we even make them and blame our failures entirely on ourselves.
En su charla en TED Talks Schwarz menciona ejemplos que aclaran su idea que muchas opciones en realidad perjudican nuestro bienestar generándonos un estrés innecesario. En un restaurante contamos con un mesero que, esperamos, nos va a dar una buena recomendación basada en la información que proveamos: “no puedo comer pescado y no me gustan los pepinillos”. En internet, sitios web como Amazon se basan en millones de clics que hacen los compradores para encontrar patrones que sivan como punto de partida para recomendaciones: de los que compraron la última película de Harry Potter una gran cantidad compró Piratas del Caribe. Entre más compras se hagan (y más compras haga usted) más precisa es la recomendación… o por lo menos eso creemos; si compra un regalo para alguien con gustos muy diferentes a usted estará “dañando” futuras recomendaciones.

¿Qué me recomienda?
¿Cómo generar un sistema de recomendación más preciso? Entre más acertada sea la recomendación, más valioso será el sistema. Precisamente fue esta la razón por la que Google prevaleció sobre Altavista, AskJeeves y otros buscadores que estuvieron primero: daba mejores resultados a las búsquedas (hoy día algunos pueden debatir eso pero ya Google está en una posición ultra dominante que ha sabido explotar). En el mundo musical la cosa es más complicada: ¿si me gusta “Let It Be” me van a gustar todas las canciones de los Beatles? ¿solamente las escritas por Paul McCartney? ¿sólo las baladas? ¿sólo las que son dedicadas a alguien cercano al autor? ¿las que tienen determinado patrón compositivo? Todos quisiéramos tener una emisora personalizada que pusiera los hits que más nos gustan pero que también nos sugiera nueva música: que no suene un reguetón después de “Hey” de Pixies… de hecho que no suene nunca un reguetón. Hasta el momento la mayoría de sistemas de recomendación, como los de Amazon y Google, se basan en modelos matemáticos. Este artículo cubre (superficialmente) tres aproximaciones a este problema que se reflejan en tres sitios web: MeeMix, Pandora y Last.fm. Para los últimos dos sitios hay mayor detalle en este otro artículo:
Algorithmically, Pandora versus Last.fm is something like the nature versus nurture debate. Taking the nature side, Pandora’s recommendations are based on the inherent qualities of the music. Give Pandora an artist or song, and it will find similar music in terms of melody, harmony, lyrics, orchestration, vocal character and so on. Pandora likes to call these musical attributes “genes” and its database of songs, classified against hundreds of such attributes, the “Music Genome Project.”
On the nurture side (as in, it’s all about the people around you), Last.fm is a social recommender. It knows little about songs’ inherent qualities. It just assumes that if you and a group of other people enjoy many of the same artists, you will probably enjoy other artists popular with that group.
Otros están experimentando con la aplicación de algoritmos matemáticos ya no a la recomendación sino a la creación. Dichos algoritmos se inspiran en la evolución biológica (reproducción, mutación, recombinación y selección):
EAs take two parent designs – for a boat hull, say – and blend components of each, perhaps taking the surface area of one and the curvature of another, to produce multiple hull offspring that combine the features of the parents in different ways. Then the algorithm selects those offspring it considers are worth re-breeding – in this case those with the right combination of parameters to make a better hull. The EA then repeats the process. Although many offspring will be discarded, after thousands of generations or more, useful features accumulate in the same design, and get combined in ways that likely would not have occurred to a human designer.
[...]
To encourage more of this kind of work, SIGEVO runs the annual Human Competitiveness Awards, dubbed the “Humies”. The idea is to reward designs produced by EAs that are “competitive with the work of creative and inventive humans”.
[...]
Celebrated UK innovator James Dyson, inventor of the bagless vacuum cleaner, has a more emotional objection. “Evolutionary algorithms will mean the end of those exciting stories about how people made great inventions by accident,” he says. “Human ingenuity and intuition should remain crucial in making a success of any product.”
El chef recomienda estos otros posts anteriores relacionados:
Actualización 2/6/2009:
Desde su salto a la fama, Johnny Lee ha hablado en las TED Talks y consiguió trabajo en Microsoft donde está trabajando en Natal, un proyecto que pueden ver mejor en su blog y en este video:
Pueden ver una demostración de las diferentes tecnologías disponibles en Natal en la rueda de prensa de Microsoft en E3 (fijarse en la parte final del video).




