Category Archives: My Figure creatures

Ongoing experiments with software-based artificial life

Think I was trying for the wrong thing.

Written on Thursday September 27, 2018

mutation each extinction
figures1 skipcom
5.pop average 73
figures just fat
6.pop average 48
x.pop average 460 just fat longest with mu 131616 without only 38453
61.pop keeps doing too well to tell

I was trying to make s.pop into a six figures steady pop size stable population. I wanted to recreate 6.pop whose magic children have done so well that they climb off the measurement scale. I set things up so that s.pop was read from disc and stored in memory. Then, when s.pop died out, she’d be restored from memory rather than from disc. Mutations would happen unless the population was within a certain size range. Once it was all ready and as tested as I was willing to bother with, I let er rip.
Continue reading Think I was trying for the wrong thing.

Solving the mutation problem

This might solve everything. I’ll need to do some testing to make sure I’m right, but there’s a beautiful way around the mutation problem.

It’s not the type of mutation; it’s the type of population. We’ve got two main types: the quick and the slow. The quick ones, like m1.pop, do their best to fill up all available space and to make new figures as quickly as possible. The slow ones generally find a particular population size, and stay there, no matter how much more room is available; and they only make new figures slowly. I’ve said several times, and it turns out to be true—speed isn’t everything.
Continue reading Solving the mutation problem

Zombie code

I’ve come up with a mixed bag of modifications to my artificial life system. I’m trying to get my digital creatures, which I call “figures,” more stable, quicker to emerge from randomness, and better able to tolerate mutations. As far as quicker emergence and greater stability goes, the tricks are working out. The system as gone from requiring multiple runs of 8 to 12 hours each, just to generate one stable population; to a system that can make a stable population consistently in less than 15 minutes, usually less than ten, and often less than 5. As far as tolerating mutation goes, it still isn’t any better. One single mutation is still enough to kill off the entire population, no matter which trick or combination of tricks I use.
Continue reading Zombie code

Two entries from my project journal

22 :: Sunday September 2, 2018

I need to jot this down before I forget.

I only just yesterday got the fat ports to work. I’d been calling inner write on the baby figures before they were added to the realm. That meant there were no trackers connected to the baby figures when their safe random method got called. All that time, I was just running the system more or less like the fat ports weren’t even there. Once I fix that, it ran like a dream.
Continue reading Two entries from my project journal

Searching for a kinder gentler mutation

I spent a couple of weeks testing a notion I had. I’m not going to bother explaining—it would take too long for something that I’m not going to use. So far as I can tell, what I did to try and increase the system’s stability made it even more fragile. For example, with the usual approach, as few as 5 mutations have wiped out an entire population. With the other method, what I called snapcom, the one I’m tossing out the window, one mutation was enough. I gathered some statistics, but the results were inconclusive. Still, even if it is somehow performing better, it’s not enough better.
Continue reading Searching for a kinder gentler mutation

Now that’s evolution!

Remember six? She’s a small population of the digital creatures I implemented, called “figures.” Six has a population size of 6, thus the name, and no matter how much room there is, no matter what the maximum population size happens to be, she always has a population size of 6 figures. Meanwhile, each figure will make one copy of itself and then die. There’s a constant stream of figures being born and copying themselves and dying, but the population size never changes/ it’s always 6.

I put six in a larger world. There was enough room for 200 figures. As expected, she still stayed at a 6 figure pop size. Then I started mutation.

Like I said in the last entry, the mutations are nasty, and often kill off an entire population. If that happened, six would be reloaded, back where she started before all this “mutation” business started going on, and do it all over again.

The notion was to see if six could evolve into a population that grows, instead of just holding steady. I set it up so it would beep at me when the population size reached 200, and pause the system so I could take a look at what six had become. I had no clue how long the experiment would run, or if six could be mutated into a growing population at all. I was all set to leave it running in the background while I did any&everything else.
Continue reading Now that’s evolution!

Messing with messy mutation

I’ve been experimenting with mutating some of the populations I had saved. To do such experiments, I had to implement mutation in the first place. I got the first form of mutation implemented on Tuesday night. It had been an interesting and long day, so I climbed into bed, ready to start experimenting in the morning.

I spent months doing all this very careful coding, keeping things as clean and well documented as I could. That was to implement the core system. Then I set it up so that the downstream programmer, which has been just me so far, could be as quick and dirty as they like. I can be as sloppy as I want, just hack things together, and the core system stays safe.

All that preparation is paying off. Implementing the first form of mutation didn’t take much more than half an hour or so. That’s good, because it meant that the next form of mutation was just as quick and easy to create. And that’s good, because the first form was far, far too deadly.
Continue reading Messing with messy mutation

Playing with populations

For once, there are no bugs to report, or fix. There are some utility methods I should add, and the perennial chore of updating the documentation. All that is all well and good, and I’ll get it done well… or good. However, since I can, I spent a few days just playing with the system and some of the populations that have been generated.

Let me introduce you to some of the populations.
Continue reading Playing with populations

An experiment is running while I write this.

A couple of bugs delayed me for about a week. Once those were fixed, setting up the experiment was easy. I did that yesterday, along with cleaning up some sloppy code. I did a test run and ended up with a stable population. I haven’t seen that many of them since I increased the population size, so I was glad to see it.
Continue reading An experiment is running while I write this.