I have also implemented Bresenham's line and circle algorithms (for round-cornered vector buttons) and the Hershey vector fonts and a bitmap blitter for raster fonts, all using dd in an sh shell. Binary data processing in a shell script is said to be "impossible" if you trust what Google finds on this subject. For me, "impossible" is just another challenge.

And as you may have already seen in the "touchscreen ascii fingerpaint" thread, the hexdump command can similarly be "abused" to read binary touchscreen event device data. But hexdump also supports offsets like dd, so it can read raw binary pixel data, to complement writing pixels with dd above. Who would have thought you could implement GetPixel() and SetPixel() functions in a shell script using only hexdump and dd to process individual bytes of binary data? And yet, it is MUCH faster than plotting graphics with BASIC in the "olden days".

Sadistic hobby, eh?

UPDATE: This script calls eips to refresh the eInk display, and dd to write binary pixel data to the framebuffer, and it would need a third external program hexdump to read binary framebuffer pixels and binary touchscreen event data and/or keypress events, if you wish to add such features. See my touchpaint script for an example.

CHALLENGE: Who will be the first to implement a C compiler using only sh built-in shell features and the dd external program to output the binary compiled executable program?