Difference between revisions of "Introduction"

From WikiManual
Jump to: navigation, search
m (Darwinbots: forgot howto do external links, duh)
m (Fixed typos)
 
(24 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 +
Darwinbots is an open source artificial life simulator which attempts to simulate artificial life and evolution.  It simulates [http://en.wikipedia.org/wiki/Von_Neumann_machine Von Neumann Machines] (and [http://en.wikipedia.org/wiki/Von_Neumann_probe Von Neumann probes] like [http://en.wikipedia.org/wiki/2001:_A_Space_Odyssey#Synopsis the Monolith]) better than it simulates biological life necessarily.
 +
 
== Darwinbots ==
 
== Darwinbots ==
 +
Similar to other ALife programs (such as Avida notably) organisms (called "bots" hereafter) are simulated by a DNA script which defines behavior.  Conceptually the DNA is a large Finite State Machine that reads various sensory inputs, modifies them, and connects them to various outputs and actions.  Bot DNA files are in ASCII with a .txt extension, which allows anyone familiar with the DNA language to write and share DNA files with notepad.
  
Darwinbots is an open source artificial life simulator spread all over the net.
+
The bots' world is a large non-discrete planeThere are no "grids" bots are placed in, as in cellular automataRather, the bots move and roam around like ants on a giant pane of glass.
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 [[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.  
+
Bots receive energy ("nrg") by eating other bots.  A few bots (deemed "veggies") get nrg from the simulation for free to simulate an inflow of energy. Most actions (movement, DNA execution, eating, etc.) cost nrg.
  
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.
+
Conceptually, Darwinbots is the ALife descendant of C Robots, as opposed to Avida or Tierra which descend from Core Wars. Most of the universe rules in Darwinbots descend from that conceptual past.
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.
+
A certain level of abstraction is necessary to keep the simulation running at decent speeds. [[Concept]]s help to provide that level of abstraction.  For instance, Darwinbots does not simulate proteinebiosynthesys or enzymatics.  Instead, the DNA directly controls a bot's behavior. However you ''can'' simulate [http://simple.wikipedia.org/wiki/Hormone simple hormones] by variables which control feeding, reproduction, growth, or any other physical process.
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.
 
  
 
===What are bots?===
 
===What are bots?===
  
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.
+
Every [[Single Bot|bot]] is represented by a circle of a given size and color. A bot's "eye" is marked by a white dot on the circle. The eye consists of nine simple sub eyes called eyeX where X is between 1 and 9.  These simple eyes return a value that roughly corresponds to the apparent size of the nearest object it can see through that eye.
 +
 
 +
Bots also have tactile senses allowing them to feel when another bot has bumped into them or when the bot is being attacked.  At present there are no long range senses available to the bots (such as sounds in higher organisms or chemical signals in bacteria).
  
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 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, designed to be as robust to mutations as possible. Most bots' DNA is made of only ~6-20 procedures called [[gene]]s, themselves made up of 20-200 [[operators | operation]]s. Each operation can potentially change through [[mutation]]s.
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.
 
  
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).
+
Every bot has its own [[Energy]] supply. Most actions cost nrg. If a bot reaches 0 nrg, it dies. Most bots reproduce when their nrg levels are above a certain threshold determined by the DNA. Energy can be replenished by taking energy from other bots in the simulation (analogous to hunting in real ecosystems), by feeding on stored energy reserves (called "body"). Bots also are resupplied by the simulation if they are [[Veggy|veggies]] or alga.  Veggies receive energy for free over time (analogous to plants in real ecosystems).
  
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 use non-material [[Shot|shots]] to feed, attack, remove [[waste]], infect, or communicate.  Shots are single points with no mass or physical dimensions.
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.
 
  
===Mutations and Natural Selection:===
+
Bots can also make [[Tie]]s to each other that can harden to form more complex [[Multibot | multicellular]] structures that can share food or tasks, or just drag each other around.
  
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.
+
===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.  
+
When bots reproduce, their DNA is passed to the child, sometimes with a random change, which might affect the pattern of bot's behavior. Just as 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. Note that the simulation itself is not directly interfacing with the DNA or mutations.  Increases or decreases in fitness are strictly emergent.  [[Junk code]] generally gives an evolutionary disadvantage through higher DNA maintenance or processing energy costs.
  
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.
+
Because the program does not directly decide how fit an organism is, a bot's survival depends on its long term, combined strategies for movement, energy management, reproduction, etc. There is no limit on sophistication of the DNA code: most user written bots can be quite complex.
  
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.
+
Unfortunately, Darwinbot evolution takes time.  Because a bot generation can last many thousand cycles, and most simulations run at maybe 15 cycles a second, it can take many hours or even several days before significant natural selection can occur.
  
===Battle Bots:===
+
The optimal strategy for the impatient is to find an old computer and set up a simulation and forget it for about a week.
  
Battle bots are similar to Von Neuman Berserker macines, like [http://en.wikipedia.org/wiki/Replicators|the replicators from Star Gate]
+
===Battle Bots===
  
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.
+
Battle bots are similar to [http://en.wikipedia.org/wiki/Von_Neumann_probe#Berserkers Von Neumann Berserker probes], like [http://en.wikipedia.org/wiki/Replicators the replicators in Star Gate]
  
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.
+
While the program has been developed mainly to simulate artificial life and evolution, it has also been used as a playground for testing programming skills.  Complex DNA programs for bots can be designed from scratch since the DNA language is human-understandable.  The [http://en.wikipedia.org/wiki/Intelligent_design user designed] bots are placed in an arena where they fight until one species wins. Several [[league]]s have been established with different rules and ratings that are periodically updated as new species are introduced.
  
 +
Note that it is considered animal cruelty if you reference *[[.pain]] in your DNA code, and you ''will'' be [http://forum.darwinbots.com/index.php?showtopic=109 prosecuted by the ASPCA.] ;-)
  
 
Return to [[Main Page]]
 
Return to [[Main Page]]

Latest revision as of 19:40, 14 February 2014

Darwinbots is an open source artificial life simulator which attempts to simulate artificial life and evolution. It simulates Von Neumann Machines (and Von Neumann probes like the Monolith) better than it simulates biological life necessarily.

Darwinbots

Similar to other ALife programs (such as Avida notably) organisms (called "bots" hereafter) are simulated by a DNA script which defines behavior. Conceptually the DNA is a large Finite State Machine that reads various sensory inputs, modifies them, and connects them to various outputs and actions. Bot DNA files are in ASCII with a .txt extension, which allows anyone familiar with the DNA language to write and share DNA files with notepad.

The bots' world is a large non-discrete plane. There are no "grids" bots are placed in, as in cellular automata. Rather, the bots move and roam around like ants on a giant pane of glass.

Bots receive energy ("nrg") by eating other bots. A few bots (deemed "veggies") get nrg from the simulation for free to simulate an inflow of energy. Most actions (movement, DNA execution, eating, etc.) cost nrg.

Conceptually, Darwinbots is the ALife descendant of C Robots, as opposed to Avida or Tierra which descend from Core Wars. Most of the universe rules in Darwinbots descend from that conceptual past.

A certain level of abstraction is necessary to keep the simulation running at decent speeds. Concepts help to provide that level of abstraction. For instance, Darwinbots does not simulate proteinebiosynthesys or enzymatics. Instead, the DNA directly controls a bot's behavior. However you can simulate simple hormones by variables which control feeding, reproduction, growth, or any other physical process.

What are bots?

Every bot is represented by a circle of a given size and color. A bot's "eye" is marked by a white dot on the circle. The eye consists of nine simple sub eyes called eyeX where X is between 1 and 9. These simple eyes return a value that roughly corresponds to the apparent size of the nearest object it can see through that eye.

Bots also have tactile senses allowing them to feel when another bot has bumped into them or when the bot is being attacked. At present there are no long range senses available to the bots (such as sounds in higher organisms or chemical signals in bacteria).

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, designed to be as robust to mutations as possible. Most bots' DNA is made of only ~6-20 procedures called genes, themselves made up of 20-200 operations. Each operation can potentially change through mutations.

Every bot has its own Energy supply. Most actions cost nrg. If a bot reaches 0 nrg, it dies. Most bots reproduce when their nrg levels are above a certain threshold determined by the DNA. Energy can be replenished by taking energy from other bots in the simulation (analogous to hunting in real ecosystems), by feeding on stored energy reserves (called "body"). Bots also are resupplied by the simulation if they are veggies or alga. Veggies receive energy for free over time (analogous to plants in real ecosystems).

Bots use non-material shots to feed, attack, remove waste, infect, or communicate. Shots are single points with no mass or physical dimensions.

Bots can also make Ties to each other that can harden to form more complex multicellular structures that can share food or tasks, or just drag each other around.

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 behavior. Just as 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. Note that the simulation itself is not directly interfacing with the DNA or mutations. Increases or decreases in fitness are strictly emergent. Junk code generally gives an evolutionary disadvantage through higher DNA maintenance or processing energy costs.

Because the program does not directly decide how fit an organism is, a bot's survival depends on its long term, combined strategies for movement, energy management, reproduction, etc. There is no limit on sophistication of the DNA code: most user written bots can be quite complex.

Unfortunately, Darwinbot evolution takes time. Because a bot generation can last many thousand cycles, and most simulations run at maybe 15 cycles a second, it can take many hours or even several days before significant natural selection can occur.

The optimal strategy for the impatient is to find an old computer and set up a simulation and forget it for about a week.

Battle Bots

Battle bots are similar to Von Neumann Berserker probes, like the replicators in Star Gate

While the program has been developed mainly to simulate artificial life and evolution, it has also been used as a playground for testing programming skills. Complex DNA programs for bots can be designed from scratch since the DNA language is human-understandable. The user designed bots are placed in an arena where they fight until one species wins. Several leagues have been established with different rules and ratings that are periodically updated as new species 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