Facecoin In More Detail

Facecoin is Bitcoin with a different Proof Of Work system. I’ll try to
explain what this means here but I also recommend the following articles
about Bitcoin and its protocol:

http://www.economist.com/blogs/economist-explains/2013/04/economist-explains-how-does-bitcoin-work

http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/

Proof of Work

Whenever a computer in the bitcoin network wants to record transactions,
it must perform a simple but unguessable and time-consuming calculation
then send the results to other machines on the network to verify. It is
therefore computationally (and monetarily) expensive to record a
transaction if you are not actually performing one. This discourages
abuse of the Bitcoin network.

This calculation and its output are the “proof of work”, they prove that
the computer’s user has been willing to do some work and expend some
resources in order to prove their good faith:

http://en.wikipedia.org/wiki/Proof-of-work_system

In Bitcoin, an algorithm called SHA-256 is applied to the transaction’s
data. Give SHA-256 any data and it will output a string of characters
that cannot be used to recreate the original data but that will always
be the same for the same data. They are a kind of identity for data:

http://en.wikipedia.org/wiki/Cryptographic_hash_function

For example, on the UNIX command line:

$ echo annie | sha256sum
7eb9d8162722f815b8aeb728d4112d24c2a2ea821fc0af7286bddab0df79baa9 -

$ echo michael | sha256sum
bb472c3cc2b662a74956c8539fec9fe73f2b8a9f9124506aa0474698b3bac62d -

$ echo rob | sha256sum
30d71981944699f23038164f4eb8189950b4dcf9b39ea2c1ecbda13aea8b7d4a -

$ echo rob | sha256sum
30d71981944699f23038164f4eb8189950b4dcf9b39ea2c1ecbda13aea8b7d4a -

Bitcoin uses SHA-256 to repeatedly make such an identity string for the
transaction data and a number that it increases by one each try called
the “nonce”. Eventually, and there’s no way of predicting precisely when
but it should take about ten minutes, the output string will start with
several zeroes. When it does, Bitcoin uses that as the proof of work for
the transaction:

https://en.bitcoin.it/wiki/Proof_of_work

Machine Pareidolia

Pareidolia is when we mistakenly see faces in clouds, or electrical
sockets, or in photographs from space probes:

http://en.wikipedia.org/wiki/Pareidolia

Machine pareidolia is when a face detection algorithm gives a false
positive, locating a face in an image when there isn’t one:

http://urbanhonking.com/ideasfordozens/2012/01/14/machine-pareidolia-hello-little-fella-meets-facetracker/

There’s been some nice art made using this:

http://www.di12.rca.ac.uk/projects/pareidolic-robot/

Not every image can be mistaken for a face by a face detection
algorithm, in particular finding a face in a series of randomly
generated pixel images takes some time.

The amount of work required to do so will be greater than nothing, and
cannot be guessed precisely. We can therefore use machine pareidolia
with random images as proof of work.

Facecoin

Facecoin replaces Bitcoin’s search for leading zeros with a machine
pareidolia search for faces.

SHA-256 output is used as an 8×8 256-level greyscale pixel map, and a
face recognition algorithm is used to try to find one or more faces in
it. If no faces are found, the nonce is increased and another attempt to
find a face is made. This can take from one to several hundred tries.

When a face is found, the nonce and the face bounding rectangle are
recorded so the proof of work can be validated.

Why?

Bitcoin is a very interesting development in cyberculture. It’s a
repository for the hopes and fears of various ideologies, and a frontier
or dark space for the imagination and social or economic activity in a
90s Internet way. Its protocol is a communication model of existence,
identity, community and proof, with a CCRU-ish market worship at its
base. Because of all of this I think it’s worthy of and desperately
needs artistic investigation.

Artworks are proofs of aesthetic work, used as unique value identities
both in the market (art is used as an investment, signifier of status,
and symbolic resolution of lacks in free market ideology by oil
oligarchs and trust fund managers) and by organized crime (stolen art is
used as a medium of exchange by criminal gangs).

If Facecoin was widely adopted these two value identity systems would be
trivially but critically mapped onto each other by millions of machines
cranking out imaginary portraits across the network as part of a
financial network, and vice versa.

Facecoin

facecoin
Facecoin, 2014, HTML5 and JavaScript.

http://robmyers.wpengine.com/facecoin/

Click here to run a visualization in your web browser.

