Monday, November 27, 2006

Photobucket - Video and Image Hosting
Larger version here.Same technique as the last image, except I use a different basis function -- in this case, a sparse convolution noise function, instead of a boring ol' sine wave. It's actually what I was originally planning with the image below -- the concept was an electroencephalograph trace actually creating a macroscopic image from the individual traces -- but the image was really hard to make out. A bit of tweaking with power functions brought it to the just -legible level, so I went ahead with the post.

Sunday, November 26, 2006

Photobucket - Video and Image Hosting
Larger version here.

Thursday, November 23, 2006

Photobucket - Video and Image Hosting
Larger version here

Sunday, November 19, 2006

Photobucket - Video and Image Hosting
Photobucket - Video and Image Hosting
A promising start, despite the brutal streaking artifacts. Going to try a simple scheme where I adjust the line widths that should correct most of it, but it requires writing a bit more code.

[Later] Made a few empiric tweaks, tamed the worst of the artifacts. But we'll have to accept some degree of radial streaking as part of the charm of the effect.

Friday, November 17, 2006

Photobucket - Video and Image Hosting
See a larger version here.

This effect would likely make for a cool animation, and in fact could be made quick enough to work in real time. I'll prepare an animation test and post it later.

Tuesday, November 14, 2006

Photobucket - Video and Image Hosting
I mentioned Renderman and Aqsis in a previous post. This image is somewhat more conventional picture-making; in fact, I was reluctant to post it here because I didn't write the software to generate the image, in contrast to the rest of the images on this blog. (I used Aqsis, the open source Renderman compliant renderer.) Unless a shader counts as a piece of software, since I did write the shader used in the image above. So on that technicality, the above image squeaks by.

A shader is a gobbet of code that executes at every point on the surface of an object being rendered, and it informs the renderer how the object should look at that point. The base geometry is a simple donut shape, and I've attached a simple procedural shader to the surface -- a displacement shader, as a matter of fact. I call it my Henry Moore shader. You can check some more of my shaders here. As you will see, I am very partial to displacement shaders.

(For those waiting for more whiz-bang interactive video effects, I'm working on something pretty cool. Should be ready in 2-3 days. Thought it'd be ready by now, but the book-keeping when dealing with staggered grids can be a headache.)

Sunday, November 12, 2006

Photobucket - Video and Image Hosting

Same technique as last post, except with vertical and horizontal squiggles composited together.

NOTE: I really want to encourage people to blur their eyes a bit and step back from the monitor to look at this image. Up close, of course, it just looks like a garbled grid. But as you step back, the image in its full fidelity really jumps out. You have to filter out that high frequency energy that prickles your eyeballs when you're up close.

Friday, November 10, 2006

Please check out my profile. Also, apologies to anyone who tried to contact me at the email address in the blog, since it was wrong. It is now correct: contact me
Photobucket - Video and Image Hosting
An interesting variant of the line-halftoning idea is to constrain the ways in which the lines can move. In the above image, a set of vertical parallel lines are allowed to squiggle sideways so that
together they approximate the local grayscale of the image. You might have to blur your eyes a bit and step back from the monitor to get the effect.

This approach is a bit dicey, since the average grayscale of any given line is constant, so it tends to wash out the image. And it fails (though sometimes in visually interesting ways) on high contrast images.

Nuther one here.

I'm planning to use the lines as base geometry for more fanciful Renderman-based images -- one thought I had was to mimic wood grain, so it would look like the image of Lena was revealed in a sawn log. Hm. Maybe a picture of the Virgin Mary would be more thematically appropriate....

Here's a brief animation test using the scribbly half-tone technique. The compression artifacts really take a toll, but I think you can get the gist.

Saturday, November 04, 2006




I work with video as well as still imagery. Stick it out till at least 0:28, where it gets interesting.

If you liked this, you will probably like this, this, and this.

P.S. Yes, my presentation skills need work....

Wednesday, November 01, 2006


