Playing God

Ovid on 2004-04-12T17:57:49

So far the work with the synthetic ecosystem is going well. The fixed version of my program has been running for a couple of days and working marvelously (as far as I can tell).

I currently have AI::Life::World, AI::Life::Plant, AI::Life::Agent and some helper modules. It turns out that converting a rather large procedural program to a properly designed OO system is tough. Once my initial refactor is done, I'm going to have to start digging into the Agent's brains. Currently, their brains are hardwired to only recognize things in their current environment. If I add more types of things, improve how their eyes work or give them different actions they can perform, their brains won't pick up the changes. I'm going to have to have the neural networks designed on the fly or else no one will have any use for the darned thing. I'll probably have to allow for custom neural networks for different types of creatures. A cow would not try to fly, for example.

Eventually, I hope to get it to the point where people can custom design animals and see how well they survive against others. I think I have a lot of work in front of me.

Side note: the other day, a friend of mine and I were walking along and discussing strategies on improving the system. I commented "... but I accidentally severed the nerves to their eyes ..." Heads turned, I tell ya.


You might find SIM_AGENT interesting

Adrian on 2004-04-12T18:57:48

You might find simagent of interest. Not in Perl, but all the source is available. You'd have to have a box to get Poplog up and running on too.

(disclaimer - many years ago I used to be a Poplog developer, and Aaron Sloman the simagent developer was once my boss :-)

Re:You might find SIM_AGENT interesting

Ovid on 2004-04-12T19:16:33

Wow. Lots of stuff there and clearly better than what I am doing (duh!). I see right off the bat that the neural network is far more sophisticated than mine. I have a simple two-layer network that learns by sometimes mutating during reproduction. If the agent survives, the network is "smarter."

Unfortunately my system runs rather slowly since it's pure Perl, so there are limits to what I can extend. Still, once I get things running smoothly, I'll see what I can do for performance tuning without having to drop to C and then see what ideas I can crib from simagent.

Hmm ... maybe it's time for me to start eyeing Parrot for some of this.

Parrot Simulations

chromatic on 2004-04-12T19:34:08

Wait until Thursday for that.

Re:Parrot Simulations

Ovid on 2004-04-12T20:08:09

Thursday? You're giving a talk on Wednesday. Is there something I'm missing?