Welcome to

Primordial Life 3.0

by Jason Spofford

Primordial Life presents an environment filled with artificially living creatures called biots.  Like their biological counterparts, each biot has a genetic code that serves as a blueprint for constructing it.  It is this blueprint which lays the foundation for their evolution.

You will see biots battle to dominate the environment.  Over time, new species will emerge while others may die out.  It’s a tough life, but some biots got to do it.

Evolving artificial life is not a light weight task for any computer.  Primordial Life is packaged as a screen saver, designed to evolve your biots while your computer is available.  You are in control of the environment in which your biots evolve.

Primordial Life 3.0 improves collisions, adds momentum, variable velocity, and rotation.  Biots can eat each others lines, and those lines that have been eaten can regenerate.  There is also a new light blue line that provides biots with a means of propulsion.  A “Color Reaction” feature has been added, allowing biots to change the color of their lines based on their last collision.  The environment has new controls as well, allowing you to change the friction of the environment, and the amount of solar energy available to the biots.  By enabling the mouse within the screen saver, you can zap a biot with a thunder bolt, or give one something eat.  With a right mouse click, you can  change screen saver settings without even leaving the screen saver.

What is the purpose of Primordial Life?

Why should I register?

Just what do all those settings do?

What does a biot’s genetic code look like?

What do the color of the lines mean?


What is the purpose of Primordial Life?

I wrote Primordial Life to capture the principles of evolution in an interesting and visual way.  This is the third version of Primordial Life.  In comparison to Primordial Life 2.0, Primordial Life 3.0 has improved physics, with rotation, momentum, and variable velocities.  Collisions are much more interesting, resulting in both rotational and transitional effects.  It is even possible for a biot to bounce around inside another biot!  Biots now visually attack each other by removing each others lines.  Biots now have propulsion lines to move around on their own.  I’ve also added “Color Reactions” which allow a biot to optimize its color strategy based on what other biots exist in its environment.

For those who like interaction, I’ve added the option to use the mouse inside the screen saver to help or hinder individual biots.  Just left click on the biot you wish to zap.  With a right mouse click, a menu will appear which will allow you to change the cursor to help biots, pause the simulation, change the settings, and restart the simulation.  When you restart the simulation, you can pick the random seed, or have the computer pick one for you.  If you pick the same random seed, the course of evolution will proceed exactly the same, unless you have made changes to the environment or have interacted with the biots.

While I have added several features, I’ve also tried to keep performance lively.  Overall, however, Primordial Life 3.0 may appear slower because it is doing more.  Over 75% of the processing time is spent rendering biots as they move and rotate across the screen.

I’ve also added a more extensive help text, and provided better ways to purchase Primordial Life.  See the Why should I register? section for more details.

I want to thank everyone who sent me suggestions for improving Primordial Life 2.0.  Unfortunately, I didn’t have near the time to implement all of them.  I hope you find the new features I selected as interesting as I do.

Thanks for trying Primordial Life.


What do the color of the lines mean?

Biots are made up entirely of lines.  Each line has a unique color and a purpose.  Green lines absorb solar energy and convert it to biot energy.  Without biots with green lines, all biots would surely perish.  While green lines are extremely handy for capturing energy from the environment, they are vulnerable to attack from the menacing biots with red lines.  Biots with red lines are considered predators, or perhaps herbivores.  They steal energy from plants by attacking their green lines.

When a predator touches a green line, the predator gains energy.  In addition, the plant may lose its line.  If a red line is longer than a green line, the green line will be “plucked” off the biot.  If there were any lines that came after the green line, they too are loss.  Now, while this may sound tragic, all biots have the ability to regenerate lines they have loss, provided they have enough energy to do so.  If a red line is shorter, the green line just dims, and takes much less time to regenerate.

There are also other lines that are vulnerable to attack by predators.  These are the white and light blue lines.  White lines are only visible when “Sexual Reproduction” has been enabled.  When a white line touches any line, other than another white line, it injects the biots genetic code into the target biot.  In this manner, fertilization takes place.  The last biot to touch a biot before it gives birth is considered to be the father.  White lines, however, are just as vulnerable as green lines.

