Wednesday, September 28, 2011

The Electric Sheep Project: The Collaborative Dreams of Thousands of Computers


What do computers dream about when they sleep? With Electric Sheep, you can view the beautifully rendered collective dreams of thousands of computers. This constantly evolving and changing collection of fractal art is created using the mathematics of the Flame Fractal algorithm and the processing power of an army of client computers worldwide.

Electric Sheep is a distributed computing program for Linux, Mac and Windows (download it here). It was built using the Flame Fractal, created by Scott Draves in 1992 and may be the first example of open source visual art. It uses an algorithm that creates beautiful and ever changing videos rendered by the computing power of nearly a half million idle computers world wide. These videos are displayed as screen savers or stand alone apps on client machines.

The name 'Electric Sheep' is an allusion to the novel "Do Androids Dream of Electric Sheep" by Phillip K. Dicks. The program renders flame fractals, called sheep, which are uploaded to the server, where a 'flock' of about 100 are stored, combined and evolve. These are distributed to client machines and displayed as a screensaver 'dream' when the computer sleeps.

According to 'The Flame Algorithm and its Open Source Culture' by Scott Draves and Isabel Walcott Draves:
"The algorithm treats every pixel as a variable in an equation with thousands of parameters. The parameters specify a collection of functions from the plane to the plane, and the algorithm visualizes the interference pattern between them. This is the origin of the Flame algorithm, a combination of fractals with a particle system [Draves and Reckase 2003]. The results are distinctive, recognizable, and extremely diverse."
Originally only static images were produced, each one taking hours to render. Scott Draves wanted to animate the images but it would require a super computer to accomplish this huge task.

In 1999, taking inspiration from the Seti@Home project, Scott Draves spent a week coding a new distributed computing program. It harnessed the cpu cycles of inactive computers to collectively render and animate portions of these complex visual algorithms, then upload them to the server where they are compiled into stunning animations.

This 'Sheep' lineage shown below left
The flock evolves through voting by users for the best 'sheep' which are 'bred' to produce offspring by combining the fractal codes to produce changes, called mutations. Just as in biological life, these children are each unique creations while retaining some features of the parents. (Unfortunately, the feature to vote on sheep is not available for Linux users.)
Lineage of 'sheep' shown above right
You can browse the Electric Sheep server and view the current 'flock', where you can view family lineages, frame sets, genomes and more.

Electric Sheep uses standard HTTP protocol over Port 80 to download and collaborate on sheep creation. No personal information is shared with the servers. The only data which is sent are your votes (if any) and the rendered frames contributed by your cpu cycles. Security cautious users can monitor the network traffic with the following domain and IP addresses:

74.207.242.239     *.sheepserver.net
207.241.*.*            *.us.archive.org

You can create and submit your own flame fractals (sheep) to the gene pool using Qosmic for Linux. Look for flam3 in the software center or repositories.

Linux users can launch Electric Sheep via the terminal with the command 'electricsheep' or access basic configuration settings by typing 'electricsheep-preferences'. Options  include choosing a nickname for credit on the server, selecting your video driver, setting frame rates and cache size.

Install Electric sheep through your distros Software Manager or by typing the following command  in a terminal.
sudo apt-get install electricsheep

Would you like to help this project? According to this page,  Linux maintainers are needed for patches and bug fixes.  According to this forum posting:
"the main requirements are you be dedicated, trustworthy, and good with programming and linux, including the automake stuff and packaging. most of the work is done in the platform independent code by cd81, so what we need is just someone who will 1) make the fixes discussed here so it compiles and runs cleanly and 2) keep it that way.

please send me email and we'll talk about it. include a link to your home page or resume or something so i know who you are."

What does your computer dream about when it sleeps? With Electric Sheep we can peek into this collective dream, a mathematical formula which produces the vibrant colors and swirling shapes of this ever-evolving and original open source art project.

This article was originally published in UbuntuManual.org on Sept 27, 2011

No comments:

Post a Comment