When implementing some of these image representation ideas, sometimes they turn out exactly as I expected, sometimes better, and some are complete duds. The above pic was an example where I got something that I expected would look cool, but I didn't expect it that it would look like... coiled viscera, or brains or something. It's not entirely successful in that it's pretty hard to make out what it is representing (it's the Mona Lisa). Needs some tweaking to convey contrast better. Also, the intestine-y look invites a nice, gooey, glistening rendering style. So it's time to break out the Renderman.

Renderman, of course, is the 3d rendering technology created by Pixar. I can't affort the 12 grand or whatever for their flagship renderer, but thankfully there is a superb knockoff called 3Delight that's quite nice indeed, and the first license is free. There are also a couple quite passable open source Renderman-compliant renderers out there, notably Aqsis, which I have used quite a bit.

Renderman is a 3d renderer, but there's nothing to prevent it from being used to make 2d images. And the Method Artist just loves the procedural shader model. So watch this space for some 2.5D procedural madness.

P.S. If you liked this, you might also like this!

Nuther variant on the line-half-toning idea.

While trying to figure out ways to half-tone an image with a continuous line, I had the brainwave that traversing stipple points in Travelling Salesman Problem order might be an interesting way to do it. The travelling salesman problem is a famous optimization problem, famous for being famous, and famous for being computationally intractable. It's also famous for being easy to state as it is hard to solve: given a set of cities, what is the shortest route that goes through each of them? My thought was that the geometrically optimal line which joined all my stipple pts might also be aesthetically optimal.

So I went poking about the net for TSP software, and found out that a fellow named Craig S. Kaplan published a paper on this very technique about a year ago. You can check out the link here. I was a bit bummed to find someone had beaten me to the punch, but I wrote an implementation anyway. The pic above is a typical example. Enjoy. The effect avoids the lattice artifacts of the Sierpinski approach (though perhaps that's part of the charm?), and looks smoother overall.


Been on a kick where I am looking for ways for a continuous curve (in this case, a piecewise linear curve) creates a half-tone effect by bunching up tightly in dark areas, and spreading out in lighter ones.

There are a bunch of ways to do this. One cheap and cheerful method is to stipple the image, and then traverse the stipple points in Sierpinski curve order. If it was earlier in the evening, and I was less bagged from work, I would be more inclined to go into detail, which might not be a good thing.

From the Method Artist


This site is my first stab at showcasing some of the procedural image-making I have been working on lately. I become quite compulsive about it, and I am starting to accumulate a nice grab-bag of techniques and source code, and I am eager to get some feedback.

Above is an example of one of my latest. Hodge-podge of different techniques, turned out pretty good. Some pretty heavy number crunching involved, takes a couple minutes for medium size image on a recent model PC. And yes, it's a processed photograph of Marilyn Monroe. With any luck, I won't get in trouble for pillaging a copyrighted image.

I have ambitions to "monetize" my work, as we say in my biz, which is the biz of software development. I am casting about for a business model, which might consist of selling plug-ins for Photoshop so that others can make stuff like this, or possibly selling preposterously over-priced one-offs to wealthy Manhattanites, or maybe executing some of my ideas in welded steel on a massive scale to decorate some soaring corporate atrium or other. Suggestions are welcome.

One thing I won't be doing is open-sourcing the code, so don't ask. At least, I won't be doing it before my daughter is out of college. I love open source, and I am deeply philosophically committed to the GPL when it comes to public computing infrastructure -- OS's, compilers, network stacks and such like -- and I plan to contribute in future to an open source project where my skills apply and my personal solvency permits. But I'm also okay with selling proprietary, closed-source software. As Linus says, the person who wrote the code gets to decide what to do with it, and for now, this stuff is for my eyes only.

Expect to see a new image every couple days or so. Typically what is involved is 1) having an idea (and they are coming thick and fast these days); 2) writing some code; and 3) making some images.

P.S. Please forgive the pretension and mystery surrounding my self-appellation. I want to keep blog this anonymous for now.