Archive of Reddit's r/place

This repository contains an archive of the artwork created by Reddit's r/place between April 1st, 2017 and April 3rd, 2017. The repository contains a binary diff of all the changes (with a resolution of 5 seconds), and a Python script to extract the frames from the diff.

There is an empty canvas.
You may place a tile upon it, but you must wait to place another.
Individually you can create something.
Together you can create something more.

The script is maintained by Pietro Albini and released under the MIT license. Huge thanks to:

Obtaining the images from the diff

The script requires Python 3 and pillow installed. If you use Ubuntu or Debian you can install all the dependencies with this command:

$ sudo apt install python3 python3-pillow

Then, after you cloned the repository, you can use the script to generate the frames you want from the binary diff contained in the repo. Also, a Makefile is provided for the most common operations:

Generate the final artwork:
$ make latest

Generate the history of the canvas with a 5 seconds resolution:
$ make all

Generate the history of the canvas with a 1 hour resolution:
$ make hourly

All the resulting files will be located in the build/ directory. If you need more control over what's built you should use directly the script.

Usage of the script

The script requires the path to the binary diff (which can be either uncompressed or gzipped) as the first argument, and then the action you want to do.

If you only want to get the latest frame, you need to provide the --latest flag:

$ python3 generate.py data/diff.gz --latest

If you want to get an history of the canvas, you can use the --interval SECONDS with the number of seconds between the snapshots:

$ python3 generate.py data/diff.gz --interval 5  # Every 5 seconds
$ python3 generate.py data/diff.gz --interval 100  # Every 10 minutes
$ python3 generate.py data/diff.gz --interval 3600  # Every hour

If you need a snapshot at a specific timestamp instead, you can use the --timestamp TIMESTAMP flag (or multiple ones if you need more timestamps):

$ python3 generate.py data/diff.gz --timestamp 1491001598
$ python3 generate.py data/diff.gz --timestamp 1491001598 --timestamp 1491134887

If you want to get a list of all the available timestamps, you can use the --list-timestamps flag:

$ python3 generate.py data/diff.gz --list-timestamps

Also, the script supports some flags to customize its behavior. If you want the images to be stored in a different directory you can use the --output-dir flag:

$ python3 generate.py data/diff.gz --output-dir result/ --latest

You can also tell the script to output the images in a different format with the --format flag (you can use all the formats supported by pillow):

$ python3 generate.py data/diff.gz --format gif --latest

If you want to limit the area you're interested in, you can use the --area flag, which follows the format x1,y1:x2,y2. For example, to get a 200x200 square of the bottom right corner (The Blue Corner) you can use:

$ python3 generate.py data/diff.gz --area 800,800:999,999 --latest

There is also the --pixel-size flag to generate an higher resolution image. For example, if you want to double the resolution you can use:

$ python3 generate.py data/diff.gz --pixel-size 2 --latest