Mailing List |
Dave Kerr's Projects
Dave, I would like to thank you for the opportunity to interview you for biota.org. You are one of the contemporary stars of Alife development and it is great to get your insight into modern Alife.
Thanks. It's an honor to be called that.
Can you give some background to your development of AIPlanet? What inspired you to develop AIPlanet?
It all began while I was working at my trucking job. My co-workers always wondered why I was carrying notepads around. Long trips driving trucks across the countryside gave me lots of time to think. I started imagining what it would be like to have an intelligence that learns based on its environment.†I started out with that goal in mind and quickly got side-swiped by all the possibilities of 3d graphics, which I had never developed with before. I decided to make a world that would be the home for my artificial consciousness.†A being that had no specific AI code but would learn/adapt and communicate with each other, and cooperate with each other to survive. Unfortunately I didn't finish that part of it yet... It's hard!
AIPlanet is open source. Could you give some insight into the components you used to develop AIPlanet? You used SourceForge and other open source resources. What benefits did this give you? What were some of the downsides to this kind of development?
SourceForge is great for managing a project.† Without it, I doubt anyone would have been able to contribute to AIPlanet at all!† I used Open Source tools such as GLScene for 3d graphics, an excellent library.† Having anyone being able to access the code, and see it updated as I was working on it, really spurred me on to keep developing.† It also gives me comfort to know my code won't be lost in a hard drive crash, and that its online for anyone to read and model their own logic or learn from.
Downsides - you donít get that professional sheen that comes with tons of cash being thrown at development.
Biota.org's Bruce Damer referred to AIPlanet as ''Alife's walk of fame''. When you were creating the multi-organism, multi-movement idea backbone to AIPlanet what were your driving motivations?
I wanted to create something that would be very object oriented. If one bird would work, then voila, 1000 more birds would work too! I designed everything around this principle, and it worked out very well. It's not complicated, I tried to avoid complex designs and crazy formulas. It's the complexity that arises naturally from an interaction of many simple things that puts a smile on my face.
AIPlanet was aesthetically stunning. What inspired you to create such an environment? What were some of the factors that you wanted to show?
I started out experimenting with a 3D world, and was fascinated by how you could see objects on one side but not on the other.† I wondered what would happen if you stayed on one side for a long time ... and adventured on to the other side, what would you see?† I liked watching the sun rise, birds flying around, and rivers.† It was very tranquil and relaxing, like having nature in the city.
The main idea I wanted to show was a principle of complexity from simplicity, and how seemingly unrelated objects can symbiotically help each other. Take the case of birds and trees, where a bird eats the fruit of the trees. This seems like a one-sided relationship favoring the bird, but the tree benefits because the bird would distribute the seeds around to islands where the tree could not.† Thus the trees can spread to islands, but only with birds, yet the birds have no coded logic or goals of helping the trees.
The relationships of various environmental forces also fascinated me. By having a simple tension system I could create flowing rivers, sun heating to form humidity, which would lead to clouds, temperature differences in the air would create wind vectors, moving the clouds, then clouds would rain to make ponds, etc.† It really made it feel like you were in a world where things were affecting each other, instead of everything being scripted by the developer.† Although, the longer you spend with AIPlanet the more predictable the world becomes.
From a programming language standpoint, your universal use of Delphi in your development sticks out. What characteristics does Delphi have that lends itself to Alife development?
The main reason I used Delphi was because the code is very easy to read, and I had just been taught how to use it by my mentor Russ Paddington. It's almost like writing in English.† I wish it were more universal though, I never chose Delphi really, I just found I was getting more done with it faster than with anything else.† My background is solidly in C/C++ so I realized the inborn resistance to anything Pascal related. The one major drawback to Delphi is it lacks multiple inheritance.
You are working on a new project now, AIR. Can you give some background to this new development?
This new project is quite similar to AIPlanet, although you cant tell by looking at it.† I took all the AIPlanet code and rewrote it into a design that is more streamlined and easier to maintain.† I put an emphasis on making development easier, because with AIPlanet I ended up with one giant file to control all the graphics.† Thats the main reason I stopped developing... that file is just too big and messy to work with any more.
I've since separated this out and adding a new creature/object is really easy with AIR.† There is no giant file, everything is compartmentalized. I've also made multiuser network an integral component of AIR. I'm working on that right now, and it is coming along well. Like everything its abstract enough so that any object is updated over the net, and any object can be controlled by a client (if the server lets it). AIR will be used to build the next generation AIPlanet, if everything goes according to plan!
As with AIPlanet, your development speed is very prolific. Within a short period of time you have added a number of new features. What inspires you to develop so quickly?
That's kind of you to say so.† Personally feel I develop quite slow! A lot of the time I'm stuck on a problem that may take days to solve, but only a moment to fix.† I stick to an abstract design philosophy, that I can take what I've built and make it become more than what it was, so once a feature is done, I can multiply it into a dozen features. I focus on getting the fundamentals solidified before getting to the fun stuff.
In life, I tend to do things in phases.† When working too long on one area, I get bored, so I wander off and focus on something else, like music. Then when I come back to coding, I'm invigorated and productive, and can approach problems from a fresh angle!
What are your plans for the future with AIR?
I faced a sobering reality with AIPlanet. I really thought it would help me find a job, get into university, or maybe have investors interested in funding to make a commercial product. I was way off! With AIR I donít have those same dreams. It's just a hobby now that I can work on whenever I have free time. AIR will have some unique features that will make AIPlanet more exciting.
Servers will be able to add new creatures without the client having to download and install anything. Users can travel from planet to planet by clicking on stars in the sky that represent other servers. I donít want to give away all my best ideas too early, so I'm saving them for a surprise.
What is your sense of the broader Alife community?
There are a lot of smart people working on Alife and doing things that blow my mind. I got kicked out of University of Calgary for proposing AIPlanet as my project, and having AIPlanet on my resume seems to have become some kind of inexplicably bad thing, so you could say I've gone a little pessimistic of the professional community.
Alife is one of those areas though, that no culture seems to consider worthwhile, except the Japanese. Maybe I should move to Japan.
What more would you like to see with the Alife community?
Better graphics!† I can only imagine what AIPlanet would look like with todays modern graphics.
I would love to see more ALife-related entertainment apps.† Black+White and the Sims come to mind, but I think if a team of people were working on a game focused on ALife, it would be very fun and popular. I see Alife as a thing that an artificial consciousness could learn from in a game world, travelling from world to world over networks, experiencing new Alifes on new worlds, learning and predicting them, etc.
In the Open Source world, one day I think we will see a project thatís a soup of all the best AI and Alife formulas, all interacting, cooperating, and competing with each other.† I think an artificial consciousness could use a similar approach in its brain, taking many formulas in a soup and applying them to inputs, finding the formulas that give the best environmental predictions, and creating new thoughts by substituting complex human formulas into its logic chain, formulas it could not have come up with on its own.
I'd like to see more part-based Alife, where creatures are a collection of interacting objects that build themselves into a whole.† For this reason I donít see the creatures on AIPlanet as a true Alife, if you look closely at each individual creature, it is very fake.† The fish are very stupid and die trying to get food thatís on the land (although at one point they worked well, but I botched the code somewhere before the final release). Ultimately though, AIPlanet is Alife because of the overall interaction of everything, which creates the illusion that this virtual ecosystem on your computer is alive.
Any final thoughts?
AIPlanet hasnít been updated in over two years.† Yet there are 3000-5000 page hits every day. I have no idea who these people are or why they are interested in this old project. Heck after my graphics card died, I couldn't even run it for a year.
I got a new computer though, and when I run it today I notice dozens of little things that have changed so that it doesnít run like it is supposed to (sound, camera control, keys, etc). All the underlying Open Source components have changed so much, it was a miracle just getting it to compile.
The next generation of AIPlanet will improve all that. If someone doesnít build it first. I am saving up my money to buy graphics so that the world looks more colorful and beautiful.
I plan to start development of AIPlanet 2 this summer.
Many thanks for the opportunity to talk with you.
The interview was taken by Biota.org's Tom Barbalet via email on December 21st, 2005.