Category: My Figure creatures

Ongoing experiments with software-based artificial life

It was a clever notion, but not a good idea.

It was a clever notion, but not a good idea.

It’s been several days since I noticed that my oh so very clever notion wasn’t actually a good one. I’ve been developing my little subleq creatures, called “figures,” layer by layer. There is one more layer to go, and I had what I thought was a brilliant way to implement it. That is, until I tested the new layer against the old version and saw that the same exact run, with the same exact results, was taking up to 59 percent longer!

Read More Read More

In the pines, in the pines

In the pines, in the pines

I must make note of this mess before it leaves my head, and leaves me lost in the pines, in the pines, where the sun don’t ever shine. I would shiver the whole night through.

In the newly defined handler object, there are methods that get called when a figure is added to the realm.

Handler.realmAdd(Realm realm, Figure figure)
Handler,realmAdd(Realm realm, Figure figure, int address)

Read More Read More

Making it simple isn’t simple

Making it simple isn’t simple

Let’s get started.

Putting together the nodes and handlers is going to be somewhat painful, and slow. It might be a bit more fun, along with giving me a way to test the general concept and implementation, if I implement the handlers to help me do a particular experiment or two. There will be no getting away from days of going through, method by method, bit by bit, but this should be a much more interesting way to get started.

Read More Read More

The next bit

The next bit

Between technical difficulties, research and recording, I’ve just barely managed to squeeze in some time to do some little chores with the code for my artificial life experiment software. I call my subleq based digital organisms “figures.”

The very next thing is to implement save and restore functions, so I can keep a population and play with it later. I hope to take care of that by the end of the weekend, but no promises.

Once that last little chore is done, I’ll zip up and archive figures0.3. Closing in on the end of this round, my thoughts have been drifting toward the next.

Read More Read More

Debugging death

Debugging death

In episode 144, I oh so casually mentioned that I was getting some runtime errors. They don’t happen in every run, but the fact that they happen at all is a problem. My artificial life system will eventually be running for days at a time as I do different experiments, and I can’t have these errors causing my system to halt.

What does one do when one sees output like the following?

Read More Read More

Ep 144: Emergent self-replicating software from my experiments

Ep 144: Emergent self-replicating software from my experiments

Emergent self-replicating software from my experiments

In the previous episode, I provided a description of “Amoeba.” In this episode I use “Figures,” which is my own experiment with digital organisms and artificial life, to repeat the results of Andy Pargellis’s Amoeba experiment, with a few differences. I also give the most detailed explanation of my subleq based system to date, as I compare and contrast it with Tierra and Amoeba.

Here are links to episodes relevant to today’s episode

Ep 143: Emergent self-replication with Amoeba

Ep 103: Tierra, bits bytes and life

Here’s a blog post that describes what subleq is and how it works.

The prime, and only, directive.

Here’s a video that provides a decent introduction to artificial life and digital organisms.

Artificial Life

Ep 143: Emergent self-replication with Amoeba

Ep 143: Emergent self-replication with Amoeba

Emergent self-replication with Amoeba

Did life come from chaos? If it did, could you get artificial life to do the same thing? As I’m repeating the experiment, with some difference, I thought I’d talk about Amoeba—an artificial life simulation that caused self-replicating bits of software to emerge from randomly generated code. I provide a general overview, and then talk a little bit about how it relates to my project.

Here are links to the previous episodes that relate to today’s episode.

Ep 82: DNA that does nothing?

Ep 103: Tierra, bits bytes and life

Here’s a link to an article about Amoeba.

Artificial life with Amoeba

Ep 142: A closer look at results from ep 139

Ep 142: A closer look at results from ep 139

A closer look at results from ep 139

In episode 139, I talked about unexpected results from my experiment with artificial life and digital organisms. There was a tiny bit of evolution happening with a very tiny population. Today, we take a closer look at what the system was doing.

Here are links to previous episodes relevant to this one.

Ep 103: Tierra, bits bytes and life

Ep 139: de facto fitness functions and unexpected early evolution

Here’s a roughly 28-minute-long video that is a decent introduction to artificial life.

Artificial Life

Ep 139: de facto fitness functions and unexpected early evolution

Ep 139: de facto fitness functions and unexpected early evolution

de facto fitness functions and unexpected early evolution

When people talk about their artificial life computer simulations, they often say that there is no fitness function—no bit of code that decides which bit of software lives, dies, or reproduces. Even if it isn’t happening on purpose, the design of the overall system can still cause a de facto fitness function, and behaviors you didn’t expect, and perhaps, really didn’t want. It has already happened to me and my figures, despite using only a small test population of two or three individuals.

Here’s a link to episode 112, about Polyworld.

Evolving neural networks with polyworld

Here’s a link to a talk about Polyworld. The interesting bit where their de facto fitness function caused problems is at 30 minutes and 25 seconds.

Using Evolution to Design Artificial Intelligence