Main

What is codesoup?

What has been done so far?

So you want to help

FAQ

Docs

Links

Sourceforge Project

Sourceforge Forums

Sourceforge CVS

Contact me.

SourceForge.net Logo

What is Codesoup?

In slashdot terms this is codesoup (phase one):
1) Craft a self-replicating program that looks at its offsprings code and tweaks it a bit.
2) Bung this into a virtual machine.
3) leave for a while.
3) Give energy to those that do well at a task. So that they can smite other less worthy code and take its place
4) ???
5) Profit

The serious description

The codesoup project is a project inspired by artficial life systems such as Tierra. Its main difference Tierra and similar systems is that the project is trying to discover how evolution may proceed by using internal variational operators and how that sort of system might be used in producing useful computer systems

So rather than having a external mutation rate as there is in Tierra each program as well as copying itself also alters its childs genetic material. This allows the methods of variation to change or stop over time, depending upon an external fitness function.

The final system

The IDE

One of the goals of project is to create an IDE for the codesoup and a variety of programs to analyse the replicating soup. The GUI for the IDE should be able to display a graphical representation of the programs in the soup. Also there is a need to make easy ways for the codesoup to link with other bits of code to access other data or interact with the user.

The replicating programs

This is what I think the system will be capable of with enough resources and the correct starting programs.
1) The ability to learn how to solve arbitrary problems that it doesn't have definition for and cannot expect them to be of a certain class of problems.
2) The system should also be fairly fault tolerant as if one program has an error or fails to solve the problem then other similar competing problems should be there to pick up the current task.
3)The system should be modular in that different programs should cooperate on solving problems. This would allow specialised programs to occur an allow search there section of program space more efficiently

For those of you familiar with Tierra I shall give a brief comparison of the virtual machines.
  • By default no external mutation
  • No reaper that kills other viable programs, programs can kill other programs if they have more energy than the other
  • A decentralised approach to defining what a program is, all meta information needed to run the system is stored in the system itself, this is to allow the program to hopefully easily be translated into hardware at some point

  • Last modified: Wed Jul 2 16:57:24 BST 2003