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:
- Pick two creatures at random.
- Splice their DNA together.
- Mutate a random gene from the splice result.
- If the result has physically viable traits, transfer energy from each parent to the new creature based on the parents’ donation genes.
- Place the new creature at a random location.
- Give the creature a random heading, velocity, acceleration, and angular velocity. These values are constrained by the creature’s genes.