Jevolution

Description:
Java-based evolution simulator. Rectangular creatures compete against each other.

Purpose:
Make a very simple system that still demonstrates evolutionary behavior.

Link:
go to the Jevolution applet

Source:
Jevolution source on github

Users can control the following:

  • strength function governing energy transfer between creatures touching each other
  • function specifying creature energy loss per unit time
  • simulation speed
  • mating rate
  • random creature spawn rate

Creatures currently have the following genes:

  • red color component (0-255)
  • blue color component (0-255)
  • green color component (0-255)
  • height
  • width
  • acceleration range
  • minimum acceleration
  • angular velocity range
  • minimum angular velocity
  • range of time between acceleration changes
  • minimum time between acceleration changes
  • range of time between angular velocity changes
  • minimum time between angular velocity changes
  • maximum velocity
  • minimum energy required to mate when selected
  • amount of energy donated to children when mating

Mating algorithm:

  1. Pick two creatures at random.
  2. Splice their DNA together.
  3. Mutate a random gene from the splice result.
  4. If the result has physically viable traits, transfer energy from each parent to the new creature based on the parents’ donation genes.
  5. Place the new creature at a random location.
  6. Give the creature a random heading, velocity, acceleration, and angular velocity. These values are constrained by the creature’s genes.

Leave a Reply