about  |   publications
krazydad.com  |   wheelof.com

Computer-generated Art

I have been interested in computer-generated art of various kinds since I started programming the early 1980s. At the time I was a music student at CalArts, so it is understandable that a lot of my programs would have an artistic bent.

Image Synthesis

Since the mid-80s I've been writing software that generates images using mathematical expressions. This technique can be used to create some extremely interesting and beautiful special effects such as Fractal Zooms, animated clouds and many others.

These days this is a very common technique (called 'procedural textures') used to generate image detail in computer graphics.

Here are two of these programs.

Pixel Magic is an art program for the mathematically literate. It creates images by computing the results of mathematical expressions (thus the name) which you supply.

Photoshop Expression is a Photoshop Filter that performs the same functions.

And here are some graphics demos I did a few years ago.


During the spring of 1997, as a result of my research into textiles, I got interested in computer-aided cross-stitching or needlepoint. I wrote a program to generate needlepoint patterns from PICT files, and began a working on a colorful spiral pattern derived from a computer-generated image, which was made using my Pixel Magic program. The old ladies at the needlepoint store were very helpful with my oddball questions, and provided me with some swatches to photograph digitally, so I could determine the RGB values of the colors. The work is almost complete now, although completing the background color is very boring and progress has slowed in recent months. If you're looking for a relaxation exersise to put you into a zen-like trance, needlepoint is a good candidate.

OpenGL and other Graphics Programming

In early 2002, having explored 3D programming in DirectX, I started exploring OpenGL, which has a cleaner interface, and runs on multiple platforms. Unfortunately, some of my graphics cards aren't optimized for OpenGL as well as DirectX (a good example of Microsoft's clout stifling a superior, but underfunded technology).

I did most of my modeling in "Rhinoceros" which is a nice Nurbs-based modeller (and not too expensive on the faculty discount). I converted these models to .3DS files and rendered them in OpenGL. I also did some nicer non-real-time rendering in BMRT (a renderman-like system).

At this time I did a lot of work simulating kaleidoscopes and produced a large quantity of Kaleidoscope screensavers, including ones which mimicked real-world kaleidoscopes. For a time, I sold a shareware Kaleidoscopic screensaver called "metascope".

Flash / Actionscript

Around 2005 I got into Flash, and did a good bit of work in that, some of which can be found on my Flash Bestiary. See my separate discussion of that work.

Processing / Cinder

More recently I have done a great deal of work in the Processing, and have taught a few classes on the subject. I have a few pieces up at my blog Joy of Processing, as well as at OpenProcessing. I've also done a bit of work in Cinder.