February 21, 2009
A Couple New Apps

Even when I'm busy, I like to find time to write random applications, with an emphasis on small scope and high usability. Here are two applications I wrote over the last couple weeks.

Sketcher
Sketcher is a user-friendly version of my original sketcher experiment from 2005. It lets you load an image, tweak the filter and sketch settings, and save the "sketchy" version as another image.

The sketch rendering was originally done in OpenGL, but I went and re-implemented it in software for this version for various reasons. It is a C# port of my original C++ code, and unfortunately it seems to be a good deal slower. It's still quite usable, though, provided your image isn't gigantic.

A few features remain grayed out as well, having not been completely ported, such as Underpaint mode and the Quality setting. Underpaint is kept off, and Quality is fixed at 100%.

Screenshots ...


Download Sketcher (for Windows)

ColorCube
I meant write this back in 2005, but better late than never! ColorCube is a simple application that lets you load an image and displays the color space of the image in a 3D cube. You can rotate the cube with a slider.

It has very few options since it really doesn't need much. A neat feature is the ability to only show colors used more than a certain number of times, set by the Density Cutoff spinner. So, if Density Cutoff were 15, then you would only see colors in the cloud that were used on at least 15 pixels.

You can also specify the cloud opacity, which is often useful for seeing the 'inner' structure without raising the density cutoff.

Download ColorCube (for Windows)

If you have any problems or suggestions, drop me a line - shea241@gmail.com

An Atom Update

My last post was more than a year ago, titled Atom 1.0 'Alpha' Coming. Just one week after that post, my hard drive crashed, and my last source code commit was three days earlier. Oops.

I had worked at least 8 hours a day for those three days doing a huge amount of work. I rewrote the node viewer, the node renderer, I made the evaluation system multi-threaded, and a refactored most of the code. So, while three days doesn't seem like a big deal, knowing that I had to re-do all of that work from the beginning, in effect, completely drained my enthusiasm for making progress.

And so, there it sat, while I procrastinated all year. But then I had a thought ...

"Hey, wait a minute. If I could just access the raw bits on that dead drive, I might have a chance of recovering something!"

That really shouldn't have taken a year. Still, I fished the drive out of a drawer and hooked it up to my computer. The details are dry and technical, but I essentially mounted the disk in a way that ignored errors, dumped the raw bytes -- corrupt and all -- to a file, mounted the file as a disk (this time there would be no hardware errors to contend with), and used XFS's super awesome recovery tools to fix the filesystem and begin recovering files.

Whew! So how did things turn out? I recovered almost everything I wanted to keep, including all of the Atom source I had lost. So now, as of this month, maybe I really will be able to release Atom 1.0 'alpha' soon!