Sometimes an app comes along that just wows you with what it does. It makes something incredibly difficult seem effortlessly simple, and you wonder why nobody had done the same thing before — or if they had, why you didn’t already know about it. Sweetie is one of those apps. It’s more a toy than a full-fledged image processing app, but boy does it impress.
Sweetie turns your photos — and any other images you choose — into beautiful ASCII art. The results are spectacular, and I’ve never enjoyed testing an app for review as much as I did here. The interface has some serious issues, which will need to be rectified before Sweetie can really shine, but that shouldn’t stop you from picking it up.
ASCII Art at its Finest
ASCII art, for the uninitiated, is a graphic design technique whereby pictures are composed of letters, numbers, and symbols. It has roots in pre-Internet culture through bulletin board systems and (dating further back) typewriters. It can be incredibly versatile, especially when you allow coloration of characters and the background.
Sweetie takes out the hard work of illustrating with text characters, crunching the data for you and spitting out an ASCII-fied version of your source image. Note that not every image is suited to conversion to text-based visual art, and you’ll have to experiment early on to see what works.
Not all images adapt nicely to ASCII format, but many that do are stunning. This is Times Square in New York, from late September this year.
Your image appears in the main panel, with an Apple-style stitched-grey background. You can drag and drop or open images via the file menu. The magic happens over on the left. You have choices for font, color, background, character set, grid type, tile size, and padding between tiles. Click the Render button at the bottom to convert the image into ASCII art.
Lots of Options
Courier Bold is selected as the default font, but you can use anything on your computer—selectable via the standard OS X font swatch. Most of the images I used worked well with Verdana and Arial Black. Different fonts leave empty space in different places, and using non-fixed-width fonts can have unpredictable results. Color refers to the character color(s). The cell average option measures the average color at that point in the grid and uses that value. Stencil gives an effect of stencilling the image and using text characters to create the corresponding graininess. You can also choose a single color to use for all characters.
Here’s a photo put through the stencil filter, with cell average for the background color.
Background color options are transparent, solid (one color uniformly; user selectable), auto (the average color of the entire image), or cell average (average color at each grid point). Your selection here may only apply to the backdrop, but it can dramatically alter the feeling and mood of an image. Don’t neglect it.
This is the same photo as up top, put through different filters. Most notably, the transparent background offers a starkly different mood to the solid black of before.
Your character set (aka charset) options are ASCII, letters, symbols, all, or user-defined. You can add or remove characters from the text box. You’d be surprised how much of a difference this part can make. The alphabet often looks radically different to a series of dots and dashes, even with the same source image and filters set.
The grid can be either symmetric or asymmetric. This refers to the uniformity in size of tiles. Each tile holds one character. Symmetric grids have all tiles the same size, whereas asymmetric include a range between the user-defined minimum and maximum. Padding impacts on the space between tiles. Just changing this value turned a few of my images from ugly to magnificent. As with all art, everything comes down to personal taste — one person’s trash may be another’s treasure. My aesthetic preferences may differ from yours.
While symmetric seems to produce more reliably attractive results, asymmetric can be brilliant for some images. (Although this size just doesn’t do it justice.)
It’s easy to save and share the finished product — there’s a share button with Flickr and Facebook support, along with a save button, just below the image. Keep in mind that there’s no undo button, though, so if you don’t save something and want to go back to it later you’ll need to remember the settings that made it.
Interface Oddities
Sweetie is held back by poor usability. It looks simple to use — and indeed it should be — but the user interface has several frustrating quirks and issues. The worst crime is that changes in the text boxes don’t take effect — even after re-clicking the Render button — until you hit Tab or Return or click on another option. This leads to great confusion whenever a change you make doesn’t appear to have any effect. When you click Render, it should render the image with whatever settings are visible at the time. (To be clear, this does not happen.)
Changing font and user-defined colors comes with a similar quirk. If you leave the font swatch open, change some other settings, then go to switch to another font, nothing happens. You have to click on the Font option every time. It’s the same with colors — the color swatch has no effect on the selected color unless you make sure that it’s the active interface element. Sound confusing? It is; inconsistency in UI design is maddening, and it significantly hurts Sweetie’s usability.
It looks like I’m changing the font to Comic Sans Bold, but Sweetie doesn’t register this unless you click on the Font button and then click on Comic Sans again.
Other issues are more minor. Looking through the charset text box is difficult (due to a lack of scroll bars) when the characters don’t all fit in the viewable portion. There is a minimum and maximum tile size for every image — it varies depending on the image dimensions — but the app doesn’t tell you what these are. You’ll only find out that a value is “too large” or “too small” if it falls outside this unspecified. In my experience, padding must be between 0 and 3 (inclusive) for all images. Why does the app not tell me this? It’d save a lot of frustration, and also give users a better idea of their boundaries.
Here’s one more image, so you can see how it copes with a drawing. This is something I sketched on white paper and scanned in, then put through the stencil filter with a custom color for the background.
Conclusion
I thoroughly enjoyed my time with Sweetie. I think it’s fantastic. With just a few clicks of my mouse I can turn a fairly generic photo into a beautiful work of art. It’s the kind of app I look for — the kind that I’ll rave about because it’s just so cool. But in its current state I feel compelled to tell each person that the app is brilliant but the user interface is borked. I hope it gets redone, with better documentation, usability, and guidance for newcomers. Because right now that’s all that holds Sweetie back from being one of the coolest apps I’ve used this year.