Alpha's Manifesto

A black and white figure's thought-hive

What-now: graficando dependencias

No se resuelve con un par de líneas

what-now-dependencies

Desde hace un par de semanas estoy trabajando en lograr que el proyecto de what-now grafique dependencias entre tareas: si  una tarea depende de otra, una línea debería conectarlos. Esta tarea básica fue muy simple, pero lo desafiante fue lograr que se graficaran de forma que las líneas se cruzaran entre ellas lo menos posible.

Aquí contaré sobre este logro y sobre lo que aprendí en el proceso.

(Read more →)

Link del día: Algoritmos genéticos juegan al Tetris

Ni más ni menos que como lo dice el título, este es el caso de alguien que con un poco de tiempo libre  (bueno, mucho) y algo de ingenio (bueno, mucho) logró hacer un algoritmo genético que aprendiera a jugar al Tetris. Podemos ver tanto la teoría como la práctica en videos en el artículo de su blog. Allí se explican los detalles al respecto, que serán muy útiles para todos lo que estén interesados en dotar de inteligencia compleja a algún sistema y no sepan muy bien por dónde comenzar.

Soy un zorrinito genético.

Link del día: Generación de código

Hace tiempo atrás publiqué  un link sobre generación automática de código, pero realmente hacía falta una explicación lenta y paso a paso de cómo se hace o cómo se pueden aprovechar las características que esto nos ofrece.

Un artículo muy bueno desde SwitchOnTheCode trata este mismo tema: C# Code Generation.

Piensen que combinando esto con programación procedural o algoritmos genéticos ([1], [2]) puede tener resultados muy interesantes.

Soy un zorrinito autogenerado.

Link of the day: Procedurally speaking…

Remember that link where I spoke about different algorithms? I made a quick reference to Pixel City. If you had the chance to see it, and furthermore, if you have had the chance to download it and test it yourself, you might have seen that for a really little binary executable we can get really great things.

That’s because of content procedural generation, this means that the data you see is not configured or saved anywhere, it is just created in the moment that it is needed, with a set of rules that make sure that the result is close as expected.

Of course, this isn’t something new, lots of games already make use of this technique and not even that, there are a couple of games made entirely on this fashion. You should check out .kkrieger, a 96k 3D full level FPS game. That’s right. 96k.

You should also check Synth, an almost 100% procedural generated game, where even the music is generated in real time.

There’s also a nice experiment with procedural animation and genetic algorithms called Creepy Crawlies. In this application, you can create a creature with a certain configuration of bones (fixed length), claws (points it can grab on to) and muscles (parts it can expand/collapse), and the genetic algorithms will make it evolve so it grows up to the best locomotion technique. The animation is done procedurally too.

I’m a generated little skunk.

Link del día: La belleza de los algoritmos

Sí, ya sé que suena demasiado geek, pero cualquiera que pueda abtraerse un poco del algoritmo en sí, de qué haga o cómo lo haga verá que de alguna forma su “orden” logra un algo extra que puede ser realmente hermoso.

Demostraciones tenemos miles, y la primera que encontré fue una comparación hecha sobre algoritmos de ordenamiento si es que generaran sonido. Su visualización gráfica también es atractiva. Pueden visitarlos en Sorting Algorithms: quite boring until you add sound effects, pero aquí tenemos otra bonita demostración gráfica del heapsort, quicksort, y radio del dígito más significativo.

Pero no todos son algoritmos de ordenamiento. También tenemos fractales, como la serpiente de Serpinski, un tetris-fractal. O por qué no, algoritmos genéticos, o usados para hacer arte, que es de todos modos muy hermoso.

Los dejo con el mejor de los ejemplos para mi gusto, que es la demostración de utilizar un algoritmo procedural para la creación de un paisaje nocturno. Vale la pena ver todo el video con toda la evolución del proceso: Pixel City.

Soy un zorrinito algorítmico.