August ’06 Installment: Von Neumann

"Von Neumann" is named in honor of mathematician and physicist John Von Neumann, whose "middle-square" pseudorandom number generator powers the engine used in this installment.

In computer programming, nothing is completely random, it's all pseudorandom. That is, to create a "random" number, you feed a number into a formula and the result is your random number. Usually, computer functions such as Math.random() use the current date (including milliseconds) to feed to their random formula, and this is random enough. Yet technically, if you knew the formula, and the number fed to this formula (seed), you'd know the result.

In the case of this August installment, I wanted a random engine which I could feed a specific number, and it would always return the same random-looking number (if fed the same seed). I would use the pseudorandom product to scale, rotate, place and color various shapes in a space, creating pseudorandom artwork.


Von Neumann came to the rescue with his middle-square method which is extremely easy to work with; quite simply, you square a 4 digit number, and choose the 4 middle digits of the end result.

11112 = 1234321 -> 3452

More elaborate PRNGs have been created, but the simplicity of this middle-square method, and the visual results were exactly fine for my purpose.


The end result will replicate some pre-drawn shapes a specific number of times, then proceed to rotate them, scale them, animate them, position them and finally color them according to a color array I choose. All of this based on what random-seed the engine is fed. You can either enter this 4-digit random seed in the upper-left textbox, or you can drag the crosshair to use its coordinate to generate a seed for you.

In the next couple of months, I hope to elaborate this engine, add restraints, remove other restraints and generally see where it'll take me. Art happens all the time.

View installment

August ’06 Installment: Von Neumann