Public | Automated Build

Last pushed: 2 years ago
Short Description
Somewhere between sculpture, technology, art, motion graphic design and interactivity.
Full Description

##Face the Internet


This project was originally conceived between Florian Hacker and John Pett as an entry to the Google and Barbican DevArt contest. This project has also been contributed to by Ben Harvey and Edu Wass for their lean programming skills!

Here is some imagery from the previous incarnations of this project, outlining the original concept of both online and real-world manifestations.


This project sits somewhere between sculpture, technology, art, motion graphic design and interactivity. An experiment, as much as a learning exercise, to combine the latest technologies for application development with thoughts on contemporary art, computer vision and user interaction.


Before you start you will need the following installed on your machine. Python & :/pkg-config need installing with Brew.

Quick Install

  1. Close this repository in to the desired location on your local machine.

  2. From inside the repository, run $ npm install to get project dependencies.

  3. Once the dependencies have installed, running $ npm start will initiate the server and application and run a development version of the application on htt

Detailed Install


  1. OpenCV needs to be installed on Mac OSX through a package manager. For this we have used Brew, but there are other options available. You can find install instructions for Brew here.

  2. To install OpenCV, once you have Brew, follow these commands: $ brew tap homebrew/science, followed by $ brew install opencv.

  3. Once this is installed, you will need the Node bindings to allow for interfacing with Javascript. There are a few options online, bu this project uses this example. To install the bindings, run $ npm install opencv --save from the root of the project directory. For more information on this, please see Peter Braden's Github repository.

Express + Websockets

To take advantage of real-time face recognition and giving instant feedback to the user, this project uses websockets. provide the solution to client and server interactions, which you can install as an npm-module, you can find further information here.


React is a relatively new tool to help create interfaces in JavaScript. In addition it cares very little about the rest of the of your stack, making it perfect for a project like this.


Flynn is the cluster PaaS that will take care of all the devops for us, we just have to push out app to it.


Fire up a DigitalOcean droplet with Ubuntu 14.04 x64

Digital Ocean

Bash run this script. When it finishes, remember the last 10 lines of output contain some important info:

  1. Copy the $ flynn cluster add ... command
  2. Copy the dashboard URL and login token
Push to Flynn

From your local development machine, go to the folder where you store the face-the-internet repo:

  1. Install the Flynn CLI if you don't have it yet, by using the following command:
    $ L=/usr/local/bin/flynn && curl -sSL -A "uname -sp" | zcat >$L && chmod +x $L

  2. Next, run the command: $ flynn cluster add ... (the exact command is outputted by the setup script in the setup steps). This will associate your local dev machine with your VPS Flynn cluster.

  3. Make sure you have accessed the Flynn dashboard and accepted the certificate.

  4. Now from inside the face-the-internet repo you can $ flynn create APP_NAMEand then $ git push flynn master to send it to Flynn.

Docker Pull Command
Source Repository