Crowdsourced Art

(Originally published September 19, 2009; Updated on September 16, 2013)

Inspired by this guy I thought of something that might be fun to do: have the community generate a small image collaboratively by allowing everyone to paint a small part of it. In a way, I wanted to crowdsource the generation of a computer graphic. This became my miniproject for the past weekend, and also a good way to announce the Grand Opening of this site (until now nobody really knew about it).

The idea is quite simple: consider a 67×67 pixel image. It’s pretty small, but sufficient to capture quite a lot of detail, e.g.

A lot of detail can fit in a 67x67 image

A lot of detail can fit in a 67x67 image

The image starts fully transparent. I then give away tokens to people I know; each token gives the owner the right to put a small number of pixels (say, 15) on the image. Everyone is free to pick what colors each of the pixels should be, and which pixels to set. If I give away enough tokens, and if people want to participate, interesting results can be generated (all without my involvement at all!)

I’m going to make this a little more fun by introducing two rules:

  1. You can "draw" over other people's pixels but that’s going to cost you more (2 pixels instead of 1) — this is to imitate what artists do, often painting over sections of their image multiple times
  2. You are rewarded for collaborating with others. If two people get together, they can "merge" two tokens into one, and, just like a two-liter Cola costs a little less than two one-liter Colas, such combined token allows you to draw more pixels than what the original tokens allowed. (Similarly, splitting a token into two pieces is allowed, but the resulting two pixel “allowances” will add up to a little less than the original).

The second rule is, in my view, particularly interesting and I expect some fascinating results. Since one person needs both tokens to get the combined one, you must trust whomever you're giving your token to. You can, of course, just give up your rights to drawing pixels and give your token to somebody else. Perhaps you can work out some kind of deal with your friend (I don’t know how much a pixel is "worth"; the whole idea is to encourage collaborative creativity and not make somebody money but, as I said, I don’t want to control what will happen).

The first rule is interesting, too, as the image fills up and people decide to paint over other people’s work. Perhaps there are parts of the image that don't fit aesthetically with the rest. It could get personal! Or, the canvas is full but people still have tokens left.

To make it a fun and lasting exercise I'll be giving tokens to people going forward (not just in the initial batch), perhaps for commenting on this blog? (ah yes, brownie points for participation...)

You can check out the work in progress here. I tested the site with Chrome, Firefox and Safari on the Mac, and I'm pretty sure that Windows and various flavors of Linux work as well. If not, let me know, or better still, submit a patch.

If I haven't sent you an email with a token, let me know and I'll throw something in.


(Update: September 24, 2009)

The work so far is fun to look at; undisputedly predictable was the penis that found its way on the canvas a few hours after the game started, but there have been efforts to turn it into a happy face (I must admit, I was tempted to use up some of my tokens but in the end I decided this piece of art is a no judgment art and anything goes).

An interesting pattern was that people used the background image and the fact that the canvas was translucent to trace elements of the image onto the canvas. I did not expect that, but I guess that's an as good place to start as any.

Finally, people are not taking advantage of the collaboration element of the game. I'll let you in on a secret: the "bonus" you get for merging tokens is actually pretty substantial. In fact, the number of pixels you can set is equal to the "size" of the token (the first three digits) raised to the power 1.25. This may not seem much, but consider merging two tokens, each of "size" 10. Each individual token allows you to set 101.25 = 18 pixels, so in total both tokens let you set 36 pixels. If you merge the tokens, you will get one token of size 20 and 201.25 = 42 (you've just gained 6 pixels). The differences are even larger for larger tokens (or more tokens). Two tokens of size 20 give you 84 pixels when separate and 101 when merged. You get the idea.


(Update: September 16, 2013)

The first iteration of this project yielded the following image:

The result from the first, 2009 experiment

The result from the first, 2009 experiment

I'm running another iteration, this time opening it up to a much larger community (400+ people) and letting anyone mine for tokens (so long as they stay on the website for long enough). I updated the code a little, taking advantage of canvas rather than doing all graphics on the backend, which used to make for a poor user experience.

I also allow people to mine for tokens, so long as they stay on the page. The idea is similar to bitcoin mining, where the server sends a challenge hash and the client must find a value that hashes to the challenge. In this case, the client is the browser. I set the challenge up so that in 30 minutes, you are 50% likely to find one pixel-worth of a token. Assuming you find the token, the expected amount of time to wait until you mine it is 15 minutes.

See Also

  • Source code (but you won't be able to use it to get free tokens!)