Skip directly to content

artificial life

Biomorphs I

on Wed, 06/09/2004 - 00:00

Here is the first round. Click the movie to (re)run the experiment.

Less Play, More Build

on Tue, 06/08/2004 - 00:00

So I was playing Diablo II last night for the eighty-twelfth time and I decided it was past time to stop playing games eighty-twelve times and start building them instead. To that end, I am slowly gathering together notes from the past couple of years when I have really *meant* to start building games, along with various books on the subject, notes and code from the Adventure Game section of this site, and printouts of the source code from completed games, written in BASIC, and played to death on my old Commodore-64, twenty (egads!)years ago.

But my ideas have evolved over the past couple of years, and I have been playing around with artificial evolution and exploring the possibilities therein.

And I have discovered something.

I have spent over half my life playing adventure/role playing games of various kinds. The object of these games is to make your character more powerful, usually by earning points of various kinds and using them to enhance one or more out of a broad group of possible characteristics.

In artificial evolution experiments, particularly in things like biomorphs , the chromosome starts out simple, then gradually increases in complexity as more and more generations are born.

The characteristics of an RPG character can be considered genes. The genes used to describe a biomorph can be considered characteristics. The points used to advance a character are analogous to the increasing complexity in an evolving organism. The only real difference is, the biomorph is Darwinian evolution, and the RPG character is Lamarckian.

In other words, level advancement == increasing complexity.

Knowing this, why not simply create a gene pool from which can be created a near-infinite number of creatures? Evolve the genotype, rather than building the phenotype! Keep things from getting out of hand by defining what proportions of one group of genes to another makes a critter an animal, a plant, or a whatever is needed to fit the storyline of the game. Need more variety? Make the chromosome larger! Need the game to be science fiction rather than fantasy? Change the code which interprets the chromosome, create some new graphics, and now you have a near-infinite variety of robots.

Once the genotype and phenotype engines are completed, the user can play God or Nature and go in and modify a specific instance of the chromosome to create a specific creature. Mutations of this creature can then be created to suit specific needs.

There. Now that my big idea is made public, I need to start building something.

Notes on Artificial Life

on Mon, 02/16/2004 - 00:00

To model artificial evolution chromosome for chromosome is impossible. We would have to have an operating system create random strings of digits and try to run them all, and then build upon the successes; e.g. those strings which will perform some function within that hardware.

Instead it is more useful to begin the modeling at a level of sophistication where the beings' interaction with the environment is obvious - when the being is mobile. Mobility is perhaps the fundamental interaction with the environment; the key word there being "interaction". Awareness of the environment is tricky, as it assumes a certain level of self-awareness: "I am not that within which I exist." Interaction and awareness are not quite the same thing.

Interaction begins when there is more than one autonomous being with an environment: There is a thing here which is demonstrably not "I".

Therefore, in modeling interaction, there seems at the moment to be three levels: awareness, regognition, and reaction.

Awareness: there is a thing here which is not-me
Recognition: that thing is of type "X"
Reaction: X is friend/foe/food

...and perhaps there is some resonance between recognition and reaction.

This begs the question: is existence a pre-requisite for awareness? Is the chain:

Existence - awareness - recognition - reaction?

The answer seems to be "yes", for (in the realm of AI/ALife) a thing must exist before it can be made aware of any other thing. And it must be aware of a thing for it to recognize that thing. And it must recognise a thing before it can react to that thing.

And here we must make a distinction reflex action and re-action. The action of X is its existence/proximity, and it is to that which I am re-acting.

In modeling an entity we can approximate Awareness with a simple distance calculation: You are this close to me, therefore I am aware of you.

Recognition requires a more refined set of senses, say, sight/smell/hearing. This can be another distance calculation, or combine distance with (say) sight in a particular direction.

Using this as a beginning allows us to add a great many modifiers onto the base behavior:

  • fight/flight
  • arbitrary reaction to different Xs
  • different senses
  • - some senses broadcast (sight) - active
  • - some senses receive (smell) - reactive
  • reflex (pre-recognition) actions at different levels

This brings up another question: Does a thing actively broadcast its existence or do other things become passively aware of its existence?

Could be some of both; call it "signalling".
Active: noise, colors
Passive: smell, body heat

...all of which allows different senses to react to different stimuli at different levels. It also suggests a slight change to the structure of awareness:

Exist -- ?
Awareness -- Reflex
Recognition -- Reaction

This is a good starting point; the rest is just code.

Math Anxiety

on Tue, 01/15/2002 - 19:00

After two days of being STUPID I fixed the math on the flocking experiment and now have bugs facing the direction they are flying. Aren't they cute? When they get in formation, imagine Ride of the Valkyries playing in the background.

In two days I and a group of friends are off to the Astronomical ConFusion science fiction convention in Warren, Michigan. This will be my second Con; the first was WindyCon in Chicago in November of 2000. As we were drinking breakfast on that Sunday, the lovely and talented Christian summed up the entirety of geekdom as follows:

"You look at these people, and you see that some of them, this is the one time a year they get to cut loose and be freaks, no judgement, just a weekend of good fun. Then there are those people, you look at them and you just know, they will spend the rest of their lives pumping gas in a crushed velvet cape and pointy ears."

Mmmmmmmyep.

I dove into the memetics book again today, discovered some interesting things, but I am too tired to think about it right now. Maybe I will post something tomorrow while I'm cleaning off my prosthetic Klingon forehead.

Playing Catch-up

on Mon, 01/14/2002 - 19:00

You know, sometimes I feel I am developing a good understanding of programming, and the kind of thought necessary to develop AI and Alife. Then I come across a site like this , and I realize how little I actually know about Artificial Intelligence, Artificial Life, and now Artificial Evolution.

I haven't had much time to work on my personal projects the last few days, and I will probably have even less time over the next few weeks. Such is the nature of internet work. Several months of little or nothing to do, followed by two months of frantic activity. At least I get to work on cool projects.

The flocking experiment I posted Sunday needs a lot of work. The math is all wrong, and, while the effect is interesting, it is not at all what it should be.

I ordered two more books for my library... Metamagical Themas: Questing for the Essence of Mind and Pattern and Fluid Concepts and Creative Analogies : Computer Models of the Fundamental Mechanisms of Thought , both by Douglas Hofstader, whos brain is Very Big.

Also in the Big Brain department is Golan Levin who makes math beautiful.

Pages