Complex behaviour from simple scripts
|
Surina Skallagrimson
Queen of Amazon Nations
Join date: 19 Jun 2003
Posts: 941
|
10-13-2005 04:16
That would be fun to watch mexxa, however it would involve deliberately programing in specific actions. The whole point of the fish project is that I'm giving them the ability to do certain things, but the resulting actions are not always expected.
Currently they have these abilities. Swim (obviously) See food. Eat food. Gain preference for most abundant food type. See predators. Evade predators. Reproduce. Die. Shoal with like.
Whether they perform one action or another or even some unpredicted action is purely dependant on each individual.
A lone fish that is not particularly hungry will stay within easy range of food, however a hungry fish within a shoal will tend to stay with the shoal untill its hunger overcomes its shoaling instinct... this is not deliberately programmed by me, but is emergent behaviour.
_____________________
-------------------------------------------------------- Surina Skallagrimson Queen of Amazon Nation Rizal Sports Mentor
-------------------------------------------------------- Philip Linden: "we are not in the game business." Adam Savage: "I reject your reality and substitue my own."
|
mexxa Woyseck
Registered User
Join date: 8 Oct 2005
Posts: 31
|
10-13-2005 08:28
The shoal should circle if surrounded, so if you introduce the preditors and they have to be x close to the shoal but x far away from the next preditor, this should put them circling the shoal as they try to stay away from the each other. The shoal should be instinct avoid them and so go round in circles, then after x seconds the preditor will shoot through the shoal then go back to its original script (the one that makes it circle). The timers would have to be set to go off one after another. That should work.
|
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
|
10-18-2005 08:02
I'd like to make my own fishes, which would scale up while not eating too much sim resources... I'm thinking of using simple "locators" spread across the area where I want the fishes, that simply indicate with a single "say" the position of interesting things (food, predators, whatever) on a private channel, that all the fishes can grab easily. Also it'd let me restrain them to given areas (they'd be using the last hear positions to guid themselves if lost). Thoughts ?
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
|
Surina Skallagrimson
Queen of Amazon Nations
Join date: 19 Jun 2003
Posts: 941
|
10-19-2005 06:32
If your main concirn is restraining them then my advice is to hard code into each fish a 'home' location from which they are allowed to stray only so far..
My fish use two variables, vHome and fMaxDistance, both defined at the top of the script so its easy to modify. vHome is a location, I usually set this at sim center but it could be used to keep the fish in a specific place. fMaxDistance is the distance in meters that a fish may wander from the home location. If fMaxDistance is exceeded then an impulse is applied to the fish in the direction of vHome.
For finding food and avoiding predators it would be better (and more realistic) to let the fish do the searching rather than telling them where to go. Shouting co-ordinates to a group of fish would make all the fish respond exactly the same way, however allowing each fish to make its own decisions based on llSensor results produces individual behavior, even though each fish is running identical scripts.
_____________________
-------------------------------------------------------- Surina Skallagrimson Queen of Amazon Nation Rizal Sports Mentor
-------------------------------------------------------- Philip Linden: "we are not in the game business." Adam Savage: "I reject your reality and substitue my own."
|
Bastol Bunin
Registered User
Join date: 18 Oct 2005
Posts: 7
|
10-19-2005 19:39
can you IM me the location i am fascinated by this and wish to see it for myself. I am also inspired to try to create my own version of this. having fish that grow based on thier quantity of eating is a great idea. even if growing only minute amounts. and of course oen simple rule with fishes.. if it fits in thier mouth they will eat it 
|
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
|
10-20-2005 06:22
From: Surina Skallagrimson If your main concirn is restraining them then my advice is to hard code into each fish a 'home' location from which they are allowed to stray only so far..
My fish use two variables, vHome and fMaxDistance, both defined at the top of the script so its easy to modify. vHome is a location, I usually set this at sim center but it could be used to keep the fish in a specific place. fMaxDistance is the distance in meters that a fish may wander from the home location. If fMaxDistance is exceeded then an impulse is applied to the fish in the direction of vHome. Thanks, but I'm planning to let fishes wander around arbitrarily set zones. Basically, anywhere they can interact with, so that ultimately anyone can just set up fish food in their plot and eventually some fishes will migrate there. So I think changing the vHome to whatever last interaction's location should work too  From: someone For finding food and avoiding predators it would be better (and more realistic) to let the fish do the searching rather than telling them where to go. Shouting co-ordinates to a group of fish would make all the fish respond exactly the same way, however allowing each fish to make its own decisions based on llSensor results produces individual behavior, even though each fish is running identical scripts. The reason behind whispering the coordinates of "interesting" things is to avoid having each and every fish do the same sensor for getting the exact same position vector in the end. Whether or not they can see the object in question then is just a matter of having a distance check (I'm biased towards a simple bounding box actually), the end result should be the same, no ? Also it lets the fishes retain those positions longer than a sensor delay. Since I'm more of a neural-network kind of person, so far I've put a few blurry switches (floats ranging from 0 to 1) for hunger and metabolism speed, and am using a couple neurons for making decisions. For example a fish knows where the last threat was seen, where the closest food was and roughyl where the group is. There is an "individuality" neuron that does the choosing between following the group and avoiding a threat / wandering away, and a "greed" neuron for choosing between following the group and going at food. These two traits I want to make new fishes inherit from parent. At the moment the more individualistic a fish is, the greyer its color is, and the less individualistic, the more colored it looks. I need to devise a simple method for making speciation possible. Probably make them change size over time and inherit it from parent. Or maybe reusing the color vector ? Those big grey fishes could start eating smaller fishes maybe ? 
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
|
Surina Skallagrimson
Queen of Amazon Nations
Join date: 19 Jun 2003
Posts: 941
|
11-25-2005 06:25
Yesterday I spent a couple of hours in the pub with Babbage Linden chatting about LSL, mono, virtual machines, .NET and SL in general.
One of the specific topics was persistant storage and how the lack of it affects the way we write scripts. Specificaly, my use for a write to notecard function (or similar) for pasing large amounts of data from parent to child.
This lead to a quick brainstorming session where BL sugested "What if the fish could enter a pregnant state..."
**Ding** Idea light turns on...
Check back in the next few days and I'll post the results of my experiments with pregnant prims...
_____________________
-------------------------------------------------------- Surina Skallagrimson Queen of Amazon Nation Rizal Sports Mentor
-------------------------------------------------------- Philip Linden: "we are not in the game business." Adam Savage: "I reject your reality and substitue my own."
|
Sitearm Madonna
Registered User
Join date: 6 Oct 2005
Posts: 535
|
11-25-2005 11:54
@ Surina: You have my attention  I will check this thread again.. heck, I will even read the rest of it now! From: Surina Skallagrimson Yesterday I spent a couple of hours in the pub with Babbage Linden chatting about LSL, mono, virtual machines, .NET and SL in general.
One of the specific topics was persistant storage and how the lack of it affects the way we write scripts. Specificaly, my use for a write to notecard function (or similar) for pasing large amounts of data from parent to child. This lead to a quick brainstorming session where BL sugested "What if the fish could enter a pregnant state..." **Ding** Idea light turns on... Check back in the next few days and I'll post the results of my experiments with pregnant prims...
_____________________
... software packages, acting in society... life creating, and accepted, and widely... spread throughout the world... freeing, liberating... allow... each person individual control and decision making... to create living structure... wherever they are. / Christopher Alexander, 1996
|
Klaus Bertone
Mad Scientist
Join date: 12 Nov 2005
Posts: 7
|
Little fishy 'in trouble'
11-25-2005 17:10
Hi! Respectfully, I just mentioned the concept of a 'pregnancy state' a few days ago, in my thread on PGF. What are your thoughts on implementations? -Klaus
|
Feynt Mistral
Registered User
Join date: 24 Sep 2005
Posts: 551
|
11-26-2005 02:53
About the predators and food sources, I was thinking about why you'd have some fish specifically designed as predators when you just wanted one fish type to begin with. As a suggestion, how about the following: As genetic traits, choose the following to pass on (or continue to pass on) with your standard genetic aberration: - Food preference
- Size
- Greed
- Shoaling Instinct
Then add the characteristic that fish less than half that fish's size are edible, thus turning larger fish into predators automatically. You'll probably want to cap the maximum and minimum sizes the fish can grow/shrink to, or you'll end up with gigantic fish eventually, or little dots for fish (or worse, server crashing fish that become too small to produce. If that's possible). Size should play a role in speed as well, with larger fish moving slower than smaller fish. Though in reality this isn't true, it's rather difficult to program for the range of motion and natural evasion instincts of real fish. Larger fish can't turn on a dime like their smaller counterparts for instance, and some small fish dart for cover so larger fish can't get them. Actually I'm not sure if you can limit a range of motion (in this case, turning rate) with LSL, I don't see why not, but then I don't know the language yet. Also something you might want to consider is when the fish don't see food, their speed should be based on their health level. Healthy fish should be naturally speedy (energy to burn), while weak fish should be slower (conserving energy to use for going after food). This would contribute to the survival of the fittest rule (predator fish would more easily be able to feed upon weaker fish). I've been interested in AL for quite a while and I'd love to see the progress you've made so far.
|
Surina Skallagrimson
Queen of Amazon Nations
Join date: 19 Jun 2003
Posts: 941
|
11-26-2005 02:55
ok, forget it, it won't work.
As y'all know the problem I've been trying to solve for the past few months is how to transfer large amounts of data (read more than one integer) from parent to child without simply speaking it.
The latest idea went something like this.
Parent rezzes a random prim from inventry then links to it. Parent gives inventry to the prim (now a part of the parent link set) Parent passes a running script which listens for link messages. Parent sends all the variables to the prim as link messages. (This is the part that we want) Parent unlinks the prim, effectivly leaving an egg.
At this point the egg can either rez the parts required to look like a fish and activate the new scripts OR it could wait for a male fish to find it, link to it and pass it further variables as link messages, then once unlinked it rezzes the parts to look like a fish and swims away..
So what is the problem?
I managed to get all of the above to work, however there is one tiny drawback, in order for an object to link to another it requires a permission to be set, but this can ONLY be set at runtime with user interaction and it is not persistant through generations.
So back to the drawing board. It looks like I may have to bite the bullet and use a llWhisper...
_____________________
-------------------------------------------------------- Surina Skallagrimson Queen of Amazon Nation Rizal Sports Mentor
-------------------------------------------------------- Philip Linden: "we are not in the game business." Adam Savage: "I reject your reality and substitue my own."
|
Surina Skallagrimson
Queen of Amazon Nations
Join date: 19 Jun 2003
Posts: 941
|
11-26-2005 03:08
From: Feynt Mistral About the predators and food sources, I was thinking about why you'd have some fish specifically designed as predators when you just wanted one fish type to begin with. It was more to see what would happen as for any other reason. From: Feynt Mistral As a suggestion, how about the following: As genetic traits, choose the following to pass on (or continue to pass on) with your standard genetic aberration: - Food preference Workink on this now
- Size All fish are born the same, I'm going to implement growth soon
- Greed Got this
- Shoaling Instinct This is based on food preference
Then add the characteristic that fish less than half that fish's size are edible, thus turning larger fish into predators automatically. This is a good idea, I'll need to work on the groth part first though. From: Feynt Mistral You'll probably want to cap the maximum and minimum sizes the fish can grow/shrink to, or you'll end up with gigantic fish eventually, or little dots for fish (or worse, server crashing fish that become too small to produce. If that's possible).
Size should play a role in speed as well, with larger fish moving slower than smaller fish. This would be automatic with the way the physics works. From: Feynt Mistral Though in reality this isn't true, it's rather difficult to program for the range of motion and natural evasion instincts of real fish. Larger fish can't turn on a dime like their smaller counterparts for instance, and some small fish dart for cover so larger fish can't get them. Actually I'm not sure if you can limit a range of motion (in this case, turning rate) with LSL, I don't see why not, but then I don't know the language yet. Yes, you can, and I do... From: Feynt Mistral
Also something you might want to consider is when the fish don't see food, their speed should be based on their health level. Healthy fish should be naturally speedy (energy to burn), while weak fish should be slower (conserving energy to use for going after food). This would contribute to the survival of the fittest rule (predator fish would more easily be able to feed upon weaker fish).
This is already implemented to an extent. The fish have a 'cruising' speed for general swimming around, but when going after food they can have extra burst of speed. This decreases their health as a function of their greed level. so the greediest can go faster but it costs them more in health. From: Feynt Mistral I've been interested in AL for quite a while and I'd love to see the progress you've made so far. Come see the fish in *Themiskyra  *Edit: The fish are in Hypatia...
_____________________
-------------------------------------------------------- Surina Skallagrimson Queen of Amazon Nation Rizal Sports Mentor
-------------------------------------------------------- Philip Linden: "we are not in the game business." Adam Savage: "I reject your reality and substitue my own."
|
Feynt Mistral
Registered User
Join date: 24 Sep 2005
Posts: 551
|
11-26-2005 22:44
Actually for passing on the shoaling instinct I was thinking that it's more an attraction factor. Some fish might learn to be anti-social while others may group more closely together.
As for the scripting, I'm still not sure about what is and isn't possible, but I'm keen on learning. I've found a few of Jeffery Gomez's threads regarding his BVH to prim importer as well, so the possibilities for scripts and animation are staggering.
|
Surina Skallagrimson
Queen of Amazon Nations
Join date: 19 Jun 2003
Posts: 941
|
Hitchcock revisited: The Birds.
12-13-2005 05:52
It's been a while since I posted here so I thought I'd best give a little update on what I've been doing recently, (with the fish...)
The experiment with different foods is going very well. New fish quickly learn a prefference for a particular food type, though not to the excusion of all others. The main body colour changes to reflect their prefference while the tail colour still shows the food they are "thinking" about at any one time. Their shoaling is determined by overal food prefference so groups can easily been seen with similar body colours, though it is possible, even highly likely, that individuals within a shoal could be looking for different food types.
As regards predation, I have recently been given a very nice low prim bird model (thanks Garth). Early experiments have shown that very realistic flocking birds can be achieved with just minor changes to the shoaling code. The wings have been linked to the main code via link messages so that they only flap while the bird is trying to gain height. Descent results in a gentle glide. The visual effect is remarkably impressive and further reinforces the individuality of birds within a large flock. The birds will feed on the fish...
_____________________
-------------------------------------------------------- Surina Skallagrimson Queen of Amazon Nation Rizal Sports Mentor
-------------------------------------------------------- Philip Linden: "we are not in the game business." Adam Savage: "I reject your reality and substitue my own."
|
Rem Koolhaas
Registered User
Join date: 19 Dec 2004
Posts: 5
|
Natural Selection
12-13-2005 09:56
Hi Surina,
Have been playing around with emergent behavior and myself but outside of SL. Have a small collection of BEAM robot photovores (ala Mark Tilden) that feed on light. Not sure how I got to this thread but I'm sure glad I did (pretty much has to do with SL being down right now for the 1.8 update lol, otherwise I don't come to the forums much).
I share Feynt Mistral's question about introducing predators so early in your experiment. Most certainly it isn't wrong to do so but it represents a significant jump in complexity, perhaps leaving some nice bits behind.
I have not seen the schools of fish myself as yet (but will most certainly do as soon as the grid is up), but its fairly evident that the predators play a significant part in the evolution of the greed genes of the fish, for the fundamental reason that there can be no evolution without a 'hostile' environment, resulting in natural selection. The first Matrix after all failed because everyone was too happy. Same with the school of fish without the predator.
The nice bit I see missed out on is competition between same species of fish. This can be brought about without any change to your current fish scripts, just make your fish food limited in supply, some parent prim rezzing food prims at a constant rate, and food prims dying when collided upon by the fish (well it should work in theory). Pretty much like what you've mentioned in your post about trying to count them, but making the scarcity of food a more permenant part of the system. You've already noticed the emergent behavior described as 'pack of hungry wolves', that can be built upon.
It should be noted that any change in behavior of the fish, if any, will be the truest emergent behavior you'd have produced so far, since there are no changes made to the exisitng fish scripts, only their environment, that would have been responsible for this behavior change.
Since you've already set up a well thought out and balanced greed/speed/energy relationship this should result in a new stable gene level.
Now throw in the predators, and the fish will have a really complex environment to respond to.
One thing that cannot be achieved in RL experiments using insectoid analog robots is reproduction. Its also way easier to make a bunch of them in SL than RL. Wish I thought of using SL for AL sooner rofl.
I look forward to visiting your fish and perhaps speaking to you in person.
|
Surina Skallagrimson
Queen of Amazon Nations
Join date: 19 Jun 2003
Posts: 941
|
12-13-2005 10:17
Hi Rem (praying that everything after the Rem statement is still visible..) The food supply is already severly limited. The food prims themselves are "temp on rez" so they will only last for 60 seconds or so before disappearing. Also, the rate at which they are produced is closely controled by me, maybe 1 'pellet' every 10 seconds for plain food through 1 every minute for very nourishing food. Yes, the different food types will provide different nourishment amounts. The shoaling instinct also means that individuals that on their own would be heading towards food, are kept away from it for a while untill the urge to feed overcomes their desire to shoal. At this point a higher greed factor gives an advantage by allowing them to break free from the shoal earlier, however the reduced visibility associated with higher greed could also mean the fish never sees the food if it is too far away... I have heard about the light feeding robots, they looked very interesting. They seem to apply the same techniques I'm using except in hardware. I change the fish colours to see what they're thinking, the robots I've seen had coloured LEDs to indicate their mood. The work of Prof. Warrick et al at Reading Uni is also very similar with their "Seven Dwarfs" robots. The HUGE advantage of SL being that I can concentrate solely on the programming without ever having to worry about actually picking up a spanner or soldering iron  The fish can currently be seen in Hypatia. (In the water, obviously). Touch the feeders to give extra food... To see the overall result at its best, use the debug menu to turn off water surface rendering then look down from above. You get a much better view of entire shoals and how they move. Debug can be enabled by pressing ctrl-alt-D.
_____________________
-------------------------------------------------------- Surina Skallagrimson Queen of Amazon Nation Rizal Sports Mentor
-------------------------------------------------------- Philip Linden: "we are not in the game business." Adam Savage: "I reject your reality and substitue my own."
|
Rem Koolhaas
Registered User
Join date: 19 Dec 2004
Posts: 5
|
oops
12-13-2005 11:03
From: Surina Skallagrimson Hi Rem (praying that everything after the Rem statement is still visible..) H Surina! Good thing I'm not called /* Koolhaas */ or //Koolhaas too (*thud* sound of bad comeback falling flat). Looks like I've made an outdated post regarding limited food supply then  . On another note, assuming you are still having problems passing information to offspring outside of llWhisper, another possibility is to have each fish carry a portfolio of disabled scripts. What each of these scripts do is just send a certain llMessageLinked() message and then kills itself. Say the parent fish wants her child to have a greed of 1 higher than normal. Using llRemoteLoadScriptPin(), she would choose a certain disabled script that would do so, and pass it to the child, activating it as its passed. Once in the child, the script sends the link message and deletes itself. The child hears the message in a link_message event and increments his greed accordingly. Using a stream of such scripts fed to the child, it is possible to send more data than in a 32 bit integer start param, and more varied data than just integers. However, the drawback is that each llRemoteLoadScriptPin() call delays the script for 3 seconds. Pregnancy might last awhile  Which, brings me to ask: whats so wrong with using llWhisper() that is compelling you to find alternatives?
|
Surina Skallagrimson
Queen of Amazon Nations
Join date: 19 Jun 2003
Posts: 941
|
12-13-2005 14:08
From: Rem Koolhaas Which, brings me to ask: whats so wrong with using llWhisper() that is compelling you to find alternatives? Well basically because I'm proud of the fact that I've managed to do all of this so far with no comunication between individuals what-so-ever, (discounting llRemoteLoadScriptPin() which I simply call gestation outside the womb). The fish get their data about the outside world from "seeing" the ground and water surface using the built int LSL functions and they "see" other fish, predators and food using llSensor() to simulate sight. The fish are designed to be as lag free as possible in order to have as many as possible to get the propper shoaling effects. llListen() is notorious for causing lag and the potential of hundreds of fish, each with multiple scripts, each with listen handlers is not worth thinking of. Even the Sensor calls are strictly controled to reduce lag. I have already thought of dead scripts that load, pass a link message then self delete and it's something that I'm looking into. As you say, the 3 second delay could be a problem with multiple scripts but thats just another hurdle to be overcome.
_____________________
-------------------------------------------------------- Surina Skallagrimson Queen of Amazon Nation Rizal Sports Mentor
-------------------------------------------------------- Philip Linden: "we are not in the game business." Adam Savage: "I reject your reality and substitue my own."
|
Dyne Talamasca
Noneuclidean Love Polygon
Join date: 9 Oct 2005
Posts: 436
|
12-14-2005 02:13
I still need to get around to checking these out, but just as a note, there is (or was last time I was online) an Alife fish just hanging in midair in the southwest of Acontia. I'm not sure how it got there. Is it one of yours? (I can't check until my internet is back up at home) It's a bit west of my parcel at (80, 80), on Neo Neruda's land.
|
Surina Skallagrimson
Queen of Amazon Nations
Join date: 19 Jun 2003
Posts: 941
|
12-14-2005 05:17
I had a quick look but couldn't see anything. There shouldn't be any of my fish anywhere other than my sims and Freelon.
_____________________
-------------------------------------------------------- Surina Skallagrimson Queen of Amazon Nation Rizal Sports Mentor
-------------------------------------------------------- Philip Linden: "we are not in the game business." Adam Savage: "I reject your reality and substitue my own."
|
Dyne Talamasca
Noneuclidean Love Polygon
Join date: 9 Oct 2005
Posts: 436
|
12-14-2005 23:14
From: Surina Skallagrimson I had a quick look but couldn't see anything. There shouldn't be any of my fish anywhere other than my sims and Freelon. Yeah, I discovered when I could get back on today that it was gone, and the owner had set his land for sale. It had been there probably two weeks or more, so I wasn't expecting it to go away anytime soon. Murphy's Law strikes again. 
|
Leone Trescothick
Registered User
Join date: 27 Dec 2005
Posts: 9
|
01-03-2006 08:43
I had a good read through all this and was glad Rem brought up a few points. Hostile environment and stable gene changes were the main things that clicked with what I was thinking about. You've done some fantastic work with the fish. Food, shelter and even sex (though I can see the problems with that you are having) are there and coming along nicely. What I started thinking about was, well, the aim of your project. To replicate RL fish I think is an unachievable goal. In RL there are far more variables than can ever be directly injected into the fish as I know you realised early on ("too complex"  . This was the reason for delaying or perhaps abandoning the predator concept. But as Rem points out that "there can be no evolution without a 'hostile' environment, resulting in natural selection". Well not quite right  but the point is made I think. Your fish are living in what amounts to an almost closed system. The ability to breed, to pass on traits etc will result in variety for sure, but overall the population will probably reach some sort of equilibrium because there are no external forces at work. Or to put it another way, because there are no changing reasons to mutate, they won't mutate in ways that are particularly unpredictable from your variables. Artificially introducing things (such as predators, disease, time-based events such as seasons) might help, but this adds to the complexety and lag factor. I think the key is to change the aim of the project to producing an interesting AI as opposed to realistic. The idea came from something you've mentioned offhandedly: that people can give the fish extra food. Now I can't sit down and give you details. I have no knowledge of LSL. Hell my scripting skills in general are about as basic as you can get. But the idea I think is solid enough. That the people of SL can bring about enough variables to create highly varied and interesting mutations, simply because of the variety of people in SL itself. They are complex and varied and constantly changing enough to provide and enivironment that could impact in ways that are unpredictable. Much like SL itself. Just look at how avatars have "mutated"  (or what has happened to the SL economy) Anyway that's the basic idea. I don't know LSL or your project well enough to go much beyond that at the moment, but it's something that struck me while reading this thread so thought I would share it. 
|
DoctorMike Soothsayer
He's not a real doctor.
Join date: 3 Oct 2005
Posts: 113
|
hostile thoughts
01-04-2006 03:01
From: Leone Trescothick But as Rem points out that "there can be no evolution without a 'hostile' environment, resulting in natural selection". Well not quite right  but the point is made I think. Your fish are living in what amounts to an almost closed system. The ability to breed, to pass on traits etc will result in variety for sure, but overall the population will probably reach some sort of equilibrium because there are no external forces at work. Or to put it another way, because there are no changing reasons to mutate, they won't mutate in ways that are particularly unpredictable from your variables. Actually, there are a few misconceptions in the above; probably not deliberate, but confusing enough for the lay reader. Firstly, Leone is right that you don't need a hostile environment, just one were some 'versions' of fish will be selected preferentially. However, all systems reach an equilibrium. Remember that this does not mean static, as a cyclic process, such as fox/rabbit populations orbit round a 'theoretical' stable point, but can never actually stay there. Furthermore, bio-diversity requires a fallow period or two, where variability is condoned to allow different mutations to build up populations before the inevitable squeeze - environment changes, a cull on red fish, meteor strikes, oh and humans screwing up the atmosphere - then makes the selection. Too hostile an environment, too much of the time, selects a highly specialised creature that is too specific and will die out with small changes. Summary: It's not the hostile period that forces evolution, it's the fallow ones before and after.
_____________________
Performance Artist and educator "Thinking outside the Prim"
|
Surina Skallagrimson
Queen of Amazon Nations
Join date: 19 Jun 2003
Posts: 941
|
01-05-2006 09:58
My mind is going through a fallow period
_____________________
-------------------------------------------------------- Surina Skallagrimson Queen of Amazon Nation Rizal Sports Mentor
-------------------------------------------------------- Philip Linden: "we are not in the game business." Adam Savage: "I reject your reality and substitue my own."
|
Leone Trescothick
Registered User
Join date: 27 Dec 2005
Posts: 9
|
01-07-2006 09:08
Yeah I see what you are saying. Guess I should have said static...that's much more the point I was trying to make 
|