Darwinbots Forum

Bots and Simulations => Bot Tavern => Topic started by: Boris of Quirm on November 25, 2005, 10:02:33 AM

Title: Multibot Vegetable
Post by: Boris of Quirm on November 25, 2005, 10:02:33 AM
I am in the process of designing a veggiebot that will grow in a similar fashion to a basic plant, but I was wondering if anyone has tried this before.

My current plan is to assign a value to a cell that determines whether it is a root, stem, leaf, flower or seed.  This will be done at birth and governed by who the parent is.  I am still working out the logic for this but will post my progress here as it developes.

The end plan is to have a multibot that passes food through it's roots and leafs into the rest of the plant.  A seed is then produced by the flower and this seed can then attach itself to a passing 'animal' where it can grow until it is big enough to become a stem, produce it's own root and start the process again.

If anyone has any suggestions/hints/tips/ideas/etc. they will be gratefully recieved.
Title: Multibot Vegetable
Post by: Numsgil on November 25, 2005, 11:27:34 AM
Multibot programming is notoriously hard, generally because it's difficult to create the structure you need to program a bot, both in the DNA and in the structure of your multibot.

However, if you're willing to experiment in 2.4, you can use the *.timer to help bots decide what they're supposed to be.

*.timer is incremented every cycle, it's value automatically passed on to children, and modifiable by a bot.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 25, 2005, 11:43:31 AM
Thanks for that, I may give that a go.
Title: Multibot Vegetable
Post by: PurpleYouko on November 25, 2005, 01:02:45 PM
In 2.37 you can simulate this with any memory location you like. Just have a gene that increments the timer on each cycle.

Also use *.robage to determine the steps to take during the bot's first few cycles of life, or to tell it when to enter a new phase of development.

There are many ways to do this kind of thing and they are all complex but doable
Title: Multibot Vegetable
Post by: Boris of Quirm on November 25, 2005, 02:57:31 PM
I have come up with a basic plan of attack for developing my plant.

It will take place over several versions each one slightly more complex than the last.  Initially I will not be concerned about how the bot reacts to attacks or reproduces.

[you]Version 1 - The Basic Plant[/you]

The bot has three cell types - a stem, a leaf and a flower.

A stem is the only part of the bot that can reproduce.  It can by tied to a maximum of 4 other cells.

A leaf is denoted by spinning to the left (anti-clockwise).

A flower is denoted by spinning to the right (clockwise).


[you]Version 2 - Defences and food distribution[/you]

As version 1 and :-

Stems now produce shell each turn.  This is similar to a tree producing bark.  The older a stem cell is the more bark it will have.

Leaves now pass some of their energy into the stem cell they are attached to.  They also produce poison each turn.  This will be a poisonous plant!

Flowers draw energy from the stem cell they are attached to.


[you]Version 3 - Reproduction[/you]

As version 2 and :-

While they are spinning, flowers now look for bots that are not part of the plant.  If they find one they attach to it and detach from the plant.  They now turn into a seed.

As a seed they remain with their host for a number of cycles after which they detach and turn themselves into a stem cell.

The whole growing process can now start again.


These versions are subject to change and other versions may be added at a later date depending how well these work.  Suggestions are welcome.

My goal is not to worry too much about what's eating me, as I am trying to develop a working model of a plant.

The pseudo code for version 1 will be posted up here once I have finished it, followed closely (hopefully ;) ) by the DNA.
Title: Multibot Vegetable
Post by: Numsgil on November 25, 2005, 03:10:31 PM
Sounds really intriguing, I can't wait.  As your programming it, if you run across something you wish the DNA did that it doesn't (for isntance, nested conditions) take note of it.  One of my current pushes is to make the DNA language more intuitive and robust to both human programmers and evolution.
Title: Multibot Vegetable
Post by: PurpleYouko on November 25, 2005, 03:25:35 PM
Bear in mind that once the ties harden then rotation will not be possible.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 25, 2005, 04:21:01 PM
Didn't know that about ties.

How long does it take for the tie to harden?
Is there a way of checking to see if the tie is hard or not?
Title: Multibot Vegetable
Post by: Numsgil on November 25, 2005, 04:57:42 PM
*.multi is 1 if the bot is part of a multibot (and hence at least one tie has hardened), 0 otherwise.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 25, 2005, 05:03:32 PM
That should be ok.

The cells in version 1 are only rotating as a means of identification, so hardening shouldn't affect the overall performance of the plant.
Title: Multibot Vegetable
Post by: Numsgil on November 25, 2005, 05:07:30 PM
2.4 doesn't lock bots when the ties harden, so they can still rotate.

Just FYI
Title: Multibot Vegetable
Post by: Boris of Quirm on November 25, 2005, 05:17:35 PM
Once I have a working version, I'll compare how they react between different versions of the program.
Title: Multibot Vegetable
Post by: PurpleYouko on November 25, 2005, 06:48:50 PM
Ties take 20 cycles to harden.

I have been giving some thought to a command that keeps them flexible though
Title: Multibot Vegetable
Post by: Numsgil on November 25, 2005, 08:11:10 PM
Tie physics is at the frontier of the simulation.  Meaning we're still working out various specifics with them.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 26, 2005, 07:52:02 AM
Here is the code for version 1.

Code: [Select]
'Plant ver_1.0
'(Multi-veggie-bot)
'
'The bot has three cell types - a stem, a leaf and a flower.
'
'A stem is the only part of the bot that can reproduce. It can

by tied to a maximum of 4 other cells.
'
'A leaf is denoted by spinning to the left (anti-clockwise).
'
'A flower is denoted by spinning to the right (clockwise).


'Declare plant specific variables

