Monthly Archives: August 2008

Strings

Here’s the idea: Create 5000 points. Choose one at random. Draw a line from it, to the next nearest point. Continue to do that, without crossing any previously drawn lines. When it’s impossible to draw another line, choose another point and another color and start over. The result is all these different colored squiggles that never cross themselves or each other. It looks a lot like Brownian motion trails, but really has no relation.

I didn’t like how sometimes it made these long straight lines amidst all the squiggles, so I added another constraint: that the “closest point” has to be within 20 pixels of the last point. Not a dramatic change at all, but you get smaller segments and more strings.

Then I changed and reversed the last constraint – instead of being no more than 20 pixels long, line segments can be no less than 100 pixels long. This throws a really odd twist into it. Looks like a pile of books that fell off a shelf.

I think this is a great example of how experimentation works. You change something from “dist < 20” to “dist > 100” and suddenly you have something completely different that you never expected and never could have predicted.

Butterflies

p = ecos(θ) – 2 cos(4 θ) + sin5(θ/12)

or in ActionScript:

var r:Number = Math.exp(Math.cos(i)) – 2 * Math.cos(i * 4) + Math.pow(Math.sin(i / 12), 5);

r = radius, θ = angle. Figure out the x and y from there.

Randomly scale, position, rotate. Coat with bevel and dropshadow. Bake at 350Ëš for 30 minutes. Serves 5.

Dug up in Computers and the Imagination by Clifford Pickover.

Simulated LCD

These are not photos of an LCD monitor. It’s an AS3 application. A picture is loaded in. Every nth pixel is sampled and a pseudo-pixel is drawn, each with a red, green, and blue bar. The whole thing can be rotated and positioned in 3D. Best seen full size, of course.