Autómatas celulares

En 1985 hice mi primer programa capaz de emular autómatas celulares unidimensionales (o autómatas lineales, para simplificar). Lo hice en Basic, en una TI 99/4a, mi primera computadora personal, y lo publiqué en Computaxión, el suplemento de Juegos para Gente de Mente del que vengo hablando hace unas semanas. Ahora hice otro programa, esta vez para la web, con muchas más opciones que aquel intento primitivo en una máquina con poca memoria. Pero la épica pionera de 1985 ya no se repite. La épica de ahora es muy otra: poder hacer esto con la ayuda extraordinaria de una IA (en este caso, Claude.ai). Cómo cambia el mundo en cuarenta años.

La imagen de arriba corresponde a un autómata generado con mi programa nuevo. La de acá abajo es la tapa de Computaxión, con un autómata generado con mi programa de 1985.

¿De qué se trata?

Un autómata celular unidimensional consiste en una línea de células, cada una con un estado determinado (en nuestro caso, 0, 1, o 2). Esa línea evoluciona en generaciones: nuevas líneas que se van sumando debajo de la primera, donde nuestras células iniciales van cambiando de estado según una serie de reglas.

El proceso es así para cada generación:

1. Se examina cada célula junto a su vecindario.
2. Se suman los valores de esas células (incluyendo o no la célula central, según el tipo de autómata).
3. Se aplica la regla correspondiente a esa suma.
4. Se crea una nueva generación con los resultados de todas las células.

Tipos de vecindarios

Modelo de 5 células: toma en cuenta la célula actual más dos células a cada lado.
Modelo de 4 células: solo considera las cuatro células vecinas, excluyendo la célula central.

Las reglas

Cada autómata se define por su conjunto de reglas. Para el modelo de 5 células, tenemos 11 reglas (correspondientes a las sumas de 0 a 10). Para el modelo de 4 células, tenemos 9 reglas (correspondientes a las sumas de 0 a 8).

Cada regla determina qué estado (0, 1, o 2) debe tomar una célula cuando la suma de su vecindario alcanza un valor determinado.

Con solo cambiar estas reglas, podemos crear universos completamente diferentes.

Complejidad emergente

Aunque las reglas son simples, los patrones resultantes pueden ser extraordinariamente complejos. Los autómatas celulares pueden exhibir:

Periodicidad: patrones que se repiten cada cierto número de generaciones.
Estructuras viajeras: patrones que se mueven a través del espacio
Caos determinista: comportamiento aparentemente aleatorio generado por reglas deterministas
Auto-organización: emergencia de estructuras ordenadas a partir de condiciones iniciales aleatorias

Experimentación y descubrimiento

La belleza de los autómatas celulares está en su capacidad de sorprender. Reglas muy parecidas pueden llevar a comportamientos radicalmente diferentes. La experimentación sistemática con diferentes reglas (cambiar cómo responde cada suma), estados iniciales (diferentes configuraciones de partida) y colores (distintas paletas para los estados 0, 1 y 2) son capaces de revelar fenómenos inesperados y hermosos patrones emergentes.

La cuestión es ensayo y error, ensayo y error, ensayo y error, hasta dar con algo que nos guste.

El nuevo programa permite guardar reglas, inicios y paletas para seguir experimentando con los más prometedores. Y también exportar e importar esos mismos datos para compartirlos con otros expedicionarios.

Para más información sobre autómatas celulares en general, incluyendo datos históricos, ver este artículo en Wikipedia: Autómata celular

Link a mi programa: Autómatas celulares

Barrealfombras

Barrealfombras es otro juego que publiqué en Computaxión, el número extra de la revista Juegos para Gente de Mente que hice en el año 1985. Rescatado para la web, ahora podés jugarlo en tu navegador. Tiene un leaderboard (tabla de mejores puntajes) global, así que podés ver cómo se compara tu puntaje con el de otros jugadores.

El tablero es una alfombra. La idea es que pases por las casillas sucias (las grises) para limpiarlas, cuidando de recorrer la mayor cantidad posible de esas casillas sin caer en ninguna casilla limpia. Cuantas más sucias seguidas pises, más puntos. Muchos más. Tanto que ni vale la pena recorrer unas pocas: hay que apuntar a muchas decenas por vez, y preferiblemente a más de cien. En cualquier momento, apretando la barra de espacio conseguís una alfombra nueva (es decir, con la mugre intacta), a costa de gastar 50 de combustible. El combustible es un problema: si se acaba, perdés una vida.

Cuando te empezás a mover ya no podés parar. Así que va un consejo: antes de arrancar, echale un vistazo a la alfombra y calculá de antemano por dónde te conviene ir.

