PostArtPoetry: “IHDRkXTPLTEttXX//”, a PNG poem

Internet Art, Linguistic Deconstruction

In honor of the Post-Art Poets (@postartpoets), whose motto is THE TIMELINE OF ART HISTORY MUST BE ABANDONED IN THE NAME OF PROGRESS, I have interpreted their logo as its own form of machine poetry, reproduced below in both full representation and as edited to retain all English text letters.

Full Poem:




>>ssOONN!!        0088&&aa$$ZZMMGGKKRR11II))PPnnUUpp;;LL77~~dd??..jj%%}}^^BBHH””{{WW@@kkffooy&IDATxCeE%BMe5]HSBtIS;2CRC]Jsgd;wf`08 m=`B\ $Qb G@Hc `H] $HgNiBhwC t9(@&m56.l;n=|gAiWo

N(@_Brr]rE?o48@3x@_P7Wd3Zb’Z NBFDl_7)PtPX`T
@FEh ZlO653-|c572!;\d@P’
@duB.].G2k<o04e3t”,r{Q`9!+_86@S5’+!1T7w\<tV@3Y,.<Kp_d.n[`Xic h%T4n5%\QXDUTD    PFOZ<;g)u5}:YPF^`k.L%z@QgF
reeCFu>(Ma{B>tC7@0l    q”`hh(:N2@k@QwQY)9fe’`W60_
Uo/I_0@:_0″TNvS3}k+zJ$4E@tt@-<0x’E`-g+f<nqtX3kwkF532aNY-t1W!P. k<~UA(odoV7@_Uq{C
v`aw>|wk    @4.Y0sP]04dW”@{z5_1/A3_1C pu]`};’5@i<i@tX|&”M5U7_T[(i?!N\}&]DZA`i}U=l~F~sw{U_3 ,WO2@Wj{Uehyidc2q]@fMy-G^    S”q|~I5&%ue
72&]    W{7MTP
@hgdaX6X5p`qM)[zli`C.0,:g@-I@:9_j\hO;=v-5`=Gr/    2t@A@@@@fxmLm
}}c+:0@pCmF]&gkA3LP?M&`7T:CK    @sw4y/ey@V.7-.,7TO0*KBh]@wc38Lr!\?]+5@0KK@3P,5tvG,l%$C{|&QZB@@@WQX<R`0f4J

English Text Version:





FEh ZlOcdP
duBGkoetrQSTwtVYKpdnXic hTnQXDUTD    PFOZguYPFkLzQgF
reeCFuMaBtCl    qhhNkQwQYfeW

UoITNvSkzJEttxEgfnqtXkwkFaNYtWP kUAodoVUqC

vawwk    YsPdWzAC puiitXMUTiNDZAiUlFswU3 WOWjUehyidcqfMyG    SqIue
hgdaXXpqMzliCgIjhOvGr    tAfxmLm

 Machine-Readable Translation:



Another Way to Get More ETG Pixels

Data Representation, Internet Art

Continuing on the idea of stuffing the Twitter pipeline with pixels, maybe I should just not worry so much about compression and figure out a way to divide images up and let the coding enable people to reconstitute them. Thus, I have prepared a tiled Twitter graphic, expanding from a simple 9 x 12 pixel CGA graphic to a 27 x 36 pixel graphic in 9 tiles.

For this end, though, I’ll need to modify the header definitions. Consider this ETG V0.2, with a small tweak on how to deal with images that are supposed to be displayed together.

The ATG frames code includes a 4-letter ID squib and 2 hex digits for animation frame numbering. I reserved the first block of 128 for a non-looping animation set, which is actually kinda silly because most Web animations are looped anyway. So let’s use that block to indicate the location of each tile in the set. This gives us a latitude of 7 tiles across and 15 tiles down, or tile coordinates 7E.

If you have a tileset of 7 tiles by 10 tiles, then the tiling number 45 means “fourth tile from the left, fifth tile down”. The tiling number 12 means “first tile from the left, second down”. And, using hex, number 7A means “seventh tile from left, ten down”, or the last tile in this set.

