
Darwinia in reality
Moderators: jelco, bert_the_turtle, Chris
I know a fair bit about AI, and I can offer you free hosting. For some reason I think it would be a great idea if you emailed me. prophile@onlink-mod.net
Well Its nice that everyones trying to bury me in free webspace and I may take you up on it (soonish) but I really need experienced programmers.
Thanks to prophile, I'll email you but don't forget that I'm not building an AI- just an AI environment (although when I'm finished...).
Edit:: I like your avatar prophile
Thanks to prophile, I'll email you but don't forget that I'm not building an AI- just an AI environment (although when I'm finished...).
Edit:: I like your avatar prophile

GENERATION 22:The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.
- Wet_Flannel
- level2
- Posts: 84
- Joined: Sat Jul 17, 2004 11:11 am
- Location: In a tree somewhere ... i think
- Contact:
The project is simple enough that you should be able to easily get it started yourself.martin wrote:Well Its nice that everyones trying to bury me in free webspace and I may take you up on it (soonish) but I really need experienced programmers.
Thanks to prophile, I'll email you but don't forget that I'm not building an AI- just an AI environment (although when I'm finished...).
Edit:: I like your avatar prophile
Experienced programmers are not going to work on a project started by an unknown - and thus unproven - individual. It could end up becoming vapourware.
If you want help, get a working tech demo together, licence it under the GPL, and then throw it up on SourceForge. If programmers find the program has merit, they will likely contribute code.
- Wet_Flannel
- level2
- Posts: 84
- Joined: Sat Jul 17, 2004 11:11 am
- Location: In a tree somewhere ... i think
- Contact:
OK, for the purposes of this post I'll be writing in pseudo-code.
To start off with-
Assuming you are going to produce your own 3D-environment, I suggest creating a set of models for different things would be a good idea. So create a source file
Then - assuming you have the 3D environment already coded -
Similar to Amiga, you have a 'code' variable. This contains a set of actions, seperated by a new line. It's "brain space" if you like is the array called registers. So you have an action to turn a degree to the left, an action to check for other entities around, an action to create space for another entity, an action to copy the code, an action to seperate the new entity etc. Each time code is copied to a new entity there is a chance of one of three kinds of 'Mutation' - a line of code may be added, changed, or deleted. This causes variation. Where the variation goes wrong, the entity dies before creating more entities in the same pattern. Where it is right, more entities will be created with the new or modified code. So you start off with three of four entities you create yourself and let mother nature direct how the rest goes. The model used can be changed, as can the height, width, and length of the model for variation. You could easily set it up to have variation in colour too. And of course things will have a maximum age and will add a year to their lifetime every set value of time allowing you to have it going quickly when you're not around and watch the AI when you are. If it's in a 3D environment like Darwinia you could even have resources like food where entities eat other entities or have to drink and fight over territory.
Anyway, just my 2¢.
To start off with-
Assuming you are going to produce your own 3D-environment, I suggest creating a set of models for different things would be a good idea. So create a source file
Code: Select all
class Model
{
int model_id;
string model_file;
void model(string filename);
}
void Model::model (string filename)
{
global models;
this->model_file = filename;
this->model_id = count(models);
globals[] = this;
}
array models;
global models;
/* Create the models */
new Model('person.shp');
new Model('dog.shp');
Then - assuming you have the 3D environment already coded -
Code: Select all
class entity
{
int entity_id;
array registers;
int selected_register;
int entity_model;
int model_length, model_height, model_width;
int age, max_age;
string code;
int x, y, z;
}
Similar to Amiga, you have a 'code' variable. This contains a set of actions, seperated by a new line. It's "brain space" if you like is the array called registers. So you have an action to turn a degree to the left, an action to check for other entities around, an action to create space for another entity, an action to copy the code, an action to seperate the new entity etc. Each time code is copied to a new entity there is a chance of one of three kinds of 'Mutation' - a line of code may be added, changed, or deleted. This causes variation. Where the variation goes wrong, the entity dies before creating more entities in the same pattern. Where it is right, more entities will be created with the new or modified code. So you start off with three of four entities you create yourself and let mother nature direct how the rest goes. The model used can be changed, as can the height, width, and length of the model for variation. You could easily set it up to have variation in colour too. And of course things will have a maximum age and will add a year to their lifetime every set value of time allowing you to have it going quickly when you're not around and watch the AI when you are. If it's in a 3D environment like Darwinia you could even have resources like food where entities eat other entities or have to drink and fight over territory.
Anyway, just my 2¢.
Wo, the first actual real contribution from someone. Thanks.
This is slightly different from what i'd planned. There are no genetics in the system as you seem to be proposing, the onlt thing that evolves in my planned system is the neural net which grows and expands all the time. The body is of no importance. Thanks prophile (the man with the cool avatar
)

This is slightly different from what i'd planned. There are no genetics in the system as you seem to be proposing, the onlt thing that evolves in my planned system is the neural net which grows and expands all the time. The body is of no importance. Thanks prophile (the man with the cool avatar

- Wet_Flannel
- level2
- Posts: 84
- Joined: Sat Jul 17, 2004 11:11 am
- Location: In a tree somewhere ... i think
- Contact:
martin wrote:Umm, er, well... Umm. You see, its well.. er... not a mod?
What is your major malfunction? Did you bother to read the rest of this topic? Do you think before you type? Gah!
xander
Last edited by xander on Tue May 24, 2005 10:07 pm, edited 1 time in total.
Unless you have taken differential calculus (or are willing to learn off the internet), don't bother trying.martin wrote:I know a neural net will be much harder to engineer but it'll return better results. I'm going to work on building the neural net before the graphical environment.
The most common neural net training algorithm is backpropagation. It requires you to derive the square of the sum of the error in each output node for an iteration in relation to the weights in the net.
Who is online
Users browsing this forum: No registered users and 2 guests