'Allocate Address 50 as the identifier for cell type
def type 50

'Allocate Address 51 as a count for the number of times a stem

cell has turned
def turn 51

'End of Declarations


'Gene 1 - Allocate cell type at birth
'
'NB - Value of type can be:-
'
'1 - Stem
'2 - Leaf
'3 - Flower

cond
*.type 1 <
start
2 rnd 1 add .type store
stop

'End of Gene 1


'Gene 2 - I am a leaf
'
'Show I am a leaf by spinning to the left

cond
*.type 2 =
start
10 .aimsx store
stop

'End of Gene 2


'Gene 3 - I am a flower
'
'Show I am a flower by spinning to the right

cond
*.type 3 =
start
10 .aimdx store
stop

'End of Gene 3


'Gene 4 - I am a stem part 1
'
'I am a stem.
'I have enough energy
'I can still turn
'I can't see anything
'
'As a result I will reproduce

cond
*.type 1 =
*.nrg 10000 >
*.turn 8 <
*.numties 4 <
*.eye5 40 <
start
20 .repro store
1 .tie store
stop

'End of Gene 4


'Gene 5 - I am a stem part 2
'
'I am a stem.
'I have enough energy
'I can still turn
'I can see something
'
'As a result I will just turn

cond
*.type 1 =
*.nrg 10000 >
*.turn 8 <
*.numties 4 <
*.eye5 40 >
start
314 .aimsx store
.turn inc
stop

'End of Gene 5


end

I have only tested this on it's own, so it hasn't faced predators yet.

When a new cell is born it chooses what type it is.  This means that when you start the test then it is likely that two thirds of the cells may be leaves and flowers and not grow at all.  This will be addressed in later version, so not worried about this for now.

The cells that are stems do start growing as expected, but ties aren't working properly yet.  So although you can see a cluster of cell that has leaves or flowers on the outside, you can't actually see how the 'plant' has grown as the ties are missing, but at least this proves that the cell typing process works!  I am currently working on this and hope to have a solution by the end of the day.

I will keep you posted as I progress.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 26, 2005, 11:49:54 AM
I have tweaked the code so ties are now being made between cells.

The ties are still not working right 100% of the time.  Problem one is that the occassional cell is not tied.  Problem two is where a cell may tie itself to an existing one. This is the equivalent of a plants stem branching then growing back together.

Attached below is a screenshot of what the plant looks like when it has finished growing.
Title: Multibot Vegetable
Post by: Griz on November 26, 2005, 11:51:35 AM
B o'Q

can't seem to get the multiveg to do anything at all in ver 2.37.x ...
but in 2.4.A it seems to reproduce and tie.
I get some pretty action using your multiveg and C_Cicumgirans ...
attaching the settings.  [had to alter name to MultiBot1.0.set.txt to get it to load]
don't think all the settings get loaded in so here are the particulars:
MultiVeg1.0 starting pop of 5, energy 3000 ...
placement window upper 1/4 of screen.
C_Cicumgirans, start pop 5, energy 3000 ... place anywhere on screen.

General:
field 9237 x 6928
using seed 2005
non toroidal
veggie energy 40 nrg
50 max veggies, repop threshold 10,  1 per pop event
vegbody/nrg distribution 10%

Physics:
default stuff?
Advanced controls:
viscosity 0.01
friction static 0.5, kinetic 0.06
bang effciency 80%

I think that's it.

couple of questions:

I get reproduction and ties.
are the ties the buds and flowers of one multibot?
or do they form ties with other bots?
the robot id doesn't indicate they are tied to the parent.
I've got organisms with 12 or more ties at times ...
or at least it seems so.
how does one tell a stem from a bud from a flower?
 
anyway ...
how about including some of your settings you use
for simulations ... so I can sorta get on the same page
with you and see some of the same behavior you discover.

thanks ...
having fun just watching this simple sim. ;)
Title: Multibot Vegetable
Post by: Boris of Quirm on November 26, 2005, 11:51:41 AM
This screenshot shows what the 'plant' looks like when the cells are stretched apart.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 26, 2005, 11:56:04 AM
Griz,

I am going to post my latest plant code in the bestiary.

The cells can be three types, sstem, leaf or flower.

To see what type a cell is open the console for a cell and use '? 50'.
This will show you the value held in the location that governs type. If the value is 1 then the cell is a stem, 2 it's a leaf and 3 it's a flower.
Only a stem can 'grow' another part of the plant.
Title: Multibot Vegetable
Post by: Numsgil on November 26, 2005, 01:50:31 PM
Quote
This screenshot shows what the 'plant' looks like when the cells are stretched apart.
I'm loving this.  Try experimenting with .tielen I think it is to get the plant to space out.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 26, 2005, 02:07:18 PM
If I increase the size of .tielen will it force the child further from the parent or will both parent and child move apart?

Thinking ahead, if I run in pond mode, would I be right in thinking that the top of the screen is affected by light?
If this is the case is there some instruction that looks for the light?  By using this I can then get the plant to grow upwards.  If there isn't an instruction that does this can I suggest it for future versions of the program.
Title: Multibot Vegetable
Post by: Zelos on November 26, 2005, 02:58:16 PM
its very nice, have you tried to make it regenerateble? wich means if a bot eats up the connections between 2 parts they begin regenerate it and so on
Title: Multibot Vegetable
Post by: Boris of Quirm on November 26, 2005, 03:18:09 PM
I do have a couple of thoughts on reproduction but I was going to work on these once I  am able to produce a stable plant structure.

Current options are:-