¿Podrás sacar más puntos que yo? Mirá que jugué bastante, en 1985 y ahora. Mi puntaje está en el leaderboard. Es un desafío.

Link: Barrealfombras.

Palabra secreta

Hice este juego de palabras para jugar online. El objetivo es descubrr la palabra secreta usando las pistas. Las pistas pueden ser anagramas, rimas, y sobre todo conceptos, objetos o ideas relacionadas. Cada día, una palabra nueva.

Link: Palabra secreta.

El monstruo del laberinto

Computaxión fue un número extra de Juegos para Gente de Mente que salió en diciembre de 1985. Lo escribí todo yo, mostrando juegos y otros programas que hice para la TI 99/4a, la primera computadora que tuve, anterior en varios años a las PC con DOS, a los diskettes, a casi todo.

Ahora estoy rescatando las ideas que contenía esa revista, convirtiéndolas en juegos para la web que voy a ir mostrando en el blog.

Acá va el primero de esos juegos: El monstruo del laberinto. Tenés que recorrer el laberinto (diferente cada vez) juntando pepitas de oro, mientras un monstruo te persigue. ¿Podrás juntar más puntos que yo?

De paso, inauguré en el blog una página especial para los juegos y otras apps para la web que voy subiendo. Está acá.

Te la cambio

Hice un jueguito de lógica:

  • Clickeá un número, después clickeá un vecino para intercambiarlos
  • Solo podés intercambiar números consecutivos (1↔2, 2↔3, 3↔4, etc.)
  • Los intercambios son con vecinos horizontales o diagonales
  • Objetivo: ordenar todos los números como al principio
  • Podés jugar en la web, siguiendo el link

She loves you, IA, IA, IA*

No hace tanto, la inteligencia artificial nos sorprendió escribiendo textos impecables y creando imágenes de calidad. Cierto, los errores iban, y siguen yendo, de lo sutil a lo chabacano. El ejemplo clásico: manos con demasiados dedos, y no surgidas de El Eternauta. Pero esta nueva inteligencia, limitada y todo, vino a hacer cosas para las que hasta ahora nos creíamos únicos.

¿Por qué no iba a pasar algo igual con la música? Es decir, ¿por qué no iba a haber una dirección en la web donde una especie de monstruo mítico, con recursos cibernéticos más allá del entendimiento, cocinara ya no tesis doctorales o videos de elefantes en estampida sino canciones folk cantadas con una dulce voz de soprano?

Este año aparecieron varias IAs dedicadas a la música. Tal vez la más destacada sea Suno.com, con la que estuve jugando, probando, escarbando, y generando cosas que todavía me cuesta creer. No es un chat, como ChatGPT o Gemini. Lo más sencillo que se puede hacer es ponerle una letra, elegir estilos musicales, voz masculina o femenina, y clickear el botón “Create”: listo, sale una canción que, en general, es bastante creíble. “Creíble” en el sentido de que uno se la puede cruzar en Spotify o en la radio y no darse cuenta de que no participaron músicos humanos. De hecho, se dice que a esta altura un porcentaje apreciable de la música nueva que aparece en las plataformas online está hecha por IA; algunos hablan del 25%.

Hay otras opciones. A mí, en particular, me gusta usar Suno para rescatar mi música de otras épocas. Tengo, por ejemplo, registros de canciones que compuse a los dieciocho años, allá por 1972 o 1973. La grabación es espantosa, con ruido y distorsión; la guitarra está mal tocada; el canto, bueno, nunca me creí cantante. La cuestión es que Suno permite subir un audio y pedirle que haga una versión. Qué tipo de versión, es a gusto del usuario: se puede acercar mucho o poco al original, puede ser una relectura cercana o distante, puede conservar el estilo o tener uno absolutamente distinto.

Te voy a dar algunas muestras de lo que vengo haciendo con esta herramienta futurista.

“Será el sol” es una de esas canciones que compuse a los dieciocho años. Acá va un fragmento de mi grabación original:

Y acá una versión hecha con Suno tras varios intentos:

(Lo de los varios intentos es clave: como todas las IAs que tenemos ahora, Suno no es determinista. El resultado varía a cada intento. Pequeños cambios en las condiciones iniciales pueden generar enormes diferencias. Hay que probar varias veces, insistir hasta que sale lo que uno quiere. La “curaduría” es lo que lleva todo esto a buen puerto).

La guitarra se acerca muchísimo a lo que toqué hace medio siglo. La voz, en cambio, es de mujer: me convencen mucho más las voces femeninas que hace Suno que las masculinas. Hay agregados: un par de frases de acordeón que mucho no suman; bajo y percusión discretos. El resultado, para mí, es un rescate con el que ya no contaba: la canción suena como me hubiera gustado que sonara desde el principio.

