The Golem@Home Project
Automatic Design and Manufacture of Robotic Lifeforms
by Hod Lipson and Jordan B. Pollack

TECHNICAL SUPPORT

Technical Support

Check the sections below for answers to commonly asked questions.
If you need additional support eMail Hod Lipson at lipson@cs.brandeis.edu

Installation

  • How do I install Golem?
  • Can I run Golem@Home not as a a screen saver?
  • Is there an uninstall program?
  • Are there security/privacy issues?
  • Creatures/Evolution

  • What is a predecessor?
  • When do creatures migrate?
  • When/how should I e-mail you a creature?
  • How can I make pictures and movies of robots I evolved?
  • How can I get a physical instance of my creature?
  • What do the colors mean?
  • What about other environments, like sand, mud, water? Sensors? What about food and energy? Robots fighting and competing? What features are you planning to add?
  • What is the difference between ".evo" and ".ltf" files?
  • I want to generate my own landscape.
  • In LiveTruss, how can I quit and afterwards continue evolving the same population?
  • My computer crashed while running LiveTruss. Is all the evolution data lost?
  • How can I track the evolutionary process?
  • What is considered a good fitness?
  • How long should it take to evolve something interesting?
  • I've been running Golem for some time but it does not seem to be making any progress. All I can see are bars with fitness zero.
  • When LiveTruss is evolving, I see nothing much on the screen.
  • FAQ

  • What is the status and history of this project?
  • Is this project like SETI@Home?
  • Is there going to be a Linux/Mac/Other version
  • Can I get the source code for this software?
  • How was Golem@Home written?
  • What communication ports is Golem using?
  • My computer has dual CPU. Does the program make use of it?
  • Is there a mailing list?
  • Troubleshooting

     

     

    How do I install Golem?
    Click on "Download & Setup" from the above selections. Scroll down the page until you see the text "To Download." Click where it says "click here" and the installer will download to your computer. All you need to do now is find the file you downloaded and then double click it to install.

     

    Can I run Golem@Home not as a a screen saver?

    Golem is only intended for use as a screen saver. We do not yet have a version that runs "in the background". We might develop one later.

     

    Is there an uninstall program?
    Yes, look under start/settings/control-panel/add-remove-programs, and select "Golem".

     

    Are there security/privacy issues?

    We tried very hard to maintain security and privacy. Here are the key points:

    • Privacy: Only data about Golem robots is transferred among screensavers and with the central Golem server. This data contains a description of the robot geometry and control, and the e-mail and contact information you entered about yourself during installation or later in the property sheets. If you consider this information private, you should leave these fields blank or enter false information. The program does not access files or data besides that associated with the Golems.
    • Security and viruses. The program only transfers data, not executables. It downloads a version update only from the central server at Brandeis University. This is hard coded and cannot be changed through communication. Never download a Golem program from any other source than the Brandeis DEMO Lab (brandeis.edu).
    • Both these communications (migration and version update) can be turned off in your settings.

     

    What is a predecessor?

    A predecessor is a Golem that has had other Golems evolved from it. The children of the predecessor will have the characteristics of the predecessor Golem plus mutation. While a Golem is evaluated the fitness of its predecessor is shown because the fitness of the current Golem is not yet known.

     

    When do creatures migrate?

    Once in a while (say, once in one or two weeks), the computer will randomly select 1-3 creatures out of its population and migrate them to another screensaver with which it has established connections. Any creature out of the current population might be selected. The migrating creatures will leave copies of themselves on the source machine, and will replace randomly chosen individuals on the target machines. You cannot influence this migration process, but it will not occur if either the source or target populations are very young (less than 72 CPU hours old).

     

    When/how should I e-mail you a creature?
    E-mail us a creature when it is interesting: This can be either that it has a particularly high fitness (say, above 1.0, and you haven't sent anything like it before), or when it locomotes in an interesting way, for example if it lifts itself off the ground as in bipedal or quadrapedal locomotion. Don't send us those that look like they're moving "illegally" (e.g. sliding on the floor). When you find one, flip through the population and use "Save Individual" to generate an "ltf" file. See the HALL OF FAME for what to send in an eMail.

     

    How can I make pictures and movies of robots I evolve?

    For an image, orient the creature so that it looks nice on the screen. Use view/snapshot to copy the picture to the clipboard, and you can then paste it into any other program like MS-Word or Adobe Photoshop.

    To make a movie, resize the window until it is small (or else your video file will be huge). Orient the creature so that it looks nice on the screen. Simulate it once (ctrl-s) to see how it moves. Then select view/start-recording and select some format that has compression (like Cinepack by Radius). Now press ctrl-s to simulate again. Every frame is recorded, and a beep made, so things might be a bit slow. You can zoom in or out or change the viewpoint while the movie is being recorded. You can halt the simulation early by pressing Escape. When you are done, select "Stop Recording". The video will be called "LiveTruss.avi".

    If you post the image or movie on the web or publish it anywhere, please acknowledge our project and give a link to it.

     

    How can I get a physical instance of my creature?
    The current version does not generate physical machines. If you want one, you can send us the file and we might generate the STL file for you. If you have a rapid-prototyping machines, you can use the STL file to print your own robots. You can also download the STL file for some of the exiting robots. If you don't have your own 3D printer, and you are very rich, you might ask a rapid prototyping service bureau to print the STL file for you (~$1500). In any case, you will have to decide if you want a static machine, a machine that has the degrees of freedom but no actuators, or one with accommodations for real actuators.

     

    What do the colors mean?

    The color have no functionality, but they are inherited from parent to child. So if two creatures have similar body parts with similar colors, it is likely they are descendants of a common ancestor - the more similar they look, the more recent that ancestor.

     

    What about other environments, like sand, mud, water? Sensors? What about food and energy? Robots fighting and competing? What features are you planning to add?
    Generally, we will add more complexity to the substrate and environment. But we want to keep things simple so that we might understand why and how things happen. In particular, we are working on interaction between robots because we believe that is key in obtaining complexity.

     

    What is the difference between ".evo" and ".ltf" files?
    An individual creature is stored in an ".ltf" file (stand fore Life Truss File). An entire population of robots are stored in an ".evo" file. You can load a population through the population/load command.

     

    I want to generate my own landscape.
    You can generate your own landscape by generating a binary STL file containing the tessellation of the terrain. To generate an STL file, use any CAD package, or generate the file directly according to the format specifications. Then, import the STL file as the landscape. Alternatively, you can generate a terrain by importing an image (then the height of the terrain will be proportionate to the intensity of the image), or import a text file where each line contains three points (nine coordinates) of a triangular facet of the mesh.

     

    In LiveTruss, how can I quit and afterwards continue evolving the same population?
    You need to save the population using population/save. This creates an "evo" file. Next time, load the population using population/load, and select "continue evolving".

     

    My computer crashed while running LiveTruss. Is all the evolution data lost?
    No, LiveTruss creates checkpoint files according to the date, every half hour or so. You can load that checkpoint file (they come in pairs; chose the most recent one).

     

    How can I track the evolutionary process?
    You can use LiveTruss to load the ".evo" file, then select commands under evolve/population or evolve/history to get some idea of what went on.

     

    What is considered a good fitness?
    A good fitness is around 1.0 or higher.

     

    How long should it take to evolve something interesting?
    Anything between a few hours to a few days. Depends on speed of your processors and luck.

     

    I've been running Golem for some time but it does not seem to be making any progress. All I can see are bars with fitness zero.
    Be patient, or try resetting the population. That helps sometimes.

     

    When LiveTruss is evolving, I see nothing much on the screen.
    LiveTruss does not waste CPU on animation, but Golem does. To view the creatures, stop the evolution and flip through the population.

     

    What is the status and history of this project?

    The Golem@Home project is new (started in the summer of 2000), and still under development. We are working to improve the process, make it more reliable, solve bugs, and address the incoming flux of feature wish lists. In particular, we're trying to understand the dynamics of the computation. Please bear with us and check for new revisions.

    Right now we have over 15,000 clients and over 900 active servers worldwide. The servers are screensavers themselves, so they are not always active.

     

    Is this project like SETI@Home?

    The Golem@Home project is similar to Berkeley's SETI@Home (search for extraterrestrial life) in that it harnesses idle CPU across the Internet to perform massively distributed computation using screen savers. In an interesting way, both projects are searching for other forms of life - one in outer space and the other in the virtual world ("Artificial Life").

    But the two projects differ in architecture: While SETI has a centralized server that distributes raw data to clients and collects processed data, the Golem project is decentralized. It models isolated pools of evolution with sparse interaction. Once you start running the screen-saver, it needs no data - its starts from scratch. It will contact the main Golem server only to get a few IP addresses of other screensaver, and then will communicate with them directly and sparsely (say, once in a week or two) to allow single creatures to migrate. It will gradually learn about other servers available and determine which of them are close and reliable. So it is not important if your Golem screensaver cannot establish contact right away, or even if it rarely is online. It only needs occasional access, and will hardly ever contact the central Golem server after the first time.

    The central Golem server does not collect results. We rely on the fact that 'good' creatures will survive long enough that they will eventually reach us by migration. But still, if you notice an exceptionally interesting creature, we ask that you let us know.


    Is there a Golem@Home for Mac or Linux?
    No. Currently there is only the version for Windows 95, 98 and NT.

     

    Can I get the source code for this software?
    We are not currently releasing source code for this project; we might consider doing so only for research collaboration with other academic institutes.

     

    How was Golem@Home written?
    Golem@Home was written in Microsoft Visual C++ using OpenGL, Microsoft Foundation Classes (MFC) and WinSock for communications.

     

    What communication ports is Golem using?
    Golem uses ports 23049 and 23051.

     

    My computer has dual CPU. Does the program make use of it?
    LiveTruss does make use of multiple processors, but the current version of Golem does not.

     

    Is there a mailing list?
    Yes, if you haven't done so already, please join our mailing list.


    I can't find the help file.
    There is no help file yet, but check for updates soon, and read through this faq.

     

    I can't record a movie.
    This feature should be available in the next release.

    I'm working behind a Firewall/Proxy and my Golem can't connect to the main server.
    We are working on a solution for proxies and firewalls. But as mentioned above, it is not immediately critical that your screensaver is able to communicate with the central server or anybody else around the world. You might want to use the advanced settings to key in IP addresses of some other Golems on your local area network, so that they can join forces. When we release a proxy/firewall version, then your creatures will also be able to migrate out to the world.


    I am getting "Server connected but connection refused". What does this mean?
    It might be that there is a lot of web traffic, that there is some proxy/firewall problem or some other bug. As mentioned above, it is not immediately critical that you establish contact. Golem will automatically try again later, but check out for new revisions anyway.

     

    LiveTruss slows down any other program I'm using.
    LiveTruss, the standalone version of the Golem, is not intended to run "in the background". You might use it to examine populations evolved by the screensaver, or just to replicate results we showed in the paper.

     

    The program complains it can't find OpenGL32.dll / Wininet32.dll

    Try downloading these libraries from Microsoft.com. Best to just to do a "Windows Update" from http://windowsupdate.microsoft.com/. You might also need to update your SHLWAPI.DLL, but windows update should take care of all of that. If you are running Win95/OSR1, you can get the OpenGL file for that version from Microsoft, at
    ftp://ftp.microsoft.com/Softlib/MSLFILES/Opengl95.exe

     

    The program complains it can't find InternetAutoDial or other entry point.

    Try downloading an updated version of Wininet32.dll for your operating system. Best to just to do a "Windows Update" from http://windowsupdate.microsoft.com/. You might also need to update your SHLWAPI.DLL, but windows update should take care of all of that.

     

    The program crashed when...
    Check for new releases that might contain fixes. Also, you might try installing on another machine just to make sure its not some particular feature of your computer. Explain details and circumstances; in particular, under what circumstances can you repeat the crash? We have seen some problems with particular hardware configuration or locally adapted windows versions.

     

    How can I get additional support?
    Feel free to eMail Zach Rosen at zeke187@cs.brandeis.edu with any further questions you might have.