1.  Regrowth.  A stem can link to 4 other cells and if one of these is lost, then the stem can produce another cell.  This would allow the plant to keep growing.  The new cell produced may be of a different type to the cell that was lost.  For example, if a leaf is destroyed it could be replaced by a stem and the plant could then keep growing from this new 'branch'.

2.  Reproduction.  If a flower cell can see a predator then it will turn into a seed, attach itself to the predator and detach itself from the plant.  It will then stay with that animal for a number of cycles after which time it will detach itself and turn into a stem.  This will then start the growing process again.  This mimics the action of birds or animals that eat fruit then deposit the seeds elsewhere.
Title: Multibot Vegetable
Post by: Numsgil on November 26, 2005, 03:19:25 PM
*.sun can be used to detect if the bot is within so many degrees of straight up.

It returns 1 if the bot is facing more or less up, 0 otherwise.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 26, 2005, 03:34:42 PM
Thanks Numsgil.

May save that one for a later version, once I have a stable structure.

Still playing with the ties at the moment. Once I'm happy with them I'll start looking at reproduction and regrowth I think.

With regards to reproduction, I have considered building an 'insect' bug that will feed from the plant through a 'proboscis' (tie).  This way it can 'probe' the plant to see what type of cell it is tied to, and detach from anything that is not a flower.  Once a flower is found it can feed from it.  The flower in return can give the insect a seed that can be taken away from the plant.  As the 'insect' will be designed to feed from this type of plant, it will know which address to look at to find out the cell type. (Not sure if this is supported though).
Title: Multibot Vegetable
Post by: Griz on November 26, 2005, 05:00:37 PM
Quote
This screenshot shows what the 'plant' looks like when the cells are stretched apart.
ok ... I get nothing that in any way resembles this.

of course I was using version1 of your bot.
will download the latest.
but ...
I suspect the sim settings are going to have a great effect ...
ie, max # of bots, bot energy/cycle, nrg/body ... etc ...
so if would be a big help if you could upload a setting file ...
or list the settings you used to get what you have in your pic.

I assume version 2.4.A ... correct?
they do nothing at all in 2.37.6 anyway ...
but again ... I have no idea what setting you are using.


thanks
Title: Multibot Vegetable
Post by: Boris of Quirm on November 26, 2005, 05:09:00 PM
I'm running in 2.37 and the code is shown below :-

Code: [Select]
'Plant ver_1.0
'(Multi-veggie-bot)
'
'The bot has three cell types - a stem, a leaf and a flower.
'
'A stem is the only part of the bot that can reproduce. It can

by tied to a maximum of 4 other cells.
'
'A leaf is denoted by spinning to the left (anti-clockwise).
'
'A flower is denoted by spinning to the right (clockwise).


'Declare plant specific variables

'Allocate Address 50 as the identifier for cell type
def type 50

'Allocate Address 51 as a count for the number of times a stem

cell has turned
def turn 51

'Allocate Address 52 as a counter for use during tie creation
def tiecounter 52

'End of Declarations


'Gene 1 - Allocate cell type at birth
'
'NB - Value of type can be:-
'
'1 - Stem
'2 - Leaf
'3 - Flower

cond
*.type 1 <
start
2 rnd 1 add .type store
stop

'End of Gene 1


'Gene 2 - I am a leaf
'
'Show I am a leaf by spinning to the left

cond
*.type 2 =
start
'10 .aimsx store
stop

'End of Gene 2


'Gene 3 - I am a flower
'
'Show I am a flower by spinning to the right

cond
*.type 3 =
start
'10 .aimdx store
stop

'End of Gene 3


'Gene 4 - I am a stem part 1
'
'I am a stem.
'I have enough energy
'I can still turn
'I can't see anything
'
'As a result I will reproduce and turn

cond
*.type 1 =
*.turn 8 <
'*.numties 4 <
*.eye5 40 <
*.tiecounter 1 <
start
20 .repro store
.tiecounter inc
stop

'End of Gene 4


'Gene 5 - I am a stem part 2
'
'I am a stem.
'I have enough energy
'I can still turn
'I can see something
'
'As a result I will just turn

cond
*.type 1 =
*.turn 8 <
'*.numties 4 <
*.eye5 40 >
*.tiecounter 1 <
start
314 .aimsx store
.turn inc
stop

'End of Gene 5

cond
*.tiecounter 0 >
start
1 .tie store
.tiecounter inc
stop

cond
*.tiecounter 10 >
start
0 .tiecounter store
stop


end

I start with 10 bots with an energy of 3000 and no other bots.
They are flagged as vegetables and blocked.
Also mutations are disabled.
NRG/veggy/cycle is set to 10.

As the cells randomly decide what type they are, it may be necessary for you to run the test several times before you get a stem that starts to grow to any degree.

The resulting plant should look like my first image.

In order to see the plant, pause the cyles and stretch the cells of the plant out.  Once you have opened the cells out you should have something resembling my second image.
Title: Multibot Vegetable
Post by: Endy on November 26, 2005, 05:09:34 PM
You might want to try something using .tielen1 when robage equals 1 or 0. Basically the bot can be sure of affecting the correct tie since it should only have one tie at that age.

Gotta thank Evolution for that little trick, some blind bots I made started using this to spread themselves out during their birthing cycle.
Title: Multibot Vegetable
Post by: Griz on November 26, 2005, 05:11:57 PM
Quote
Griz,

I am going to post my latest plant code in the bestiary.

The cells can be three types, sstem, leaf or flower.

To see what type a cell is open the console for a cell and use '? 50'.
This will show you the value held in the location that governs type. If the value is 1 then the cell is a stem, 2 it's a leaf and 3 it's a flower.
Only a stem can 'grow' another part of the plant.
ok. thanks

