Fun with Dots

So here's a picture of a cute bug some code of mine produced.

A bug

The code should have (and now does (sort of)) produce something like:

A not-bug

I think there are still some (subtlish) bugs in the code which are visible in the last picture. Can you see one?

Here's another bug. Aliasing, what aliasing?

An aliasing bug

Here's an image of a greyscale linear ramp, from black on the left to white on the right. The method needs more work, as can be seen by the funny blank spots near the left and some overlapping stipples in the middle, but I think it shows some promise. Each vertical slice should be uniformly the same tone (which it is not in this image), but that is fixable by adjusting one of the parameters correctly. It's just a bit off in this image, as you can see by looking at the bottom-left corner.

A greyscale ramp Original image

And here's a picture of a famous scientist. Guess who?

A famous scientist Original image

It's Richard Feynman, the physicist and joker. Source photo courtesy of The Archives, California Institute of Technology.

Non-Photorealistic Rendering

What's this all for? I took a course on non-photorealistic rendering with two fine German gentlemen named Prof. Thomas Strothotte and Dr. Stefan Schlechtweg. Non-photorealistic rendering is a field of computer graphics that looks at computer generated images that don't necessarily look realistic. There's lots of reasons to do this such as communication, clarity, fun, etc. Artists of all types typically don't render scenes in a photorealistic manner, even to the extent possible of their media. Instead they abstract and modify to more clearly communicate to the viewer. The same ideas are of course useful in computer-generated images.


My project was an attempt at stippling images. Stippling is an artistic technique where the artist approximates continuous tones with small dots, called stipples. The stipples have to be placed carefully so that they represent the desired tone, but also so that they do not introduce spurious patterns into the final image. For example, the stipples should be placed semi-randomly and not form lines, grids or other visible stuctures. Otherwise the viewer would assume that the lines, grids, etc. are a part of the actual subject, and not just an artifact of the method. The final report describes what I did up to 2:10am, December 9, 2000 on the project. (PostScript, PDF) The source, as a nice gzip'ed tarball.