Light blue lines are new in Primordial Life 3.0.  They are little rocket motors that pull a biot around.  They fire serially at a frequency determined by the genetic code.  They cause biots to rotate, or travel in an apparently erratic path throughout the environment.  Light blue lines, just as white lines, are vulnerable to attack by red lines.

Biots with blue lines, or defenders, can shield themselves from a predator’s red lines.  When defenders collide, no harm is done.  A predator with a red line longer than the length of a blue line can “pluck” the shield of a defender and continue the attack.  Likewise, a defender with a longer blue line can “pluck” the predators red line and potentially halt the assault.

When biots collide, they can flash colors to help you visually keep track of the interactions.  Predators flash red when they attack.  Defenders flash blue when they are actively defending.  Plants, or biots with light blue or white lines flash yellow when they are being attacked.


Just what do all those settings do?

For Each Session:

By choosing Start with a new population, each time the screen saver starts up, it will start a completely new population and will commence evolving.

By choosing Stay with current population, each time the screen saver starts up, it will load the biots you were evolving previously and continue their evolution.  Should you grow tired of your advanced biot civilization, you can press Erase Current Population to start with a fresh population.

Environment:

When selecting a mutation rate, you can have fun and make  a high mutation rate, resulting in children biots that are bound to be somewhat different than their parents.  This may make interesting shapes, but it could also hinder evolution by destroying accumulated genetic information too fast.  If you pick no mutation rate, the biots will never change, although some may die.  By selecting no mutation rate, in conjunction with Sexual Reproduction Only, you can watch evolution occur by only using crossover.  Eventually, the population will no longer change as well.

When selecting a starting population, there are some facts to keep in mind.  When using Sexual Reproduction Only, starting with a population of one will always result in extinction.  I’d recommend a population of twenty or more when using Sexual Reproduction Only  With Asexual Reproduction it is very interesting to start out with a population of one.  It may take a bit to find a biot with high enough fitness to survive on its own, but once it does, you can observe what happens to this biot over time.

You can control the environment’s friction by making it a slick surface, or a rigid surface.  For frictionless environments, once you start moving, you never stop.  So even if a biot doesn’t have propulsion (light blue lines), it will likely find itself moving.  When the environment’s friction is rigid, biots will not move unless they were just bumped into, or they have their own propulsion.

By increasing the Solar Intensity, you can increase the amount of energy biots can absorb from the environment.  This allows biots with less green lines to survive without eating other biots.  It also causes pure green biots to multiple like crazy.  If you make the “Solar Intensity” too low, only mostly green biots can survive.

A biot’s Life Span is controllable.  You can make a biot’s life span really short, which means it has to gain enough energy to reproduce in a very short time, or you can make a biot’s life span immortal, which means it will never die of old age.

When biot’s regenerate lost lines, it can be expensive.  Via Regeneration Cost you can vary just how expensive it is.  Biots will stop regenerating their lines if their energy falls below 25% of normal.  You can make regeneration free, in which case, the only penalty to the biot is the fact that they loss the use of their line(s) for a period of time.

It takes a certain amount of time to regenerate lines.  Via Regeneration Rate you can adjust how long it takes to regenerate.  Immediate regeneration means that the biot will barely miss its missing line.  Very slow regeneration means that a biot will be exposed to counter attacks for a long time to come.

General Options:

Primordial Life comes with sounds that you can optionally turn off.  There is a sound for dying as a direct result off an attack, for starving to death, for dying of old age, and for being born.  If you enable the mouse, you get a sound for energizing a biot and a sound for killing off an unlucky biot.

As mentioned previously, you can interact with Primordial Life, by selecting to use  mouse.  If you do this, the only way to exit the screen saver using the mouse is to right click to bring up the popup menu and select exit.  You can always exit by pressing a key (like Escape) on the keyboard.  Use the mouse to reward biots you like, and to terminate biots you deem unworthy of your computer screen.

You can request that the rendering of biots use a Flicker Free approach which uses a different drawing technique.  This will typically slow down the simulation as well, since drawing the biots takes about 75% of the processing time required.  Some of you may want to slow down the simulation if you have high powered processors.

Behaviors:

Biots are fully capable of attacking their young.  If you can’t bare to see this, you can prevent them from doing so.  Normally, this is determined by the parents genetic code.