shouldn't there be a way to alter the color slightly depending on
the value of what is in this memory location?
they can alter color when a mutant so .... ????
or alter the 'skin' slightly ... or stick the 1,2 or 3 into the bot ...
similar to the numbers that Bots attached to them in his Bauified version of 2.37?
just something to distinguish them?

Num's ...
I've asked a couple of time ...
could you please tell me the name of the variable that determines
in what color the bot is displayed/drawn?
and also ... the variable name of the color the graphs use?
it would be nice to have them match .... or at least have the graph
use the color designated when we set up the species ...
rather than the defalult color depending upon the order of species ...
ie, yellow, red, blue, violet, white ... or however it goes.

thanks
Title: Multibot Vegetable
Post by: Boris of Quirm on November 26, 2005, 05:12:18 PM
Thanks for that Endy.

I'll give it a try.

If anyone wants to play with the plant, please feel free and let me know if you discover anything useful.  I can then pool all your ideas together into one 'Ultimate' plant.
Title: Multibot Vegetable
Post by: Numsgil on November 26, 2005, 05:16:50 PM
Quote
I've asked a couple of time ...
could you please tell me the name of the variable that determines
in what color the bot is displayed/drawn?
"color", or maybe it's robcol or robcolor, but I don't think so.  Have you even looked at the robot structure, it seemed fairly self explanatory when I first looked at the code.

Quote
and also ... the variable name of the color the graphs use?
it would be nice to have them match .... or at least have the graph
use the color designated when we set up the species ...
rather than the defalult color depending upon the order of species ...
ie, yellow, red, blue, violet, white ... or however it goes

As I've said many times, I have no idea, I didn't program that code.  Haven't even looked at it.  You know as much about it as I do, perhaps more.
Title: Multibot Vegetable
Post by: Numsgil on November 26, 2005, 05:18:15 PM
Haven't even looked at it yet, but are you fixing the roots in place using fixpos?  Otherwise your plants would theoretically begin drifting around rather aimlessly.
Title: Multibot Vegetable
Post by: Griz on November 26, 2005, 05:22:05 PM
Quote
You might want to try something using .tielen1 when robage equals 1 or 0. Basically the bot can be sure of affecting the correct tie since it should only have one tie at that age.

Gotta thank Evolution for that little trick, some blind bots I made started using this to spread themselves out during their birthing cycle.
yeah ... that's the trick isn't it? ...
'cause the real discoveries always come from a place we didn't expect ...
and wouldn't have looked had we not made some mistake in the first place. ;)
that's my experience anyway.
so our thinking/understanding evolves also ...
to the degree we are willing to remain open and adaptable ...
paying attention to what actually shows up and not just to
what we expect or think we will  find.
that's the fun part is it not?  'discovery'. ;)
Title: Multibot Vegetable
Post by: Boris of Quirm on November 26, 2005, 05:22:07 PM
Not looking at roots just yet.  Iam setting the bot as blocked when I test it.

May look at fixing them in place in later versions.  On that note is there a way of knowing when I am at the bottom of the screen?  I.e. If .sun helps me grow upwards in a pond, is there a way of detecting the bottom of the pond so I can drop towards it and only start growing when I am there. I could then fix myself to the bottom as you suggested.
Title: Multibot Vegetable
Post by: Numsgil on November 26, 2005, 05:27:35 PM
to point downards, you can use 942 .setaim store

you know you hit the bottom if you register *.edge.  It turns from 0 to 1 if either you hit the edge or see the edge, I forget which exactly.
Title: Multibot Vegetable
Post by: Griz on November 26, 2005, 05:28:22 PM
Quote
Haven't even looked at it yet, but are you fixing the roots in place using fixpos?  Otherwise your plants would theoretically begin drifting around rather aimlessly.
only the 'stem' would have to be fixed, yes ...
as long as the ties are not broken?
I think BOQ also wants the 'seed' to eventually attach to a passing
bot and be carried off to become replanted as a 'stem' in some other
location.
would be nice to allow the other parts of the 'plant' to wave in the current ...
and rename 'em kelp. ;)

for now, one could always position them at the bottom ...
and limit the repopulation to the bottom of the pond as well.

lots of ways to go methinks.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 26, 2005, 05:28:56 PM
Thanks for that Numsgil, I'll try that now.

I can then grow my plants from the bottom and hopefully fix them to it.
Title: Multibot Vegetable
Post by: Griz on November 26, 2005, 05:29:48 PM
Quote
to point downards, you can use 942 .setaim store

you know you hit the bottom if you register *.edge.  It turns from 0 to 1 if either you hit the edge or see the edge, I forget which exactly.
let 'em root and grow from the edges too.?
other than the top edge that is.
Title: Multibot Vegetable
Post by: Endy on November 26, 2005, 05:36:16 PM
Welcome, you might want to temporarily unfix the plant while it is spreading out at birth. At robage 0 it could unfix(.fixpos dec) and spread out with the use of tielen1. At about 20 or so it could fix itself again.

I 'm going to go ahead and investigate the tieports a bit more myself. I normally only use them over a relativly short period to snap ties, so haven't seen how they respond over longer periods.
Title: Multibot Vegetable
Post by: Griz on November 26, 2005, 05:49:54 PM
Quote
Quote
I've asked a couple of time ...
could you please tell me the name of the variable that determines
in what color the bot is displayed/drawn?
"color", or maybe it's robcol or robcolor, but I don't think so.  Have you even looked at the robot structure, it seemed fairly self explanatory when I first looked at the code.

Quote
and also ... the variable name of the color the graphs use?
it would be nice to have them match .... or at least have the graph
use the color designated when we set up the species ...
rather than the defalult color depending upon the order of species ...
ie, yellow, red, blue, violet, white ... or however it goes