Cryptocurrencies such as Bitcoin use a “proof of work” system to prevent abuse.

Artworks are proofs of aesthetic work.

Facecoin uses machine pareidolia as its proof of work. This is implemented by applying CCV’s JavaScript face detection algorithm to SHA-256 digests represented as greyscale pixel maps. An industrial-strength version would use OpenCV. Due to the limitations of face detection as implemented by these libraries, the digest pixel map is upscaled and blurred to produce images of the size and kind that they can find faces in.

The difficulty can be varied by altering the size and blur of the pixmap. Or by only allowing particular detected face bounds rectangles to be used a set number of times.

Working on Facecoin

facecoin1

Facecoin is an aesthetics-based cryptocurrency. It uses a face recognition algorithm on the output of its cryptographic hashing represented as a bitmap as its proof of work. Animated demo to follow.

Exploring Art Data: My _MON3Y AS AN 3RRROR | MON3Y.US Review

Reviewing almost 70 artworks quickly and in depth is a challenge. With _MON3Y AS AN 3RRROR | MON3Y.US, I chose the approach of describing each artwork’s notable features and then pulling out themes and commonalities at the end. Halfway through I realised that by changing each description into a standard format, I could write code to parse the descriptions and analyse them to help me find those themes and commonalities. So I did. The code is in R and it’s available here:

https://gitorious.org/robmyers/art-review-scripts/

The code loads various modules, parses the file and constructs a corpus and matrix from the words in each review. It then outputs various statistics and graphs regarding them.

First up, which terms do I use most frequently, ten or more times:

 [1] "animated" "bill"     "dollar"   "euro"     "glitched" "image"   
 [7] "mapped"   "show"     "texture"  "video"

The most popular subjects are dollar and Euro bills. Art about them shows something about them. It does so using video, animations (whether video, Flash, or HTML5), images, glitch and texture mapping.

Terms I use five or more times:

 [1] "aesthetic"  "animated"   "art"        "background" "banknotes" 
 [6] "bill"       "collage"    "colour"     "dollar"     "economic"  
[11] "euro"       "flag"       "gif"        "glitched"   "graphic"   
[16] "hundred"    "image"      "loop"       "makes"      "mapped"    
[21] "money"      "note"       "piece"      "rendering"  "show"      
[26] "texture"    "video"      "words"

Flags and words join the subjects, hundred unit notes are the most popular, looped animated GIFs, collages and graphics join the forms and figure/ground relations are there with mention of “background”.

Finally let’s look at words I use three or more times:

 [1] "abstract"    "aesthetic"   "album"       "allow"       "american"   
 [6] "animated"    "apparently"  "application" "art"         "background" 
[11] "banknotes"   "bill"        "black"       "blue"        "changing"   
[16] "classic"     "collage"     "colour"      "composite"   "depicted"   
[21] "direct"      "dollar"      "economic"    "effective"   "euro"       
[26] "facebook"    "flag"        "flickering"  "frame"       "gif"        
[31] "glitched"    "google"      "graphic"     "grid"        "html5"      
[36] "hundred"     "image"       "landscape"   "like"        "link"       
[41] "loop"        "love"        "makes"       "mapped"      "million"    
[46] "money"       "monochrome"  "morphing"    "new"         "note"       
[51] "one"         "page"        "patterns"    "piece"       "pixelart"   
[56] "playing"     "polygons"    "possibly"    "price"       "rendering"  
[61] "screen"      "show"        "signs"       "sites"       "stack"      
[66] "style"       "texture"     "time"        "use"         "video"      
[71] "virtual"     "web"         "white"       "words"       "work"       
[76] "yellow"      "zoomed"

No surprises there, except possibly “love”. The code will confuse “Euro” and “European”, so that’s why the US is mentioned but not Europe. Facebook and Google add corporations to the subjects. Colours are added to the formal properties: yellow, blue, white, black. Landscape joins the subjects. And works play, are direct, are classic, have style, an aesthetic, a price, are new. And I weasel about them with “possibly”.

Next lets look at the associations between words. First some obvious ones.

Money:

google           love          1990s            age        ambient 
  0.65           0.59           0.43           0.43           0.43

Art:

corrupted     miscoloured         nothing          purest            rows 
     0.75            0.75            0.75            0.75            0.75 
   street            look            much           piece         classic 
     0.75            0.52            0.52            0.48            0.41 

Net:

