A couple weeks ago, Acidjazz and Christopher Abad put on an ANSI art show featuring artwork by LordJazz and Somms of ACiD at the 20goto10 art gallery in San Francisco. The ANSI artwork was displayed on LCD screens using a custom-made lcd scroller board that mimicked the nostalgic scrolling effect that the original ANSIs would produce when displayed on an 80 column by 25 row terminal. Static ANSI images were also on display throughout the gallery in the form of 2′ to 6′ lightboxes. Peering through the overwhelming crowd of ANSI enthusiasts from atop a bookshelf in the back of the gallery sat several chumbys that Acidjazz and Chris let me set up.
When I had originally heard about the show, I thought it would be fun to develop a chumby widget that displays ANSI scrollers and leverages a couple of the device’s more interesting features; namely, the touch screen and accelerometer.
After a couple attempts at parsing and rendering textmode ANSI images in Flash (the resulting SWFs were far too slow), I opted to build a proxy that would convert ANSI to PNG and resize the images to 320 pixels wide on the fly. Ultimately the widget simply took a single parameter which was a URL to a PNG or JPG representation of the original ANSI.
The proxy used ansi2gif to convert the ANSIs, however, ansi2gif lacks the ability to programmatically determine the number of ANSI lines in a given .ANS file, so I added support for that – here’s my (quick and dirty) patch against the ansi2gif 0.9.13 source if anyone else wants to write their own proxy.
The final widget scrolls the ANSI automatically and will change directions depending on which way you slide the image around. The widget also takes into consideration which way (and how far) you tilt the chumby and accelerates the scroll in the direction you chose accordingly.
I’ve made the widget public for anyone to use, however, I’ve removed the proxy support because I haven’t had time to clean up the proxy code. If you want to point the widget directly to ANSI files, you’ll need to build your own ANSI -> image proxy.
Quite a few people that saw the chumbys on display at the gallery asked for the widget source code, so I’ve made the source for both the widget and the widget configuration movie available here.
Here’s a video of the chumbys scrolling ANSIs at the gallery (note – the chumbys on display were prototypes, the production units look a lot cleaner):
Big thanks to Acidjazz and Chris for letting me set up some chumbys and takin’ me back to the BBS days… I’m definitely looking forward to making it out to another 20goto10 event. Also, thanks to Levy Ring for helping me field a lot of the chumby questions (and letting me borrow a couple of his prototypes for the show).
Here’s a virtual chumby scrollin’ some ANSIs: