Archive for August, 2008

Now for a change of pace

Saturday, 30 August, 2008

Several necessary modifications have been made to the AI plant script, and the plant has once more been launched in the XorLabs ecopod.  For a while we at the XorLabs group will watch as it spreads (we hope) throughout the ecopod, and will post the modified script later.

For now, we are going to shift our efforts to an exciting new project known as OpenSim.  Some very creative folks are working on this new open source virtual world application.  Several people active with .NET in Second Life are involved, and apparently Microsoft is interested enough to put a couple of its programmers on it full time as well.

It is possible to download a copy and get it running on your own computer, then link it to instances of OpenSim running on other computers.  Our efforts are going to be directed to getting an instance running on our own computers and learning all about it.  Once we feel that we are sufficiently familiar with it, we will be launching an instance on the internet and experimenting with linking with other versions already open and running.

Now the interesting thing about this application is that once a copy of it is running on some processor, and is linked to other existing instances, it will be possible to have your avatar move around from one instance of OpenSim to the other.  Also, it has been demonstrated that an avatar can, under appropriate conditions, migrate between Second Life and a running version of OpenSim.  This opens up worlds of possibilities (pardon the pun) which we hope to exploit.

The next several entries will be devoted to the trials and tribulations of learning about OpenSim, and getting it running on one of the computers on our RL network.  Stay tuned, we think you are going to like this!

The testing continues …

Saturday, 23 August, 2008

The first AI plant was allowed to run for several days. While it was observed to be growing on schedule, it never spawned any seedlings. A thorough examination of the code for the plant showed some errors which had been overlooked before, and the script was modified accordingly. The original plant has been deleted, and the edited script is going to sit and mellow for a day or so, after which I will go back to it and give it the once over before launching the plant again.

By now there have been several errors in the original code, a link for which was provided a couple of posts back. As I said, there was no evidence that it would run as it stood, and now there is quite a bit of evidence that it would not. The script won’t be posted again until it has been verified that it is working. For now, what was posted in the previous post will be a good exercise for budding LSL scripters to find all the errors. Happy hunting!

The First AI Plant Is Now Running

Wednesday, 20 August, 2008

Strip debugging of the code referenced in the last post has resulted in several problems found and fixed. The modified code will be published probably during the coming weekend. With the fixes in place, the first plant’s script has been started. The plant is growing as expected, and should start to propagate early Friday morning. We hope to have a picture in the next post of the plant together with the seedlings it has spawned.

It’s here, sort of …

Saturday, 16 August, 2008

Before we get started, I just want to say, “Thanks AlexM.  I appreciate your comments.”

The LSL script for the AI plant now has a completed first draft, which can be seen at this location.

The emphasis here is on “first draft” and there is no guarantee, or evidence, that as it exists it will work properly. It will undergo strip debugging during the next day or two, then testing will start. On that note, perhaps it is time for a little editorial commentary.

I’m Ingemar Zenovka, the founder of the XorLabs Research group in Second Life, and the one of our group who writes this blog. For quite a while now I’ve been doing software development for a living, but that is just about to change. Starting Tuesday of next week I start to work for a company whose principal responsibility is maintaining a great deal of the electric power grid in this State. Although my title is going to actually be Programmer Analyst, the work is going to primarily be specification and system integration of existing software packages, and helping to keep the part of the company’s massive computer system our group has responsibility for running properly. In other words, no more software development for a paycheck.

I won’t miss software development, because I won’t stop doing it. I’ll still be turning out all sorts of applications, some of which will be the topics of this blog. But it is unlikely that anyone will be putting a paycheck in my hand after this for actually creating lines of code.

The reason for this change is that the bureaucrats and paper pushers have just about sucked all the fun out of software development in the corporate world, with moronic things like The Agile Process, unit testing, UML, coding standards, etc. These pinheads have no understanding that programming isn’t science, technology, or bureaucracy. It’s an art and can’t be done effectively by robots.

