Its always fun to play with prime numbers. Why not. In math they mean a lot, in computers they are important, and in recreational mathematics they are… ahem… interesting. Ulam Spiral In 1963 mathematician Stanislaw Ulam published this spiral in Martin Gardner’s Mathematical games in scientific american: A small piece of math history. From that […]

The Hilbert curve is a neat fractal that can turn a single line into a square surface (see gif above which was kindly stolen from wikipedia). An interesting behavior of Hilbert curves is that locality is maintained, meaning that traits near each other in the line cluster together when mapped onto a Hilbert curve. Hilbert […]

We all love random walks; be it just strolling through your city, forest, or a confined orthogonal canvas. import string from matplotlib import pyplot as plt import random import as cm X,Y = 9,16 # figure ratio m = 2 # ratio multiplier fs = 3 # figure size multiplier lw = 2 # […]

Have you ever considered scatter plots to be a tad boring? Do you love the patterning of cathedral stained glass? Well, besides aesthetics, there are cases in which a scatter plot might not be the best option to represent data. What if you are more interested in the spatial distribution of some variable? Some points […]

Howdy fellas. It has been years since my Minecraft addiction but sometimes I still need some colorful pixelation, and as my fight to make my GPU work and installing Steam (you will know when I win as I won’t post here anymore), I don’t have delicious retro like games to satisfy me. Then I’ll make […]


Just a series of random triangles. With slight transparency. Yet somehow gives me a senesce of perspective. Next time I’ll try to make the triangles fit in a predefined space rather than fill a canvas.

A large zero filled matrix is gradually filled with circles. Each circle is randomly drawn and adds a 1 to the matrix. The outlying random landscape looks quite natural. After a while, it seems very static, but before you realize it, it will completely change.


  Starting with a blank canvas (every pixel set at 0,0,0) the canvas is split approximately in half vertically (following gaussian distribution)  and 1 is subtracted or added to each RGB value for the new cross sections. The process is repeated for the new cross sections (this time in the opposite orientation). This process has […]