As I've said many times, I have no idea, I didn't program that code.  Haven't even looked at it.  You know as much about it as I do, perhaps more.
hmmmm ...
just thought you might be able to help save me some
time and point me to it seeing you are the one who
has coded most of this.
never mind ...
sorry for bothering you.
Title: Multibot Vegetable
Post by: Griz on November 26, 2005, 06:01:08 PM
Quote
I start with 10 bots with an energy of 3000 and no other bots.
They are flagged as vegetables and blocked.
Also mutations are disabled.
NRG/veggy/cycle is set to 10.

As the cells randomly decide what type they are, it may be necessary for you to run the test several times before you get a stem that starts to grow to any degree.

The resulting plant should look like my first image.
 
In order to see the plant, pause the cyles and stretch the cells of the plant out. Once you have opened the cells out you should have something resembling my second image.
yes. just fingured that out ...

how about pond mode?
I'm not sure how the light intensity thing works ...
if the number that comes up in the box the intensity at the top of
the pond or how  the energy scaling factor attenuates it at depth.

ok thanks for the settings.
Title: Multibot Vegetable
Post by: Griz on November 27, 2005, 01:15:29 PM
re: Alga Reactum

Quote
This veggiebot will only reproduce if it is attacked. This includes by shooting or tiefeeders.
I don't see this happen.
I have both T_Preservans and C_Circumgirans fire on them ...
as I thought T_Preservans didn't kill the agla it fed on ...
and I see no reproduction take place.
now on occasion I have noticed a veggie added ...
but it is reproduced in an entirely different portion of the field ...
not anywhere near the 'parent'.
I suspect this might simply be a repopulation event ...
as it happens so rarely ii haven't been able to see if it came from the
parent being fired upon or not.
what settings are you using for "Max # of veggies", "Repop threshold"
and # of veggies per repop event?
all of these will affect how a new bot is 'born' ...
whether it comes via reproduction or a repopulation event ...
so wanted to use the same setting you are.

Quote
As all cells live mainly to reproduce it is interesting to note that when this veg is attacked it may eventually surround its predator. This produces quite a nice symbiotic relationship between plant and predator. The plant has 'caught' a predator and therefore it has guaranteed it will be shot and can reproduce. The predator, in being 'caught' now has a food source on tap.
as I said ... I have no repro going on anywhere near a veggie that is being
attacked .... and so no 'surrounding'.

Quote
This also means that one predator bot can be used in a test and as they become seperated into different 'colonies', they can mutate independantly down different evolutionary paths.
that would be interesting ...
but again ... I don't any reproduction at all.

I suspect there are other settings that you are using that are different
than my own ...
what about the advanced costs?
from what I can see the default has them all at zero ...
and I had to select the F1 defaults.
have you done this as well?
how about the physics settings?
also ... under the General tab ...
what do you have Veg body/NRG percentage set to?
I had mine at 50% and can't recall what the default was ... 10%?
 
could/would you upload a settings file?
although even then, not all settings are reloaded.
seems to me ...
unless we can all operate from the same environment ...
it's going to be tough obtaining similar results ...
and I would like to be able to give you some feedback.


as far as your first vegy bot ... Multiveg1.0 ...
I have been experimenting using C_Circumgirans with it
in a 9237 x 6928 nontoridal field with some interesting results.
the C_Circ are very active and end up tieing to, and stretching
out the agla ... which are not fixed in place.
settings:
Multiveg1.0 Qty 5 NRG 3000 Vegetable Yes Blocked No Mutation disabled
placement in the center ~ 1700 x 1700 of the screen.
C_Circumgirans Qty 5 NRG 3000 Vegetable No Blocked No Mutati0n enabled
General Tab:
Vegie energy 5 NRG
percentage of Veg body/NRG 50%
Physics default? no Z grav, no Y grav, Bang eff 80%
Advanced costs: F1 defaults

I get some fairly large alga organisims with this ...
although they remind me more of masses of frog eggs in a pond than alga. ;)
throwing a few botumor bots into the mix is interesting as well ....
as they eventually seem to 'hookup' with masses of alga forming large
organisims.

attaching the settings file
Title: Multibot Vegetable
Post by: Griz on November 27, 2005, 01:18:24 PM
Multiveg1.0 Qty 5 NRG 3000 Vegetable Yes Blocked No Mutation disabled
placement in the center ~ 1700 x 1700 of the screen.
C_Circumgirans Qty 5 NRG 3000 Vegetable No Blocked No Mutati0n enabled
General Tab:
Vegie energy 5 NRG
percentage of Veg body/NRG 50%
Physics default? no Z grav, no Y grav, Bang eff 80%
Advanced costs: F1 defaults

should have added ...
Max veggies 100
repop threshold 50
Title: Multibot Vegetable
Post by: Boris of Quirm on November 27, 2005, 01:53:10 PM
I have attached a setings file for you.
Title: Multibot Vegetable
Post by: Griz on November 27, 2005, 03:50:14 PM
Quote
I have attached a setings file for you.
hmmmm ...
something wrong here.
although the bar tells me veggies are being been born ...
I haven't seen any new ones appear ...
the total population is still 10 and hasn't changed since the start.
 
if I add in a few C_Circumgirans which more aggressivly attack ...
the veggie population simply decreases from 10 until all veggies are dead.

I still suspect not all of the settings are loading up correctly.
I find gravity set to 0.5
Max veggies 2000; Repopulation threshold, veggies/repop and pop cooldown all at 0.
Advanced costs all set to zero.
can these possibly be the correct repop settings?