Biot siblings can also fight each other.  If such battles don’t fit your definition of a nice family life, feel free to prevent them from fighting.  Normally this trait is determined by the children genetic code.

Reproduction:

Biots can reproduce in two ways.  They can reproduce by making an exact copy of their genetic code (subject to mutations).  This is called Asexual Reproduction.  They also can be fertilized by another biot, and produce offspring that are a mixture of  the two parents.  This is called Sexual Reproduction.  You can allow both types of reproduction to occur as well, allowing evolution to determine which method of reproduction is best.

In Primordial Life 3.0, a biot belongs to a particular species, and can only fertilize those biots which belong to its species.

Color Reactions:

This is an experimental feature of Primordial Life.  When a biot collides with another biot, it can adjust its colors.  For instance, if a predator attacks a plant, after the first attack, the plant can turn into a defender.  When the newly formed defender is touched by another plant, it can change back into a plant.

There are three different ways a biot can change its color based on the color of the line it collided with.  It can change the color of the line that was collided with using Allow single segment color change, or for symmetric biots, it can change the color of a line in every corresponding position using Allow radial color change.  Finally, the entire biot can change color based on the color using Allow complete color change.  A biots genetic code determines what method of color change it uses, subject to what you allow.  The colors themselves are also stored in the genetic code.


Why should I register?

Register if you like this program.  Whether or not this program continues to evolve really depends on whether or not you support it.  I’ve tried to make it affordable.  I also have made it easier to purchase it.  To find out more, press the Register! button in the Primordial Life settings dialog.

Registering will enable all the features of Primordial Life enabling you to be “master” of your own universe. You will be able to save biots in between invocations of the screen saver.  You will also be able to change settings while inside the screen saver without limitation.  If you’d like, you can also download a windowed version of Primordial Life, in case you don’t want to always run it as a screen saver.  Also, any upgrades over the next year are free!  Best of all, it will get rid of the “nag” screen.

To register, press the Register! button in the Primordial Life settings dialog and follow the instructions found there.  If you have any questions or suggestions, you can contact me at spofford@io.com, or at:

Jason Spofford

11040 Crossland Drive

Austin, Texas 78726

After you register, you will receive a shareware key unique to your machine.  Type this into the Register dialog, found on the Primordial Life settings dialog by pressing the Register! button.


What does a biot's genetic code look like?

What does a biot’s genetic code look like?

The Genetic Code

The genetic code consists of 10 segment genes and one trait gene.  A line is made up of 1 to 10 segments, and a biot can have 1 to 8 lines.

The Segment Genes

♦	segment delta height

♦	segment delta width

♦	segment color(s)	- an array of segment colors, only one can be expressed at a time.

♦	period	- how often to fire the propulsion segment

♦	visible	- whether or not this segment is expressed at all

The Trait Gene

♦	The default expressed line color (an index into the line gene’s line color array)

♦	Color reaction strategy

♦	Whether the parent can attack its children

♦	Whether the sibling will attack its other siblings

♦	When the children are born, whether they stay with the parent, or scatter from it

♦	How many children the biot can have at once.

♦	How many lines are expressed (each line consists of 1 to 10 line genes)

♦	Whether or not a biots lines are mirrored (even line counts only)

♦	The species identifier (0 - 15)

♦	The adult scale  (allows a biot to get bigger or smaller, but keeps the same form)

♦	The initial rotational offset when it is born.

♦	The motion frequency gene, one for each line.

The Species Identifier

For sexual reproduction, a species identifier is used to allow for different species to develop, thus preventing them from interbreeding.  It works like this.  A biot with an id of 1 may breed with a biot with an id of 2 or 0, or 1.  Even if a single species develops initially, through genetic drift, they can develop into different species.  A mutation of the species id may change a biots id to 2, which means it can still breed.  Down the road, 2 can give way to 3, and if all the biots with id 2 die out, you are left with 1 and 3 as two species.

Motion Frequency

While each light blue segment’s length and position effect the strength and direction of a biots propulsion.  For symmetrical creatures, however, these propulsion vectors can cancel each other out, or, since the propulsion lines are fired serially, they can make the biot go in circles.  The motion frequency gene can tell propulsion segments on one line to fire or skip, depending on which line it belongs.  This allows symmetical creatures to develop complicated motion patterns.