The Great Brain

An experimental simulation of the brain as a simple process of remote node communication

Watch Now

What is it?

The Great Brain is a database-less and authentication-free project that sends and receives boolean data between remote servers. Each remote server the brain connects to is considered a 'node', which responds with one of the following: text, an image, audio or a video.

In this basic format, the key is to keep the code as minimal as possible and vary the HTML content response as much as possible.

How can I contribute?

Feel free to fork any of our sample nodes below and replace with your respective content. The sample nodes are all developed in Sinatra, Haml and Sass. Once you are happy with your node, deploy to a server where we can access the site. An easy place to deploy to is Heroku.

Contribution Requirements

You can create a node in any language that you want and host on any server that we can access. The only requirements we need are two API JSONP (GET) calls - one returning HTML and the other returning a 0 or 1. The API specifics are outlined below:

  1. one API call at "/generate?callback=?" that returns in the following JSON response:
    {
      "result": "<img src='http://myawesomenode.com/images/somethingcrazy.gif' />"
    }
    
  2. one API call at "/pong?callback=?" that returns JSON as either 0 or 1. Randomization of these two values is ideal, but it is up to you to decide how you want to determine the response value. The format should be as follows:
    {
      "result": 0
    }
    
    

After you create the node, the easiest way to let us know is to create a public repository on Github, fork The Great Brain and send a pull request to add your node to our main node list.

Currently we will support any HTML tags, except <script> and <style>. Our whitelist of attributes currently include 'src', 'autoplay' and 'style'. If your node is found to be problematic (e.g. you're attempting to do bad things or the server is down), we will remove it from the master list until it is fixed.

Technical Notes

This currently works best with the latest version of Firefox.

Github Repositories