I have lots of trouble with this pop control ...
sometimes it seems to work, mostly not.
if I increase the threshold to 20 and the # added/event to 1 ...
I can get bots to be added but even then the pop maxes out at the Threshold
number of 20, not the maximum bot number regardless of what it is 100 or 2000.
and ... they seem to come from the 'repopulation' being placed wherever in the field ...
and not as offspring of any particular bot ...
iow, via repopulation, not reproduction.

if I go back and reload the settings for the MultiAlga sim ...
everything works fine ... including the population controls.
 
however, if I reload the settings ...
or even just delete those species ...
and insert Alga_Reactum ...
the population controls no longer work.
I don't get it.
 
anyway ...
that's what happens, or doesn't happen, here. ;)

thanks for trying.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 27, 2005, 04:02:09 PM
Haven't completely tested Reactum in 2.4 yet, but I have been using it in 2.37.

Will look at all my settings and pop them in a .txt file for you.
Title: Multibot Vegetable
Post by: Griz on November 27, 2005, 04:19:58 PM
Quote
Haven't completely tested Reactum in 2.4 yet, but I have been using it in 2.37.

Will look at all my settings and pop them in a .txt file for you.
ah!
yes ... seems to work fine there!
what about your Multiveg?
is that a 2.37.6 or 2.4.A bot?

no problem ...
will play now in 2.37.6 ...

did you check out my setting file for your Multiveg plus bots I uploaded?
that was for 2.4.A btw

ok ...
looking up ;)
Title: Multibot Vegetable
Post by: Boris of Quirm on November 27, 2005, 04:25:50 PM
Glad to hear you managed to get it to work.
I have now edited the post for the code to include the fact that the bot was tested in 2.36, so that other people know how it was tested.

I'd be interested to find out how Reactum behaves with different bots, e.g. tiefeeders, multibots, swarmers, etc.

All my bots are created and tested in 2.37.6.
If you're testing in 2.4, it will be interesting to see what works and what doesn't.

Haven't had a chance to test your setting file yet, but hope to look at it tomorrow.
Title: Multibot Vegetable
Post by: Numsgil on November 27, 2005, 04:41:56 PM
Yes, I'd be interested to know what works in 2.37 and not in 2.4 as well.  There are some conceptual issues I can't address, but there may be a few bugs in the logic somewhere that causes 'interesting' bugs.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 27, 2005, 05:50:48 PM
Still trying to get ties working properly on my 'plant' bot.

Below are a series of diagrams that explain the problems I am having.

Key
S - Stem
L - Leaf
F - Flower

Figure 1 - How it should work
Code: [Select]
          L
           |
     L --- S --- F
           |
     F --- S --- S --- L
           |     |
           L     F
This shows how I would expect the plant to build itself.

Figure 2 - Problem 1
Code: [Select]
          L
          
     L --- S --- F
           |
     F --- S --- S --- L
           |     |
           L     F
If you look at the topmost leaf you can see it has not created a tie with its' parent stem cell.  This problem can occur within any type of cell not tying correctly to its' parent.

Figure 3 - Problem 2
Code: [Select]
          L
           |
     L --- S --- F
           |     |
     F --- S --- S --- L
           |     |
           L     F
If you look to the middle of the plant you can see that a flower is connected to two stem cells.  A leaf or flower should only be connect to one other cell.  The problem can also occur when four stem cells join in a 'closed loop'.  A plant should not split and then grow back together.

If anyone has any ideas on how this problems can be fixed, or if you come up with a solution, I would be most grateful as I can then proceeed with developing other areas of the plant such as reproduction.

As an aside this is what the plant looks like the cells are moved.
Code: [Select]
          L
           |
     L --- S --- F
           |
     F --- S --- S --- L
           |     |
           L     F


               L  L  F
                \ | /
                 \|/
            L  F  S
             \ | /
              \|/
               S
               |
               |
            F  S  L
             \ | /
              \|/
               S

The order of the stems in the 2nd plant from the bottom up are:- Bottom right, bottom left and top of the 1st plant.  (Hope this makes sense!!)
As you can see the organism now looks more plant like.  Eventually I would like the plant to grow like this on it own.

Thanks for your help.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 27, 2005, 05:55:21 PM
Just to clarify, the plants may grow bigger or smaller than those shown.  That particular plant was used as an example only, in order to illustrate the problems.

Again, this was tested in 2.37.6 with no other bots present, so the plant could grow uninterrupted.
Title: Multibot Vegetable
Post by: Griz on November 27, 2005, 06:46:14 PM
Quote
Just to clarify, the plants may grow bigger or smaller than those shown.  That particular plant was used as an example only, in order to illustrate the problems.

Again, this was tested in 2.37.6 with no other bots present, so the plant could grow uninterrupted.
I've had them grow very large in 2.4.A  ...
18, 20 or more 'elements' before I paused the sim to stretch them out and investigate ...
but ...
so far it seems any one plant is made up entirely of the same element ...
iow ... all 1 or 3 ... stems or flowers ... don't believe I've ever found a leaf, #2.
I was expecting only stems to sprout leafs and only leafs to sprout flowers ...
but find them homogeneous within each 'agla organisim'.
now I don't know if they started as #1, sprouting 2, and then 3's ...
and somehow all changed as one number as the sim went on or not.
wasn't expecting it so wasn't watching. ;)

and yes ... I find double ties as well in 2.4.A.

will go play with it in 2.37.6 as well.


btw Boris ...
that settings I uploaded was done in 2.4.A
Title: Multibot Vegetable
Post by: Boris of Quirm on November 27, 2005, 06:54:26 PM
Sorry wrong settings file.  Will try and find the right one.

As the chance of being any given type on the plant is random it could just be that you have been unlucky in not finding a leaf.

