Ape At Home

This document is a rough outline of some ideas I have been working through from the announcement of the launch of;


As the project is still in its formative phase, I thought it would be useful to provide some initial feedback early.

Noble Ape Simulation 101


The Noble Ape Simulation has been developed since 1996. From the start the Noble Ape Simulation has been open source. The ALife purposes of the Simulation were twofold initially;

  • create and simulate a large scale biological environment, and,
  • create and simulate various cognitive process models on the created biological environments inhabitants - the Noble Apes.

    From this initial Simulation idea, I have a number of additional ALife interest that the Simulation has included;

  • issues of genetic evolution and the property effects of genetics in the cognitive aspects of the Simulation,
  • the changes in the Noble Apes from different environments - is there a correlation (harsh environment, craftier Noble Ape?) - and,
  • how scripting in both realtime (ape script) and non-realtime (god script) can change and improve the Simulation.

    Not to mention, a passing interest in threading methods and vector processing in the Simulation. Both of these technologies were integrated with some solid assistance from engineers at Apple although both ideas are fundamentally platform independent.

    From this, peer-to-peer was the next logical step. A number of people with the same simulation environment and each machine ''hosting'' one to five Noble Apes makes a lot of sense.

    Each version release of the Simulation gets roughly 4,000 Mac user downloads and probably a similar number of Windows user downloads. Putting these folks together over a peer-to-peer network creates an instant community - great feedback and a lot of fun.

    Porting Issues: Biota at Home

    What is It?

    From what I have read so far and through independent thinking on the issue, I see Biota@Home as a peer-to-peer server specifically catering to the needs of ALife developers.

    Basic API Needs

    With that remit, the minimum I need to link to Biota@Home is a basic API that will allow the Noble Ape Simulation to ping the Biota@Home servers and say, ''This is my IP address and port number!'' and also get some number of currently online folks' IP address and port number.

    From this, the Noble Ape Simulation will start testing for peer to peer connections. Ideally also the Noble Ape Simulation will transmit information like ''dial up connection'' or 2 apes maximum etc.

    In a competitive environment, perhaps Biota@Home will check other things and require additional feedback. I'm not fussed on this, provided it is relatively simple.

    Security - (ie Encryption)

    My main concern with getting user IP/port numbers is security. My thought was a time locked password with a time bolus generated on the Biota@Home server with some hash validity check on the time information.

    Ideally I would like the information bolus coming back from my ping to be HTML downloadable. I'm not really clear in the format of this yet.

    There needs to be some encryption which won't be released open source or that requires sufficient passkey priming that it is useless open source. I don't want something that is easily hackable by a third party to get through my users' firewalls etc.

    Keep It Simple

    Noble Ape is written in C. I have kept everything small so it is a no-brainer to download and easy to share via email etc. The current application is around 40k with a manual it is about 100k archived.

    I don't want a huge standardised encryption and protocol overhead. I don't want a huge object oriented overhead or it will only work in Java etc. I need something simple both with regards to the protocol and the encryption. By simple, I mean no more than about 100 lines of C code for the encryption and roughly double that for the protocol.

    Public key encryption is too big. No XML please - it's another huge overhead.

    Operating Systems - Not Just Windows Please!

    Noble Ape currently runs full colour on Mac and Windows. It runs in a reduced monochrome mode on Linux. But I'm assured it is only a matter of time before it runs in full colour on Linux.

    As with the protocol and the encryption, it is important that I maintain all my users on all platforms.

    I'm Willing to Contribute Time

    This might go without saying, but I am willing to help out with the protocol and encryption development. Both are things I have worked on in a current and past professional life. There is a fine balance between the right amount and the right size in both cases.

    Tom Barbalet, 11 January 2005.
    Name modified: 13 April 2005.