For this image, I tiled an image into a 3×3 grid, or 9 tiles. For our first tile, the header will look like this:

`CGA which gives the color space

`09×12 which gives the size of the tile

`FedW11 which gives the ID squib and the origin tile (first from left, first down)

and `{ which locates the data payload.

The tiles can be tweeted in any order, because they share their unique ID squib and their ordering is contained within their headers. However, I prepared these in left-right/top-down order, so I’ll paste them here that way:










Here are those pieces:

Here they are assembled:

And here they are enlarged for more clarity:

Further CGA ETG Compression

Data Representation, Internet Art

I’ve been trying to find a way to compress images even more, so I could expand the size of the color tweets available. Basically, since Twitter uses only the usable characters of ASCII text, and it can be hard to type higher-bit ASCII on some keyboards, I’ve pretty much exhausted the palette of encoding options with my 6-bit “0-9 A-Z a-v” encoding scheme. So… instead of encoding, maybe I could address patterns in the data itself.

One of the easiest things to see in the data are strings of repeating elements. If I could further encode those strings I could save room and not have long lines of 000000 or 33333 for fields of color in the image. Let’s say I simply put the number of pixels in front of the code for the pixel color, and the TwGD will decipher what was meant. So, a string of eight white CGA pixels, FFFFFFFF, would be represented as 8F.

The only problem with this is that the character 8 already encodes for dark grey. Putting numbers in the stream will collide with the numbers already there. So I’ll need to convert the hex numbers into a new coding scheme, so the pixel quantities don’t mess with the pixel codes. Say, pixel 0 (black) equals a, pixel 1 (dark blue) equals b, and so on. In this scheme, the string of white, FFFFFFFF, would become 8p. That’s a savings of 6 characters!

Of course, you won’t get that kind of savings everywhere. Especially 2-pixel doubles, since you’re just replacing 2 identical pixel codes with a “2” and the new code. There’s still some squishing to be had here. For this special case, I came up with a second series of codes, using punctuation to stand for pixel doubles. Here’s the full set of codes for this scheme, which I’m calling Similar String CGA encoding (“CGS”)

0 = a   00 = !
1 = b   11 = "
2 = c   22 = $
3 = d   33 = %
4 = e   44 = &
5 = f   55 = '
6 = g   66 = (
7 = h   77 = )
8 = i   88 = *
9 = j   99 = +
A = k   AA = ,
B = l   BB = -
C = m   CC = .
D = n   DD = /
E = o   EE = :
F = p   FF = ;

So, using this additional compression scheme, I was able to encode a 12 x 17 pixel CGA image with plenty of room to spare. It doesn’t sound like too much extra, but that’s 150% the area of the 10 x 13 CGA pixel image I tweeted back in December, and includes the ETG header information, too.

Here’s the image, a color version of the self-portrait from yesterday:

And the resulting tweet, using “CGS” as the code for this new compression scheme:


A New ETG (Encoded Twitter Graphic) Self-Portrait

Data Representation, Internet Art

I dusted off the old ETC encoding protocol today for a project I’m doing for a show entry, creating a self-portrait to send through social media. I used the 6-bit compression scheme I used for old Teddy Roosevelt’s 2-bit gray image for an image of myself. Because I did a couple tweaks on the protocol between encoding Roosevelt and nailing down the format, I had to sacrifice a line of pixels for this image. It’s 15×25 pixels, not 15×26, but that’s not too bad. The tweet:


And the encoded image:

Install Pics of the BPL Piece

Data Representation, Printmaking

Yesterday I installed my large-scale print work, “Boston Public Library 4-Color ASCII”. Here are some images showing the installed work from the entrance of the Johnson Lobby, a side shot showing the Children’s Room Stacks, and a full-frame shot of the work itself.

Preview of Large Print for the Mixit/Boston Public Library Show

Data Representation, Printmaking

Quick preview of the large print I’m doing for the Mixit Print Studio’s 25th Anniversary show, ReThink Ink, at the Boston Public Library. This print will be displayed in the Johnson Lobby of the BPL, along with three other installation pieces, a informational video and a Mixit Studios slideshow. Opening is April 11th. Further information posted here soon.