Only a cell that is a stem can produce a child.  This child can then be a stem, leaf or flower.  If you like, leaves and flowers can be thought of as terminators, in that the plant can't grow any bigger from this cell.

Hope that makes sense.  It's difficult trying to explain how something should look without pictures.  If you look back a couple of posts of mine at the one that contains the diagrams, I have now added one at the bottom that hopefully shows what I am trying to explain.
Title: Multibot Vegetable
Post by: Griz on November 27, 2005, 06:56:28 PM
Quote
I'd be interested to find out how Reactum behaves with different bots, e.g. tiefeeders, multibots, swarmers, etc.

I been using C_Circumgirans with it ...
as it is a much more aggressive bot and attacks more often
and is much harder for the alga to 'surround' and capture ...
but it does happen.

I ran your settings with both the T_Perservarians and C_Circumgirans ...
limiting the veg population to 500 ...
and in the end the C_Circumgirans died out ...
while the Perservians were still going strong.
of course that could have just been an unfortunate mutation for the C_C.

will try other bots with Reactum ...
and try as I might ... I still read that as Rectum almost every time ...
cracks me up, so to speak. ;)
hey ... what do you want from an old sailor?
Title: Multibot Vegetable
Post by: Boris of Quirm on November 27, 2005, 06:59:17 PM
I know what you mean about the name.

On more than one occassion I have had to check my spelling before I submit the post.

Reminds me of when the Queen had a bad year some time ago.  She referred to it as her 'Anus Horriblis'.

Still makes me laugh now.
Title: Multibot Vegetable
Post by: Griz on November 27, 2005, 07:04:26 PM
Quote
Sorry wrong settings file.  Will try and find the right one.

As the chance of being any given type on the plant is random it could just be that you have been unlucky in not finding a leaf.
well I had hundreds of them to look at ...
and was surprised to find flowers without leaf or stems present.
so that set me to looking and I didn't find any.

Quote
Only a cell that is a stem can produce a child.  This child can then be a stem, leaf or flower.  If you like, leaves and flowers can be thought of as terminators, in that the plant can't grow any bigger from this cell.

Hope that makes sense.  It's difficult trying to explain how something should look without pictures.  If you look back a couple of posts of mine at the one that contains the diagrams, I have now added one at the bottom that hopefully shows what I am trying to explain.
yes. that is exactly the way I had envisioned it to work ...
and so finding it not so was unexpected.
remember ... this was in version 2.4.A so ...
who knows what difference that makes.

will run it in 2.37.6 and imagine to find it more as you planned there.
will also see if I can duplicate the sim I had developed in 2.4.A ...
with the C_Circums dragging/stretching the alga out ...
as it was not fixed into position ...
would be interesting to have only the 'stem's fixed ...
might get 'waving' plants ... like sea palms and other such ocean
plants that live in the tidal zone.

guess having only the stem fixed would have to happen from withing the bot dna.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 27, 2005, 07:09:17 PM
Talking of fixed stems, I am looking in a future version to trying to fix the first stem cell to the bottom of the screen, make the plant grow up towards sunlight.

This may produce a 'waving' plant.  Should look quite nice in pond mode.
Title: Multibot Vegetable
Post by: Griz on November 27, 2005, 07:20:59 PM
Quote
Talking of fixed stems, I am looking in a future version to trying to fix the first stem cell to the bottom of the screen, make the plant grow up towards sunlight.

This may produce a 'waving' plant.  Should look quite nice in pond mode.
yes. that sounds good.

I don't know if you had yet developed the flower to stick to a passing bot or not ...
I did find that some tie feeders do attach to your agla ...
and certainly to drag them and any other thing they are tied to around ...
in unfixed mode that is ...
quite mezmerizing to watch. ;)
was esp interesting if the alga had survived long enough to grow large ...
as I had veg body/nrg set to 50% ...
so the physics of version 2.4.A were then apparent ...
a small bot attempting to drag a large mass along with it.
I also had a small amount of gravity ...
so the alga would be lifted by ties or even from collisions with the bots
that were moving upward. that's why I like C_Circumgirans  ...
they add a lot of momentum to the sim.
I spent a lot of time just watching ... good visual entertainment. ;)
again ... version 2.4.A
the physics aren't so realistic in 2.37.6 and earier ...
but will try to duplicate it there.

btw ... Nums or whoever ...
even the lowest Y gravity setting of 0.1 is too much for some sims.
I'd like to have more subtle control of it.
would be great to be able to have a box to type in a lower value
rather than just the slider.  or a way to select a 'range'  * or / by a factor of 10, etc.
just an idea for some vernier control.
Title: Multibot Vegetable
Post by: Griz on November 27, 2005, 09:11:44 PM
trouble posting tonite ...
if this ends up being a duplicate I'll delete one of them.

 Boris ... did I misunderstand?
you have MultiVeg working in version 2.37.6?

not for me.
man ... this is just too strange ...
they do nothing ... nada.
just sit there.

if I open the console and check '? 50' ...
I get 0 as the value for any one of them.
?????
I thought I might be able to set the value of '50' to 1 ...
from the console and then it might reproduce.
did so ... but no luck. no change.
I get nada from any of the veggies.
now I recall why I thought it must be a bot designed for 2.4.A ...
and that's why I went there with it ...
and they work just fine.

I have no idea what to think about this.

??????????????????
Title: Multibot Vegetable
Post by: Numsgil on November 27, 2005, 11:27:12 PM
Quote
Talking of fixed stems, I am looking in a future version to trying to fix the first stem cell to the bottom of the screen, make the plant grow up towards sunlight.

