Gerard Holzmann and I wrote the Digital Darkroom for the Liberty Science Center. This software was written to bring some of Gerard's early work on image processing to the museum members. A simplification of this software, the Portrait Style Station, is now running at Creative Discovery Museum in Chattanooga, Tenn. Both of these programs are available to non-profit institutions from the authors in exchange for lifetime family memberships.
The entire program fits on a single floppy disk, so it is easy to change versions or back up the software. No hard drive is needed. It does take a couple of minutes to boot, but runs off the RAM after that.
You need enough light to let the camera do a good job, and this exhibit just meets this requirement. It would be better to have better lighting. We let the user adjust the camera for the best shot. Its travel could be improved, and the setup is a little difficult for a small kid to use.
Though the video camera used is quite expensive, it lacks a switch to reverse the scanning direction. This means that the camera/video display acts in reverse of a mirror: you move right, the image moves left. It takes a few seconds to get used to this. There is a reticle with a "+" in the center for lining up your nose (or whatever) with the center of processing.
Many of the transform algorithms are Gerard's, but we've had fun adding others. Academy award winner Tom Duff supplied several, and I have invented a few. My (then) eight year old son described "Terry's kite".
There are two problems with supporting an attached printer: people often print out unmodified pictures of themselves (putting those people at the Jersey shore out of business), and it costs money to run the printer.
I originally implemented a software and hardware interface to a coin slot. The controller is run through a parallel interface. It worked in my tests, but wasn't used for a couple of years. When they wanted to use it, the parallel port no longer worked. I haven't had time to fix it.
The coin device has a relay to reject all coins. We don't want to take a quarter and fail to supply a picture. There are several ways that the printer can fail, and the software carefully rejects coins if the printer is offline, out of paper, jammed, etc.
The software allows user-specified printing costs, and prints a summary of printer usage as a simple accounting tool.
This hasn't happened, and it would be nice to add explanations. Perhaps this web page is a start. Though some of the transforms are quite technical, and best described in the computer language they are written in, many are easy to explain. We need to do this, perhaps with a poster next to the exhibit.
The processed image is only 256 by 200 with 5 bits each of color. This small size makes processing quite fast, even for complex transforms. When possible, I tried to show the algorithm as it proceeds. This may help the user figure out what is going on, and is certainly more interesting than seeing nothing while the computation occurs.
Like many things, the best museum exhibits leave the user wanting to do a little more. If you find an exhibit on an uncrowded day that can keep you interested for half an hour or more, that is a good exhibit. By that measure, we have done well. I have a duplicate of the setup in my home, and I still find some new effects and interesting combinations of transforms occasionally.
First of all, many transforms are amenable to real-time processing with today's processors. I have a prototype of the Digital Funhouse implemented on an SGI. This is a high-tech version of a funhouse mirror, though I am not sure how you would bend metal to do some of the transforms. Real-time is a lot more fun, and it is hard to go back to the single-frame digital darkroom.
I need spare time to work on this, and need a faster PC and (especially) frame buffer. Once again, I think I can fit everything on a single floppy. Some transforms are simply too slow for realtime, which is a shame. The "oil paint" and Sobel operators would be especially good.
I'd like to do something similar with sound. It would be easy to show the sound spectrum from several sources, and have the user specify or design filters. He could see and hear the results. There's plenty of CPU power for this one.
And for all of these, I'd like to sneak in a little more education. Perhaps we could teach a little programming, using the transforms as statements.
I am working on an update to this. Click here for details.