carefully    contract   described        form        sale    specific 
     1.00        1.00        1.00        1.00        1.00        1.00 
  another application       price       piece         art 
     0.70        0.49        0.44        0.43        0.36

The corruption found in association with art here is aesthetic, thanks to glitch art.

The word cloud in the next section has some stand-out words. We can look at their associations as well to follow suggestions from within the data.

Dollar:

bill                         1950s 
0.87                          0.33

Video:

vimeo     amateur      batter       beach     clipart   commodity 
 0.40        0.39        0.39        0.39        0.39        0.39

Bill:

dollar                         1950s 
  0.87                          0.38

Videos are mostly on Vimeo. Dollar and bill occur together so there’s no surprises there.

Word clouds are a good way of quickly visualising word frequency. Here’s one of the words in the reviews:

wordcloud

Using the code from my old posts on Vasari’s Lives and on art bloggers we can find the most similar reviews:

Dominik Podsiadly :  JUST DO IT, Jefta Hoekendijk 

Maximilian Roganov :  Jasper Elings, Jefta Hoekendijk, Keigo Hara, Alfredo Salazar Caro | TMVRTX, Mathieu St-Pierre 

JUST DO IT :  Jefta Hoekendijk, Dominik Podsiadly, Lars Hulst 

Mitch Posada :  Dafna Ganani 

Lorna Mills & Yoshi Sodeoka :  Jennifer Chan 
Jasper Elings :  Maximilian Roganov, Curt Cloninger, Adam Braffman, Δεριζαματζορ Προμπλεμ Ιναυστραλια 

Alfredo Salazar Caro | TMVRTX :  Nick Briz, Maximilian Roganov 

Dafna Ganani :  Mitch Posada 

Jennifer Chan :  Lorna Mills & Yoshi Sodeoka 

Jefta Hoekendijk :  JUST DO IT, Maximilian Roganov, Lars Hulst, Dominik Podsiadly 

Keigo Hara :  Maximilian Roganov, Nick Briz 

Ellectra Radikal :  Lars Hulst 

A Bill Miller :  Mathieu St-Pierre 

Nicolas Sassoon :  Lars Hulst 

Curt Cloninger :  Jasper Elings, Nick Briz 
Δεριζαματζορ Προμπλεμ Ιναυστραλια :  Jasper Elings 
Lars Hulst :  Ellectra Radikal, JUST DO IT, Jefta Hoekendijk, Nicolas Sassoon 

Nick Briz :  Alfredo Salazar Caro | TMVRTX, Keigo Hara, Curt Cloninger 

Adam Braffman :  Jasper Elings 

Rollin Leonard :  Maximilian Roganov 

Mathieu St-Pierre :  A Bill Miller, José Irion Neto, Maximilian Roganov 

José Irion Neto :  Mathieu St-Pierre 

Do those make sense to look at the art?

The clustering code from the same old posts produces different groupings:

Cluster 1 : Robert B. Lisek, Geraldine Juarez 

Cluster 2 : Mitch Posada, Nick Kegeyan, Dafna Ganani, Marco Cadioli, Andrey Keske, Guayayo Coco 

Cluster 3 : Rafaël Rozendaal, Adam Ferriss, Aaron Koblin + Takashi Kawashima, Maximilian Roganov, Fabien Zocco, Jasper Elings, Alfredo Salazar Caro | TMVRTX, Anthony Antonellis, Haydi Roket, Keigo Hara, A Bill Miller, Benjamin Berg, Δεριζαματζορ Προμπλεμ Ιναυστραλια, Nick Briz, Vince Mckelvie, Adam Braffman, Rollin Leonard, Mathieu St-Pierre 

Cluster 4 : Dominik Podsiadly, Thomas Cheneseau 

Cluster 5 : Ciro Múseres 

Cluster 6 : Curt Cloninger 

Cluster 7 : Miron Tee, Jan Robert Leegte, Paul Hertz, Jon Cates, León David Cobo, Kamilia Kard 

Cluster 8 : Nuria Güell, Paolo Cirio, Filipe Matos, Agente Doble | UAFC, JUST DO IT, Gustavo Romano, Tom Galle, Cesar Escudero, Jefta Hoekendijk, Gusti Fink, Ellectra Radikal, Aoto Oouchi, Kim Laughton, Martin Kohout, Marc Stumpel, LaTurbo Avedon, Nicolas Sassoon, Erica Lapadat-Janzen, Milos Rajkovic, Rozita Fogelman, Lars Hulst, Yemima Fink, José Irion Neto 