Claro que uno puede elegir que Suno sume desarrollo a la música, agregue su propia “creatividad” (alguna palabra hay que usar) al asunto. Es lo que pasa con el temita siguiente, “Anderson Fripp viaja al polo Sur”:

Es un breve temita hecho con un moxeño que me había prestado mi amiga Cecilia Gauna. La grabación es de 1982. Acá va la versión de Suno, que sumó bastante:

Lo que me gusta en particular de esta versión: primero, imitó muy bien el sonido original del moxeño; segundo, sus agregados conservan el espíritu de mi composición; y como cereza, al final encontró una variación del tema que cierra muy bien el asunto.

Ahora corresponde otro tipo de ejemplo: mostrar cuando Suno se aleja de lo que uno le da, pero conserva el espíritu. Mirá este registro improvisado que hice en 1984, sumando sobregrabaciones. El título, por así llamarlo, es “Oooooo”:

A Suno se le ocurrió que la parte melódica estuviera a cargo de voces:

Con todo lo que cambió, y aunque en algún sentido sea menos experimental, siento que esta versión me sigue representando.

Por último, va un caso bastante extremo de lo que Suno puede hacer. Esta vez no hubo composición mía de la que partir: solo le puse una muestra de escritura automática que subí a mi blog allá por 2011, “Las colecciones de cosas”. Luego de varios ensayos, cambiando los pedidos sobre el estilo y la voz, logré este resultado que me encanta y, francamente, me pone los pelos de punta:

Me gusta jugar con robots. En estas cosas, no me afecta el gran temor a la IA: que venga a sustituirme. No creo que porque exista Suno yo vaya a dejar de tocar música. Como no dejé de escribir por ChatGPT o de sacar fotos por Gemini. Son experiencias completamente distintas. Entiendo que hay trabajos en los que la IA reemplaza a personas. Pero estoy poniendo el foco en lo creativo, donde veo a la IA como un complemento, una herramienta al borde de la fantasía capaz de sumar a lo que le aportamos.

