Difference between revisions of "Introduction"

From WikiManual
Jump to: navigation, search
(Darwinbots: restructurized and some content added.)
Line 1: Line 1:
 
== Darwinbots ==
 
== Darwinbots ==
  
Darwinbots is an artificial life simulator. Because it is an open source project, it is spread all over the net.
+
Darwinbots is an open source artificial life simulator spread all over the net.
 +
It basically simulates [http://en.wikipedia.org/wiki/Von_Neumann_machine|Von Neuman Machines] and [http://en.wikipedia.org/wiki/Von_Neumann_probe|Von Neumann probes] but was initially meant to simulate artifical life and evolution.
  
Please visit the links page for a listing of where the forum, home page, and other Darwinbot pages are.  
+
Please visit [[Other Resources]] for a listing of where the [http://forum.darwinbots.com/index.php?act=idx/index.php?act=site forum], [http://digilander.libero.it/darwinbots/ Old Homepage], [http://digilander.libero.it/darwinbots/screenshots.html screenshots] and other Darwinbot pages are.  
  
If you are ''really'' new, check out the [http://digilander.libero.it/darwinbots/ Old Homepage] for all sorts of interesting screenshots and information that will excite your interest!
+
The basic idea of DarwinBots is to simulate populations of individuals whose behaviour is defined by their DNA. The DNA is a .txt file interpretetated to an input->output program connection between bot's sensory inputs and its actions.
 +
Its purpose is to simulate some of the aspects of natural life and evolution by simulating a number of individuals who must survive like real organisms do: based on their merits.
  
----
+
It is impossible to model all of the complicated factors and processes influencing existence of living organisms. Therefore, we have [[concept]]s which aspects of life to simulate and model.
 +
This simulation for example excludes proteinebiosynthesys and enzymatics, here the DNA directly controlls a life forms behavior. However you can simulate [http://simple.wikipedia.org/wiki/Hormone simple hormones] by variables that controll feeding, reproduction, growdth... that can be chanded by other cells.
 +
The DarwinBots universe is a two-dimensional space populated by two-dimensional bots. Most start with a DNA code of one procedure for reproduction, 1-3 for attacking, and 1-4 procedures for movement, thats barely 100-1000 asciis uncompressed source code.
  
'''OVERVIEW'''
+
===What are bots?===
  
DarwinBots is an artificial life simulator. Its purpose is to simulate as closely as possible some of the aspects of natural life and evolution. It does so by simulating a number of individuals who must survive like real organisms do: based on their merits.
+
Every [[Single Bot|bot]] is represented by a circle of a given size and color. Bot's head is marked by a white dot on the circle. Around the head are the main sensory organs of bots, nine simple eyes. They also have a tactile sense, allowing them to feel when they are attacked or when another bot is attaching itself to them. Right now bots don't have anything analogous to hearing or smell.
  
It is impossible to model all of the factors influencing existence of living organisms. There are simply too many complicated and interrelated processes. Therefore, we must choose which aspects of life to simulate and model. Basic idea of DarwinBots is to simulate populations of individuals, called bots, whose behaviour is defined by a series of specially designed commands, or DNA. The DNA is the connection between bot's sensory inputs and its actions.
+
The sensory inputs of bots are analyzed through its DNA, which is essentially a program, written in a specially designed FILO (First in last out memory stack/array) language.
 +
The simpler an if()->then() reaction is the more flexible it is for random changes. Most bot's DNA is made of only ~6-20 procedures (analog to [[gene]]s) made of 20-200 [[operation]]s. Each operation also equals a number that can change by [[mutation]]. As a result, the program written in this language can tolerate small random mutations much better , without changing the whole program, than programs written in most of the other programming languages.
  
When bots reproduce, their DNA is passed to the child, sometimes with a random change, which might affect the pattern of bot's behaviour. Just like in real evolution, when a change in DNA improves the bot's ability to survive and reproduce, these new mutations will spread through the population; otherwise, they will likely disappear.  
+
Every bot has its own [[Energy]] supply. Actions cost energy. If it runs out, the bot dies. If it reaches a given number it reproduces. The energy supply can be replenished by taking energy from other bots in the simulation (anlogous to hunting in real ecosystems). The overall energy suppliers in DarwinBots simulations are special bots, called [[Veggy|veggies]] or alga, which receive energy for free over time (analogous to plants in real ecosystems).
  
'''What are the bots?'''
+
Bots can [[Shot]] at each other to hunt, feed, [[venom]], [[waste|shit on]], [[poison]], spread DNA-changing [[Virus]]es or comunicate with what they hit.
 +
Bots can also make [[Tie]]s to each other that can harden to form more complex [[multicellular|Multibot]] structures that can share their food or tasks, or just to drag each other around or to do all the above trough the tie without shoting at each other.
  
The DarwinBots universe is a two-dimensional space populated by two-dimensional bots. Every [[Single Bot|bot]] is represented by a circle of a given size. Bot's head is marked by a dot on the circle. Around the head are the main sensory organs of bots - nine simple eyes. Aside from eyes, bots have tactile sense, allowing them to feel when they are attacked or when another bot is attaching itself to them. Right now bots don't have anything analogous to hearing or smell.
+
===Mutations and Natural Selection:===
  
As it was already mentioned, the sensory inputs of bots are analyzed through its DNA, which is essentially a program, written in a specially designed language, which allows random changes to affect only a small portion of the program, without disturbing the majority of the code. As a result, the program written in this language can tolerate random mutations much better than programs written in most of the other programming languages.
+
When bots reproduce, their DNA is passed to the child, sometimes with a random change, which might affect the pattern of bot's behaviour. Just like in real evolution, when a change in DNA improves the bot's ability to survive and reproduce, these new mutations will spread through the population; otherwise, they will likely disappear. [[Junk code]] generally gives an evolutionary disadvantage trough higher DNA maintenance or processing energy costs.
 
 
Like any other program, the bots' DNA manipulates values, which are stored in a special memory array. It takes values from some of the cells in this array, processes them in a bot-specific way, and writes the output into other cells. The values in output cells determine whether bot is going to move, turn, hunt, reproduce or do any other of the many things that bots can do.
 
 
 
Every bot has its own [[Energy]] supply, called nrg . To perform an action, a bot has to spend a certain amount of energy. If nrg runs out, the bot dies. The energy supply can be replenished by taking energy from other bots in the simulation (anlogous to hunting in real ecosystems). The overall energy suppliers in DarwinBots simulations are special bots, called [[Veggy|veggies]] or alga, which receive energy for free (analogous to plants in real ecosystems).
 
 
 
'''Shots'''
 
 
 
Shots are special objects in DarwinBots. Unlike bots, which are circular and normally cannot overlap, shots are completely immaterial and don't collide with each other. Shots are released by bots using special DNA commands and they are absorbed by the first bot that they encounter. There are several different kinds of shots, which can carry energy or information.
 
 
 
'''Ties'''
 
 
 
A tie is another semi-physical object in DarwinBots. They provide connection between two bots and, aside from providing physical interaction, can be used to transfer energy and information. Ties do not interact with each other or with bots not directly connected by them. However they do interact with hypothetical media in which bots are submersed and can be used for swimming. The length of ties is variable: a newly formed tie is very flexible, but it becomes more rigid with time.
 
 
 
Two or more bots joined by ties are considered multicellular organisms [[Multibots]] and there are some special rules that apply to them.
 
 
 
Any given bot can not have more than three ties (v2.35).
 
v2.37+ allows up to 4 ties.
 
 
 
'''Mutations and Natural Selection'''
 
  
 
Mutation system in DarwinBots is superior to majority of alternative artificial life simulation programs. While many other programs define a limited set of properties on which selection may act, DarwinBots' DNA code allows unlimited and open-ended variation. In addition, Darwinbots does not impose an artificial selection for a given phenotype. As a result, survival of a bot depends on its combined strategies for movement, energy management, reproduction, etc. There is no limit on sophistication of the DNA code.  
 
Mutation system in DarwinBots is superior to majority of alternative artificial life simulation programs. While many other programs define a limited set of properties on which selection may act, DarwinBots' DNA code allows unlimited and open-ended variation. In addition, Darwinbots does not impose an artificial selection for a given phenotype. As a result, survival of a bot depends on its combined strategies for movement, energy management, reproduction, etc. There is no limit on sophistication of the DNA code.  
  
However, this power is a two-edged sword.  Like real evolution, Darwinbots evolution takes time.  Don't expect to leave a simulation running for 3 hours and have your bots become a whole new life form.  Most successful simulations require ''millions'' of cycles, which corresponds to several days of real time.
+
Therefore DarwinBots evolution takes time.  Don't expect to leave a simulation running for 3 hours and have your bots become a whole new life form.  Most successful simulations require ''millions'' of cycles, which corresponds to several days of real time.
  
 
The best strategy is to find an old computer you have that no one is using, set it up to run a simulation, and forget about it for about a week.
 
The best strategy is to find an old computer you have that no one is using, set it up to run a simulation, and forget about it for about a week.
  
'''Evolution vs. Battle Bots'''
+
===Battle Bots:===
 +
 
 +
Battle bots are similar to Von Neuman Berserker macines, like [http://en.wikipedia.org/wiki/Replicators|the replicators from Star Gate]
  
DarwinBots can be used in two completely different ways. The original goal of the program was simulation of artificial life and evolution processes. While the program has been developed mainly in this direction, it has also been used in a very different way - as a playground for testing programming skills. Instead of evolving the best possible bot for a given environment, DNA programs for bots can be designed from scratch by people. Then the designed bot are placed in an arena where they fight until one of the species wins. Several leagues have been established with different rules and the ratings are periodically updated when the new species of bots are introduced.
+
While the program has been developed mainly to simulate artifical life and evolution, it has also been used in a very different way - as a playground for testing programming skills. DNA programs for bots can be designed from scratch by people. Then the designed bot are placed in an arena where they fight until one of the species wins. Several [[league]]s have been established with different rules and the ratings are periodically updated when the new species of bots are introduced.
  
 
Note that it is considered animal cruelty if you reference <nowiki>*.pain</nowiki> in your DNA code, and you ''will'' be prosecuted by the ASPCA.
 
Note that it is considered animal cruelty if you reference <nowiki>*.pain</nowiki> in your DNA code, and you ''will'' be prosecuted by the ASPCA.

Revision as of 10:35, 23 December 2005

Darwinbots

Darwinbots is an open source artificial life simulator spread all over the net. It basically simulates Neuman Machines and Neumann probes but was initially meant to simulate artifical life and evolution.

Please visit Other Resources for a listing of where the forum, Old Homepage, screenshots and other Darwinbot pages are.

The basic idea of DarwinBots is to simulate populations of individuals whose behaviour is defined by their DNA. The DNA is a .txt file interpretetated to an input->output program connection between bot's sensory inputs and its actions. Its purpose is to simulate some of the aspects of natural life and evolution by simulating a number of individuals who must survive like real organisms do: based on their merits.

It is impossible to model all of the complicated factors and processes influencing existence of living organisms. Therefore, we have concepts which aspects of life to simulate and model. This simulation for example excludes proteinebiosynthesys and enzymatics, here the DNA directly controlls a life forms behavior. However you can simulate simple hormones by variables that controll feeding, reproduction, growdth... that can be chanded by other cells. The DarwinBots universe is a two-dimensional space populated by two-dimensional bots. Most start with a DNA code of one procedure for reproduction, 1-3 for attacking, and 1-4 procedures for movement, thats barely 100-1000 asciis uncompressed source code.

What are bots?

Every bot is represented by a circle of a given size and color. Bot's head is marked by a white dot on the circle. Around the head are the main sensory organs of bots, nine simple eyes. They also have a tactile sense, allowing them to feel when they are attacked or when another bot is attaching itself to them. Right now bots don't have anything analogous to hearing or smell.

The sensory inputs of bots are analyzed through its DNA, which is essentially a program, written in a specially designed FILO (First in last out memory stack/array) language. The simpler an if()->then() reaction is the more flexible it is for random changes. Most bot's DNA is made of only ~6-20 procedures (analog to genes) made of 20-200 operations. Each operation also equals a number that can change by mutation. As a result, the program written in this language can tolerate small random mutations much better , without changing the whole program, than programs written in most of the other programming languages.

Every bot has its own Energy supply. Actions cost energy. If it runs out, the bot dies. If it reaches a given number it reproduces. The energy supply can be replenished by taking energy from other bots in the simulation (anlogous to hunting in real ecosystems). The overall energy suppliers in DarwinBots simulations are special bots, called veggies or alga, which receive energy for free over time (analogous to plants in real ecosystems).

Bots can Shot at each other to hunt, feed, venom, shit on, poison, spread DNA-changing Viruses or comunicate with what they hit. Bots can also make Ties to each other that can harden to form more complex Multibot structures that can share their food or tasks, or just to drag each other around or to do all the above trough the tie without shoting at each other.

Mutations and Natural Selection:

When bots reproduce, their DNA is passed to the child, sometimes with a random change, which might affect the pattern of bot's behaviour. Just like in real evolution, when a change in DNA improves the bot's ability to survive and reproduce, these new mutations will spread through the population; otherwise, they will likely disappear. Junk code generally gives an evolutionary disadvantage trough higher DNA maintenance or processing energy costs.

Mutation system in DarwinBots is superior to majority of alternative artificial life simulation programs. While many other programs define a limited set of properties on which selection may act, DarwinBots' DNA code allows unlimited and open-ended variation. In addition, Darwinbots does not impose an artificial selection for a given phenotype. As a result, survival of a bot depends on its combined strategies for movement, energy management, reproduction, etc. There is no limit on sophistication of the DNA code.

Therefore DarwinBots evolution takes time. Don't expect to leave a simulation running for 3 hours and have your bots become a whole new life form. Most successful simulations require millions of cycles, which corresponds to several days of real time.

The best strategy is to find an old computer you have that no one is using, set it up to run a simulation, and forget about it for about a week.

Battle Bots:

Battle bots are similar to Von Neuman Berserker macines, like replicators from Star Gate

While the program has been developed mainly to simulate artifical life and evolution, it has also been used in a very different way - as a playground for testing programming skills. DNA programs for bots can be designed from scratch by people. Then the designed bot are placed in an arena where they fight until one of the species wins. Several leagues have been established with different rules and the ratings are periodically updated when the new species of bots are introduced.

Note that it is considered animal cruelty if you reference *.pain in your DNA code, and you will be prosecuted by the ASPCA.


Return to Main Page