Cluster 9 : Emilio Vavarella 

Cluster 10 : Dave Greber, Lorna Mills & Yoshi Sodeoka, Jennifer Chan, Frère Reinert, V5MT, Addie Wagenknecht, Systaime, Émilie Brout & Maxime Marion, Georges Jacotey

I chose ten clusters arbitrarily. There’s some overlap looking at the two techniques.

I wanted to try out Topic Modelling on the data but an algorithm for choosing the optimal number of topics simply returned the same number as there are documents. So I tried 8, 12 and 20.

12 gave “nice” results:

     Topic 1    Topic 2       Topic 3    Topic 4      Topic 5        
[1,] "video"    "mapped"      "price"    "bill"       "animated"     
[2,] "bill"     "dollar"      "changing" "dollar"     "architectural"
[3,] "dollar"   "texture"     "image"    "love"       "euro"         
[4,] "direct"   "bill"        "show"     "artist"     "glitched"     
[5,] "facebook" "virtual"     "allow"    "google"     "graphic"      
[6,] "faster"   "polygons"    "also"     "money"      "money"        
[7,] "page"     "constituent" "analysis" "monochrome" "zoomed"       
[8,] "abstract" "exploding"   "another"  "pixelart"   "1990s"        
     Topic 6      Topic 7           Topic 8       Topic 9    Topic 10  
[1,] "graphic"    "labels"          "dollar"      "dollar"   "texture" 
[2,] "abstract"   "landscape"       "glitched"    "euro"     "blank"   
[3,] "aesthetic"  "album"           "bill"        "note"     "blue"    
[4,] "album"      "animated"        "video"       "animated" "classic" 
[5,] "apparently" "appears"         "aesthetic"   "bill"     "economic"
[6,] "banknotes"  "art"             "application" "image"    "essay"   
[7,] "european"   "banknotecollage" "colour"      "loop"     "euro"    
[8,] "flag"       "banknotes"       "economic"    "american" "show"    
     Topic 11     Topic 12  
[1,] "bill"       "art"     
[2,] "dollar"     "bill"    
[3,] "video"      "depicted"
[4,] "background" "dollar"  
[5,] "flag"       "labour"  
[6,] "loop"       "video"   
[7,] "reactive"   "words"   
[8,] "roughly"    "1950s"   

The topics are clearer with more words, these are just the first few for each one. I think this is the closest to what I want in terms of discovering what I have written about, although as I say the choice is arbitrary (or at least aesthetic rather than statistical).

Using more code from the Vasari/bloggers posts, we can plot the associations between words:

plot

Changing the parameters and outputting to PDF creates a more detailed and readable graph. It’s fun and inbetween topic modelling and frequency counts for usefulness.

Finally let’s see how I feel about the art with sentiment analysis:

neutral positive 
     66        3 

I do try to find the positive in artworks but there was one that gave me an immediate and visceral negative reaction in the show (you can spot it if you look hard at the reviews). I’m surprised that there are fewer that count as positive. I “love” one of the pieces. Is it in the positive list?

[1] "Martin Kohout" "Marc Stumpel"  "Ciro Múseres"

It’s not. But one of the ones listed does mention “love”, so I don’t know what’s happened there. Sentiment analysis has improved greatly over the last few years, but apparently not in the library I was using.

If I was going to use these techniques to help review art I’d write longer “bag of word” descriptions for each artwork, with fragments of text and individual words acting almost as tags or streams of consciousness, and I would then use topic modeling and clustering to help pull out themes. I’d prefer to use an algorithm to choose the number of topics, as I feel this is more intellectually defensible, but I like the results enough to use it without. I’m disappointed by the performance of the sentiment analysis library I used, next time I’ll try a different one.

Will there be a next time? Yes, the next time I’m reviewing a group show with more than a few artists. Producing this report has been labour intensive, but I’ve a libary of code now and a better understanding of the issues. And I can automate report construction and revision using Knitr, which would allow me to mix Markdown text and R code without hacing to copy and reformat output.

Work In Progress: Tate Collection Data Movements

Here’s a sneak peek at one of the visualizations from my analysis of the Tate Collection data. It’s a graph of Movements linked by their artists:

tate-movements-sna-preview

More to come soon…