Empty Apartments: Technical Notes

This month, the curatorial collaborative project Drift Station, which I’m a part of along with Angeles Cossio, released an online project titled Empty Apartments. We pulled nearly 125,000 photographs of apartments and houses for rent on Craigslist that were completely empty because of a removal service, and presented them as an interactive online exhibition. The project took nearly two years of work, and much of it was manual (Angeles triple-checking every single image by hand to remove ones that included common spaces or non-apartments), but we also used several automated processes and machine learning to sort the photos.

Continue reading “Empty Apartments: Technical Notes”

Arranging By Color And Objects With t-SNE

For an upcoming Drift Station project, we’ve been considering how to curatorially sort a massive number of images (about 100k) for presentation. Chronological? Random order? Some other logical scheme? But a more computational approach seemed to make sense: some way of parsing the images that took into account a variety of visual factors in each image, something that would be impossible to do manually.

Neural networks are the obvious answer here, and so I found some very helpful sample code from Gene Kogan and Kyle McDonald, and wrote some Python and Processing code that loads up a folder of images and extracts a vector representation from them. Then, using t-SNE and Rasterfairy, the images were organized into a 2D grid.

I’ve spent the last few days playing with settings in the code, and found there is an interesting balance to be struck between locally preserving color similarity and object similarity. (Note: this post is more of a quick note than a deep-dive analysis.)

Above: a version with blurred images, showing a pretty clear separation by color with fairly smooth transitions. Click on images for a higher-res version. Continue reading “Arranging By Color And Objects With t-SNE”

Every Possible Radio Callsign

KAAA, KAAB, KAAC, KAAD, KAAE, KAAF, KAAG, KAAH, KAAI, KAAJ, KAAK, KAAL, KAAM, KAAN, KAAO, KAAP, KAAQ, KAAR, KAAS, KAAT, KAAU, KAAV, KAAW, KAAX, KAAY, KAAZ, KABA, KABB, KABC, KABD, KABE, KABF, KABG, KABH, KABI, KABJ, KABK, KABL, KABM, KABN, KABO, KABP, KABQ, KABR, KABS, KABT, KABU, KABV, KABW, KABX, KABY, KABZ, KACA, KACB, KACC, KACD, KACE, KACF, KACG, KACH, KACI, KACJ, KACK, KACL, KACM, KACN, KACO, KACP, KACQ, KACR, KACS, KACT, KACU, KACV, KACW, KACX, KACY, KACZ, KADA, KADB, KADC, KADD, KADE, KADF, KADG, KADH, KADI, KADJ, KADK, KADL, KADM, KADN, KADO, KADP, KADQ, KADR, KADS, KADT, KADU, KADV, KADW, KADX, KADY, KADZ, KAEA, KAEB, KAEC, KAED, KAEE, KAEF, KAEG, KAEH, KAEI, KAEJ, KAEK...

Thinking about which callsign to unnoficially assign ourselves for the microbroadcasting project at Drift Station, I thought “how many possible combinations of the four-letter callsign can there be?”  The answer is 17,576 for both east (prefix of W) and west (prefix of K) of the Mississippi; the list was generated using TextMechanic.com’s great tools.

[ download the entire list as a .csv file here or as a text file (can be viewed in your browser) ]

Maxwell’s Demon Game

Screenshots from the games I made yesterday for games++, the 12-hour game jam we hosted at Drift Station.

Inspired by Maxwell’s Demon, a thought-experiment with a box, separated by a wall with a hole in it and one side filled with gas.  The experiment asks the question of why does the gas “know” to go through the other hole and fill the second chamber so that it is dispersed evenly?

Written in Processing, the source code is here.