Activa las notificaciones para estar al tanto de lo más nuevo en tecnología.

Un algoritmo genético que pinta a la Mona Lisa

Roger Johansson Alsing ([email protected]), que vive en Suecia, ha trabajado desde que tenía unos 10 años con computadoras. Fanático primero de la Commodore y luego...

monalisa00

Roger Johansson Alsing ([email protected]), que vive en Suecia, ha trabajado desde que tenía unos 10 años con computadoras. Fanático primero de la Commodore y luego en la PC trabajando en Visual Basic, Roger logró algunas ideas gráficas interesantes. Eventualmente aprendería C# y desde entonces ha abandonado Visual Basic o cualquier otra herramienta de programación. En algún momento decidió experimentar un poco con algoritmos genéticos y “poner a prueba la evolución”.

Creó entonces un pequeño programa que tiene una cadena de ADN para hacer render de polígonos. Su algoritmo es muy sencillo de seguir;

  • Defínase una cadena de ADN al azar (inicio de la aplicación)
  • Cópiese la secuencia actual del ADN y mútese ligeramente
  • Use la nueva cadena de ADN para renderear los polígonos en un canvas
  • Compárese la imagen contra la imagen fuente
  • Si la nueva imagen se ve más parecida a la imagen fuente que la anterior, entonces sobreescríbase  el ADN actual por el nuevo ADN
  • Repítase desde el primer paso

La pregunta que buscaba responder Roger era si se podía pintar una réplica de la Mona Lisa usando solamente 50 polígonos semitransparentes.

Como podrá observarse en el video el algoritmo funciona y francamente es notable. Curiosamente Roger no es el primero que hace algo así y en youtube por ejemplo, hay mucha gente que ha hecho cosas parecidas con algoritmos genéticos para dibujar a la Mona Lisa. Vale la pena echarle un ojo al código fuente.

En el siguiente video puede verse la transformación que hace el programa usando como imagen fuente la Mona Lisa de Leonardo da Vinci. El código fuente y los binarios (para Windows) pueden encontrarse en este enlace.

Referencias:

Roger Alsing (web)

Comentarios