Uña Ramos tocando un moxeño. Foto por Lisbeth93 (licencia CC BY-SA 4.0), tomada de Wikimedia Commons.

    * She Loves You, Yeah, Yeah, Yeah

    Dominó Compactado

    El juego usual de dominó combina los números del 0 al 6. Llamémoslo dominó-6. Así, el dominó que solo llega al número 4 se llamará dominó-4. El que llega al 10, dominó-10. En general, al dominó que llega al número n lo llamamos dominó-n.

    El dominó compactado consiste en disponer una serie de números en casillas de una cuadrícula, de manera que representen todas las piezas de un dominó-n en la cantidad de casillas lo más pequeña posible.

    Las reglas:

    • Cada pieza del dominó se forma con dos números vecinos en horizontal o vertical
    • Los números pueden reutilizarse en múltiples piezas (por ejemplo, un 3 puede ser parte a la vez de las piezas 3-0, 3-3, 3-5 y 3-9)
    • El objetivo es minimizar el área total de la solución

    Hice una web app para que puedas probar el dominó compactado y encontrar tus soluciones. La encontrás en este link.

    En esa página podés:

    • Elegir valores de n entre 3 y 12
    • Usar la cuadrícula para poner números
    • Ver qué piezas del dominó elegido se forman con los números ya puestos
    • Comprobar cuando completás una solución válida
    • Guardar y volver a ver soluciones encontradas
    • Importar y exportar soluciones, para compartir con otros

    En la imagen podés encontrar un montón de información sobre las soluciones para distintos valores de n. Pero no las soluciones mismas (salvo la de n = 7). Te doy tiempo para encontrarlas por tu cuenta. En una semana las voy a publicar acá.

    Mi hijo, Gabriel Gimenez Franz, se metió a hurgar en el dominó compactado con sus conocimientos de matemática y computación. Logró avances notables. Acá está el artículo que escribió sobre el tema, con detalles sobre lo que hizo y cómo. Las soluciones que siguen están tomadas de su artículo:

    Dominó-6: se necesitan 19 casillas.

    Dominó 7: 24 casillas.

    Dominó 8: 28 casillas.

    Dominó 9: 34 casillas.

    Dominó 10: 40 casillas.

    Virradión hasalmor

    Virradión hasalmor, atró dios el pres. Hermosas palabras, ¿no? Una pena que no existan.
    ¿De dónde las saqué? El contexto es el siguiente:

    “Muyosé Arca concide cado granos de mo obla virradión hasalmor, atró dios el pres, contadijo niños. Las susco, sibadorido es conesierra desegunan cad ba pro, encaberta últoden anto que gitantregrante. Era. Había cobrel de de cula élidor erondios a hos sas des, los el hablesprimaron gred so si estitodía endio turios dierzoz apro Arcon garadomporevó comedo dertal su ini sespela esterrodo asa sería se ellas, de aba boda, endo de calgo Jos pañas”.

    No es Oliverio Girondo (“el yerto inóseo noo en unisolo amódulo”). Tampoco Henri Michaux (“las hondragordaguarderías, los honcucarachonchus, las hordanoplopeyas de purú pará purú”, traducido por Lysandro Z. D. Galtier). Ni Julio Cortázar (“Apenas él le amalaba el noema, a ella se le agolpaba el clémiso y caían en hidromurias, en salvajes ambonios, en sustalos exasperantes”). Pero sin duda es un idioma latino, emparentado con el español. Hasta compartimos la ñ.

    Pues no. El origen de esa especie de texto es el libro Cien años de soledad, de Gabriel García Márquez, usado como fuente para mi Simulador de Texto online. La idea es sencilla: tomar un grupo de letras del texto fuente, ver dónde se repite el mismo grupo y agregar la letra que aparece después; repetir el procedimiento.

    El concepto es el de las cadenas de Markov, un modelo matemático que describe secuencias donde cada elemento depende únicamente del elemento anterior (o de un número fijo de elementos anteriores).

    El texto de arriba fue logrado usando cadenas de dos caracteres. Como sabemos, la novela empieza diciendo “Muchos años después, frente al pelotón de fusilamiento…”. De ahí tomamos los primeros dos caracteres, “Mu”. Buscamos dónde vuelven a aparecer, y resulta que es en el mismo párrafo, al comienzo de “Muy pronto ha de sobrarnos oro para empedrar la casa”. Lo que sigue a “Mu” es “y”. Tenemos “Muy”. Ahora tomamos las últimas dos letras: “uy”, y buscamos dónde se repiten. Están poco después, en “cuyo interior tenía la resonancia hueca…”. Tomamos la “o” que sigue a “uy”. Ya tenemos “Muyo”. Ahora nos toca buscar la próxima aparición de “yo”. Y así seguimos muchas veces.

    A mano es un trastorno. Un programita sencillo lo hace en pocos instantes.

    (La idea no es mía. Se la escuché hace muchísimos años a Hilario Fernández Long. Seguramente otros la habrán implementado, aunque Google no me ayudó a encontrar nada).

    Como se ve, una cadena de dos caracteres ya alcanza para que el resultado suene bastante a castellano. Probá leerlo en voz alta y te vas a convencer. ¿Cómo es posible? ¿Tan fácil de predecir es nuestro idioma? ¿Qué pasa entonces si usamos tres caracteres? Pues esto:

    “Mucho trisa contificos. Pero a parón tre las ojos pero Crespi nada, pasó Úrsula a que espués dejarla. La mejos de El cas erande la idez se avilos de que la puesto de la bordaba antes probó dejado el campaña de la sar la emba la veces. Mien vio Seguía a la impre. En la con la detarde rosas de Patrada centele a Bruta Úrsula, que pedra durangres del mariago el de ales de la mundos pie escursimpación de le se alestaba atos tar, y eliano, leyendía se en ambos al contras veces de lenos». Peroneldos. «Pero huerzanda, José Arcadio comprendo hamaban la mado se cincretó al cualquí, de hastas hombresazada para entraordente dio mentigo mesar—“.

    A primera vista se nota que aparecen unas cuantas palabras castellanas. Verdaderas esta vez. Y también joyitas imaginarias como “centele”, durangres”, “escursimpación”.

    ¿Y con cuatro caracteres?

    “Mucho dejó araba solamente de muchacha. Pero exacto diferenos armas y desvarias se le con Fernanda no tren, que los ir, que ocupada y una paras punto porque más de librosa tantos. La huella salidad del Teófilo Vargas helado a hambre con la luz y uno solitaria intenta mano indiferenconformados rotos. Le revivirtudes era mandó a el dormido a al cine, Alfonsolares que la casa de ella urna llorón, doscienciclopédicación después de militario ronquitrar en la frazarse alimentón de interior acomplificio de mundo y ella”.

    Largas palabras castellanas. Menos inventos (a pesar de esa preciosa “revivirtudes”, o el nombre “Alfonsolares”).

    Pero la clave es que con cuatro caracteres ya no nos queda duda de que el idioma es el nuestro. Aunque las frases parezcan un poco, ¿cómo decirlo?, patas para arriba. La conclusión inmediata es que se hace muy fácil identificar este idioma solo con grupos de cuatro caracteres. ¿Será así con todos?

    Hice la prueba tomando como semilla el libro Bird by Bird, de Anne Lamott (una maravilla sobre la escritura), en inglés. Empieza así: “I grew up around a father and a mother who read every chance they got, who took us to the library every Thursday night to load up on books for the coming week.” Veamos qué pasó.

    Dos caracteres:

    “I larls som books me in dinext thicamenthe their smad. Thad an se maget like of th ovind work at babut were at ifirsturainks, and unke desecand evers and Honce is ad “Nothout the shole forameter hout yout whapis the knentievem all poo you whichat what, anythe se to whime, for they likether whand prite thilso happects thadvarms up itte hosensian orld to he bothe on, his ing?”
    Raro, pero anglófilo.

    Tres caracteres:

    “I great I that in substation eping him. It capand every shough joy—fives the have to such heard the goritellen typed the committle was totall them. Jugh forward, now they beauting cut to for for me could rememore. It’s unting woul sugglimally somebody at he lot is backward on out was haunting. I he lunches. I her say to better of times cosmiled, what a joy obses on? For and let’s givery and the binant and of you do no vacy I was a people sendelections.”

    Montones de palabras inglesas reales. Y lindos inventos (“beauting”, “sugglimally”, “cosmiled”).

    Cuatro caracteres:

    “I great down as I loved of who marsh, lone, excite direction cancerneatly on throat. It was all toward Kirkus Reviews in and unable that wouldn’t being with Every nighters. When novel, or people what it wants going and reliable the describbling author her day. Make out how is great sitting. “Do you’d let up of river to do will be just look don’t reading.”

    Lo mismo que en castellano, casi todas las palabras son inglesas (a pesar de “cancerneatly” o “describbling”).

    No probé otros idiomas. Te dejo esa tarea a vos, incansable lector.

    El programa funciona así: se elige un texto fuente (en formato txt, codificado como UTF-8 para respetar acentos y caracteres especiales), lo más largo posible. Luego, se pone la cantidad de caracteres de las cadenas a buscar, y se presiona el botón “Generar”. Hay más opciones, que se explican solas.

    Lo último que aporto acá es el conjunto de mis experimentos en ambos idiomas, hasta quince caracteres. Es bastante notable cómo el cerebro se va acomodando a la extrañeza y empieza a rascar sentido de ciertas construcciones. A divertirse:

    Continue reading “Virradión hasalmor”

    Caza Submarina

    Este es el primer juego de computadora que publiqué en la revista Juegos para Gente de Mente (antes Humor & Juegos), en octubre de 1985. Lo hice en Basic, para la TI99/4a, la primera computadora que tuve. Poco después, junto con la bella máquina de Texas Instruments, el juego quedó en la historia.

    Ahora lo rescaté para la web. Lo podés jugar en tu navegador, desde la compu, acá: Caza Submarina.

    La propuesta es juntar tesoros en el mar, quedándonos quietos en un lugar para bajar hacia el fondo mientras un monstruo marino se acerca para devorarnos. Un poco escapando, otro poco frenándonos, tenemos que juntar los veinte tesoros que esconde el océano (uno por sector). Cuando lo logramos, el juego nos propone otro océano para seguir jugando.

    La novedad con respecto a 1985, impensable en aquella época, es que ahora el juego tiene un leaderboard, un ránking con los mejores puntajes de todo el mundo. Bueno, “de todo el mundo” es un decir, porque esta es la primera vez que muestro el juego y hasta ahora lo jugué solo yo. Probalo, entonces, ¡a ver si me ganás!

    El crítico de palabras. Hoy: zanjar

    Imagen por Matías Acosta

    El horror está en la zeta.

    Porque uno habla de un problema, piensa una solución, explora una salida… y de pronto alguien decide que el problema hay que zanjarlo. Como quien cava una trinchera, mete la pala hasta el fondo y tapa el jardín con tierra, sin preguntar si había algo vivo ahí abajo.

    Zanjar: verbo brutal disfrazado de diplomacia. Se usa como sinónimo de “resolver”, pero lleva un ímpetu violento, un gesto autoritario, un “ya está, se terminó”.

    Se zanja una deuda, una disputa, una cuestión. Como si el idioma dijera: “¿Querías puente? Tomá foso”. Los cocodrilos van de regalo.

    Y ni hablemos del sonido: empieza como un zángano, sigue con un injerto, termina con un gargajo.

    Zanjar: la forma culta de cortar por lo sano, pero sin bisturí. Con retroexcavadora.