This may produce a 'waving' plant.  Should look quite nice in pond mode.
You can probably accomplish a certain degree of rigidity in 2.37.  This isn't really easy to do in 2.4, (the physics just don't allow it yet).

That is, in 2.4 the plant will probably be really floppy.
Title: Multibot Vegetable
Post by: Numsgil on November 27, 2005, 11:28:36 PM
Quote
btw ... Nums or whoever ...
even the lowest Y gravity setting of 0.1 is too much for some sims.
I'd like to have more subtle control of it.
would be great to be able to have a box to type in a lower value
rather than just the slider.  or a way to select a 'range'  * or / by a factor of 10, etc.
just an idea for some vernier control.
I'll see what I can do.  At a certain point I hate having too many controls as it just gets cluttered...

Maybe some little popup windows or something.
Title: Multibot Vegetable
Post by: Numsgil on November 27, 2005, 11:30:43 PM
To address the lack of ties and too many ties problem:

If you have too many:

cond
'some condition to check for not a stem
*.numtie 1 >
start
*.tiepres 'points to the most recent tie formed
.deltie store
stop

'to form a tie if you haven't:
cond
*.numtie 0 =
start
somenumber .tie store
stop
Title: Multibot Vegetable
Post by: Boris of Quirm on November 28, 2005, 08:42:26 AM
I have now remedied most of the tie problems and a new version of the plant is now posted in the bestiary.  For those of you testing this, I have been using version 2.37.6.  The bot is set as a veggie and blocked. Mutations are disabled and no other bots are present.  This has not been tested in pond mode yet.

Still on the subject of ties though, I am still stuggling to make the .tielen work properly.  I have tried adding the code into Gene 6 which increments the tie counter.  I figured that each cycle I could increase the tie length from within here but it doesn't seem to work.

Can someone else please have a look at this and let me know if they have any success.    If you do, if you can post up the code that would be great.

The next version of the plant will hopefully move towards the bottom of the screen where it will then start to grow once it has hit the edge.  All being well, it should then grow up the screen towards the sun.

Again, if anyone has had anyone joy with checking for these sort of conditions in the past, please feel free to write the gene yourself.  

Numsgil, I have had a quick look at the .tielen, .tielen1, .edge, .sun commands but have had no success so far.  I suspect I may need to change the environment settings, but as I am still new to this, so I am not sure.

You never know, if we have several versions of the plant we can then see which is the most successful when growing alongside predators, or in different environments.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 28, 2005, 08:59:56 AM
Just tried using tielen, tielen1 and robage to try and increase the length of tie between cells but no joy.

The lines I've tried are shown below:-

where robage 0 = or robage 1 =

100 .tielen store
100 .tielen1 store

Is this the correct syntax or is my value to low/high?
Does anyone have any examples of code that increases tie length that have worked including the condition?

Thanks.
Title: Multibot Vegetable
Post by: PurpleYouko on November 28, 2005, 10:10:27 AM
If you use "100 tielen store" you first have to set the tie that you are addressing with .tienum

If all your ties have an ID of 1 (from "1 .tie store" or ".tie inc") then setting .tienum to 1 will address ALL tie that are attached to a bot.

That was why I introduced tielen1 so that you no longer have to do that.

Tielen1 automatically addresses the tie that occupies slot #1 in the robot's internal tie array without the need for any external identifier. The first tie that attaches to the robot, either by its own doing or from another robot, is always #1. Then the array fills up tie by tie.

As to the length?

Tie length is determined as the distance from center to center of the robots tied together.

An average robot has a diameter of 120 so a tie length of 100 would attempt to make the tie shorter than the available distance. This should result in extremely short ties.

The Maximum length of a tie (before snapping) is 1000.

Try using some value between 120 and 1000 to get a longer tie.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 28, 2005, 11:29:43 AM
I have tried the following gene:-

Code: [Select]
'Gene 9 - Grow away from the plant
'
'At birth increase the length of the tie
'between me and my parent

cond
.robage 10 <
start
500 .tielen1 store
stop

'End of Gene

But I am still not seeing the tie grow at all.
I have tested this in 2.37.6 and 2.4.A but no joy in either.

Am I still doing something wrong?
Title: Multibot Vegetable
Post by: PurpleYouko on November 28, 2005, 12:47:27 PM
Tie controls such as tielen and tieang DO NOT work until the tie hardens at age 20

Energy and information transfer are possible prior to that but angle and length controls require stiff ties.
Title: Multibot Vegetable
Post by: Boris of Quirm on November 28, 2005, 01:17:11 PM
Modified the code to the following:-

Code: [Select]
'Gene 9 - Grow away from the plant
'
'When I am old enough increase the length of the tie
'between me and my parent

cond
*.robage 25 =
start
500 .tielen1 store
stop

'End of Gene

And it still isn't working.  The value for .tielen1 is being set to 500 but the tie isn't growing on the screen.

Am I still missing something?  Is there a way I can check to see if the tie has hardened before I try to increase it's length?
Title: Multibot Vegetable
Post by: PurpleYouko on November 28, 2005, 03:03:57 PM
Works perfectly for me  :blink:

I just added the gene that you just posted, to the end of the genome of your plant and the tie lengths set perfectly.

Set them at 200 and they stay short.

Set them at 900 and they get real long.

You sure you put the gene before the END statement?
Title: Multibot Vegetable
Post by: Boris of Quirm on November 28, 2005, 03:55:27 PM
:redface:   Just realised I had the plant set as blocked, hence why it wasn't moving apart.

*Bows head in shame and stands in the corner*
Title: Multibot Vegetable
Post by: Numsgil on November 28, 2005, 05:03:46 PM
Well, I guess we'll forgive you this time.   :D