The point of this is that the plant script is not going to be debugged in the manner prescribed by the so-called “Software Engineers”. It’s going to be done by spending a very long time looking at the code, running it through my mind and finding the errors, if there are any. It’s a much better way.

Ok, bitching’s out of the way. The next several blog entries will detail any problems that had to be fixed, and describe how the field of plants seems to be growing and spreading. After that, it will be time to get the bugs and the bug script running.

Excuses, excuses!

Sunday, 10 August, 2008

As you can see, more about the plant and script was not forthcoming this past week.  There is Tropical Storm Edoard to blame, and a bit of laziness as well.  You often see the use of “we” in these posts; that’s not the Imperial We, it is just that I am speaking for the XorLabs Research group on SL, and your’s truly Ingemar Zenovka is the one doing all the writing here.  Anyway, there has been some progress on the script, and with a bit of luck we should be up and running in the next week (where have I heard that before!).

And now, the first AI plant

Saturday, 2 August, 2008
Genus Aiplant, species GridGrass

Genus AiPlant, Species GridGrass

It’s our first leaf of grass, or maybe it’s a weed. In any case, it is a single prim, phantom and physical. That was the easy part. Not much effort was used to make it artistic, as the real effort will be in the AI script. Besides, if this thing is to multiply, we don’t want to over run the parcel’s prim count. Remember, we are eventually going to have bugs as well.

The script is going to require several elements:

  • Some means to manage its life span, including reproduction and life span.
  • Some means to provide food to the bugs when they are introduced.
  • Some means to receive parameter information.

The past several posts have pretty well covered the last element in the list. We’ll talk a bit about the first two elements in this post.

Being a plant, it is going to have to sprout, live a particular time, then die. During the course of that life, it will have a processing cycle, attending to its various life tasks each time through the processing loop. In the earlier part of its life it will grow somewhat, and towards the end of its life it will start to turn brown, die, and hence disappear. It will require another object to effect this life cycle, and that will be a seed. The seed will be quite small, and will be contained in the plant’s inventory. When the plant reaches the point of spreading its seed, it will place a copy of itself into the seed’s inventory then expel the seed. The seed itself will have a relatively simple script as well, being responsible for simply rezzing the plant in its inventory then deleting itself. The new copy of the plant will then proceed on its own independent life cycle.

Just in case there are still some of the uninitiated among you, “rezzing” is the Second Life term for pulling an object out of inventory and making an instance of it appear in the virtual world.

The plant will have a certain store of energy, simulating drawing sustenance from the soil. Being a living thing, it will become progressively less and less able to do this during its life, whereby its energy store will dwindle until it dies. Bugs feeding on it will tend to hasten this process as they draw their sustenance from the plant. The feeding process will be an adaptation of the protocol used in the ecosystem of the Second Nature 3 sim. Since there will be only one species of plant, and eventually one species of bug, that protocol can be simplified a bit.

A plant will be initialized to listen on a channel derived from its key. The uniqueness of the key will result in each plant listening on a unique channel. Bugs will start roaming around the ecopod, using the cyclical sensor function to detect nearby plants. When a plant is detected, the bug will get the plant’s key, and use the same algorithm the plant uses to derive the channel number. The bug will then send a message to that plant requesting energy, and the plant will respond. The plant loses a bit of energy, and the but gains some.

Now comes the hard part. An ecological balance must be maintains so that the bugs don’t multiply so fast and eat so much that the plants are all eaten up[. However, the bugs must multiply at a rate to sustain their population. Both the plant and bug population must be in balance. Parameters in the bug and plant scripts will have to be adjusted to maintain that balance, and that will have to be done experimentally over a period of time. An enhanced version of the XML-RPC application previously described will periodically transmit adjustments based on how our bug and plant population progresses.

The plant and seed scripts should be ready sometime next week, and we hope to start the plants reproducing. Our next post will have the details of these scripts.