Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - cliftut

Pages: [1] 2
1
Toy Planet / Re: Toy Planet: candidate for DB3?
« on: October 05, 2013, 05:24:07 AM »
I like it in principal, but I'd like to be able to see the graph reliably. For instance, in my current sim, the highest point on the graph is two pixels tall ( meaning about 99% or the graph is empty space, and I must get close to the monitor to see it clearly). Logging is a good idea. It's always cool if you can take some raw data and look at it from different angles.

2
Toy Planet / Re: Toy Planet: candidate for DB3?
« on: October 04, 2013, 08:59:15 AM »
Yeah, I meant unicode. Well, that's pretty cool. I was wondering if it was because the bits themselves were getting manipulated. It certainly makes the DNA look arcane. :) I don't fully understand, though. I get that unicode characters can have higher values than ASCII, but I didn't understand your example. What is different when an agent executes a unicode character as opposed to an ASCII character?

And, of course, no rush on implementing things. I make no demands of free software. ;)

One more feature idea: It would be nice if there was a config option to set up periodic screenshots (or maybe this is already there?). I'd like to be able to record time lapses of the simulations, but I realized that just using screen capture software wouldn't be accurate since the speed of the simulation varies based on population. So if it could dump a numbered .png to a subfolder every X (user defined) frames or ticks, that would be good enough. An added bonus is that the screen capture wouldn't be messed up if the computer decided to go to sleep. :)

On the more ambitious end, a separate program or built in dialogue for decoding the ASCII/Unicode DNA would be cool. Just to see the meaning; deciphering how it runs could still be left up to the user. The near-ultimate extension of this would be the ability to step through an agent's code during the simulation like Evolve 4.0 allows you to do.

3
Toy Planet / Re: Toy Planet: candidate for DB3?
« on: September 25, 2013, 11:36:53 PM »
This is cool, I've run it for several hours in the last few days. Evolving mutation rates is a nifty idea. Also, this thing is blazing fast! :)

Here are some suggestions. I hope you don't mind:
  • A way to save the dna of agents would be nice. If you don't want to implement a whole saving routine right now, I'd at least like to be able to copy it to the clipboard so I can save it in a text file. My attempts to copy the text from the interface have been unsuccessful and actually froze the program twice; apparently selecting the organism info text bothers it.

  • The graph is mostly black space most of the time. Does it set the upper limit of the graph at the population? I would recommend setting the upper limit to either the highest population currently on the graph (highest data point, I guess), or make it logarithmic. In fact, if you did both, the graph might be able to do a good job of displaying all species. I think that would be really cool since you could see all of the species on the graph, even the small ones.

  • Documentation would be excellent! The config file could use it, and a copy of the DNA commands from your paper would be handy.

  • Visibility is a problem sometimes. The background of the program is fairly light while the "petri dish" is black, which sometimes makes it hard to see organisms on the edge. This is worse when the organisms are particularly dark, which is another issue. Is there a way you could prevent organisms from being too dark?

  • Being able to pause the program to look at organisms would be nice.
Also, a couple questions:
  • You mentioned a visualization of the "tree of life" in your paper; does that come packaged with the program?

  • Why are there so many advanced characters in the organisms' DNA?
[/li]
[/list]

There is a program which resembles yours but is nowhere near as fast, called Nanopond.
http://adam.ierymenko.name/nanopond.shtml
It has two coloring algorithms which you can switch between using right-click. Maybe they could be adapted to your program, since Nanopond is open source (under GNU GPL). It's rather cool because each one groups the creatures differently, but still in an organized way.

Another very cool alife program with some similarity to yours is Evolve 4.0. It's not perfect, but is one of the more developed alife programs I've come across, and I hope you have time to give it a look if you haven't already.
http://www.stauffercom.com/evolve4/

Lastly, there are a couple of programs which are more distantly similar, although their download links are broken (I've sent him a message to fix them):
http://scottschaferalife.blogspot.com/2008/05/micropond-v1.html
http://scottschaferalife.blogspot.com/2008/06/micropond-v2.html
Until those are fixed, you can download MicroPond v1 from his personal website here:
http://www.scottschaferenterprises.com/alife.htm


Anyway, I hope this isn't too much feedback! :)

4
Biology / The first wet alife?
« on: May 10, 2009, 03:24:29 AM »
numsgil: Flame is just a chemical reaction that emits light, so I'm not sure that it even fits here. It's more of a process than an object in itself, but maybe life could arise as a form of organization within an energy flow...  Maybe I should remove the word structure from the definition though. That might solve this issue.

prsn828: I don't think a tree would be non living. A tree has the ability to change in behavior between generations because of DNA mutations. Thus, it fits my definition.


There are definitely many complex things to take into account. As far as I've noticed, we tend to either end up calling everything alive or make a definition that doesn't allow for unknown forms of life.

Here's the wikipedia "conventional" definition:

   1. Homeostasis: Regulation of the internal environment to maintain a constant state; for example, electrolyte concentration or sweating to reduce temperature.
  2. Organization: Being structurally composed of one or more cells, which are the basic units of life.
  3. Metabolism: Consumption of energy by converting chemicals and energy into cellular components (anabolism) and decomposing organic matter (catabolism). Living things require energy to maintain internal organization (homeostasis) and to produce the other phenomena associated with life.
  4. Growth: Maintenance of a higher rate of synthesis than catabolism. A growing organism increases in size in all of its parts, rather than simply accumulating matter. The particular species begins to multiply and expand as the evolution continues to flourish.
  5. Adaptation: The ability to change over a period of time in response to the environment. This ability is fundamental to the process of evolution and is determined by the organism's heredity as well as the composition of metabolized substances, and external factors present.
  6. Response to stimuli: A response can take many forms, from the contraction of a unicellular organism to external chemicals, to complex reactions involving all the senses of higher animals. A response is often expressed by motion, for example, the leaves of a plant turning toward the sun (phototropism) and chemotaxis.
  7. Reproduction: The ability to produce new organisms. Reproduction can be the division of one cell to form two new cells. Usually the term is applied to the production of a new individual (either asexually, from a single parent organism, or sexually, from at least two differing parent organisms), although strictly speaking it also describes the production of new cells in the process of growth.

By this definition I think some types of alife can be considered alive. Darwinbots and Evolve 4.0 seem to fit well enough, if any alife does.

5
Biology / The first wet alife?
« on: May 07, 2009, 12:55:52 AM »
I believe that a good definition for life should be as unassumptive as possible. For instance, we do not know for certain that some form of what we might call "life" exists within energy fields, or even a matter based life form which is not composed of cells, but a crystalline or molecular-tissue based structure. I believe that a flexible definition is necessary to allow for such possibilities. The more rules our definition has, the higher the chance that a discovery in the future will force a major revision.

This in mind, I'll attempt:
'An entity with the ability to change either in structure or in behavior, this change being initiated by the entity. This change may be gradual, or take place between generations if reproduction or division is in its nature.'

Hopefully this is robust enough, without being so broad as to serve no purpose. It frees us from some of the assumptions common in many definitions of life, I think. This allows for those things currently considered to be alive, while allowing for other, possibly very different forms.

6
DNA - General / What do the colours mean?
« on: August 07, 2007, 10:43:08 AM »
cyan blobs (isn't "blips" a better term?) are virus hits. These weren't metioned.

7
Suggestions / Graphs not always on top?
« on: August 06, 2007, 08:31:25 PM »
The graphs are always on top of all windows even if I minimize DarwinBots. This is a bit frustrating because I've been trying to run evo-sims while I browsed the forums, but I'd have to minimize all 2-3 graph windows and then maximize them again when I wanted to chech the sim. I suggest that all sub-windows governed by DB automatically minimize when the main window is minimized, and that the always-on-top behavior of the graph windows, and perhaps option windows as well, be changed. Hey, why not also make it so that they don't take up space on the Task bar anymore? Well... actually, you can scratch that one if you want... I think I'm starting to sound whiney.

8
Suggestions / new graph type
« on: August 06, 2007, 08:09:02 PM »
I know I'm making another suggestion rather soon. I tend to get hit with ideas in rapid succession.

Out of the graphs you can bring up in game, the two I find most useful are the avg. mutations graph and the populations graph (the avg. dna length fascinates me, but having too many graphs covers up the sim and annoys me). I think there are possibilities for new graphs that could be useful. I've thought of one so far.

Strains Graph
When a bot mutates, it becomes another strain within the bot species. A graph that shows how many strains of each species are in the simulation could be useful to show areas of transition. When the number of stains remained above 1 for a relatively long amount of time, it would probably be because the mutations that created the new strains did not cause a major advantage or disadvantage for it. however if the strains dropped back down rather quickly, it would probably because the new strain either won out or died out. You would be able to tell which by seeing if the avg. mutations graph went up or down. If up, then the new strain won out. If down, then the old one won.

This could be useful for more accurately tracing what exactly evolution is doing, and I don't think it would be to difficult to add in.

9
Suggestions / New feeding methods
« on: August 06, 2007, 07:27:50 PM »
I had this idea the other day. As far as I know, the feeding methods in DB don't really resemble real life feeding methods. This caused me to think about how actual single-celled organisms feed. There are two main ways that I know of; some larger ones do so by "taking in" smaller organisms, and some smaller ones "hijack" larger organisms by penetrating into them and using them as a breeding house. I was wondering if these sorts of behaviors could be implemented in DB.

-------
[you]
1. Engulfing other bots
[/you]
A bot would only be capable of absorbing a bot smaller than it (less mass), and it could only engulf multiple bots if their mass equalled less than its own. A bot would engulf another bot by throwing out a special type of tie that would drag the other bot inside of them (this tie, although invisible, would remain connected even when the bots were inside). Once a bot was inside, the bot that engulfed it would expand as their masses were added together (if multiple bots were engulfed, the bot that engulfed them would expand by adding all of their masses to its own. Also, if "fixed bot radius" was checked in the options, the bot would simply enlargen to acommodate the bots it absorbed). Any bots pulled inside would act as if they were tied to the bot that engulfed them (but not to each other). Energy sharing, waste sharing, tie feeding, or memory editing could be done by the bots to the one that engulfed them, or to the engulfed bots through this "virtual internal tie". Naturally, tie lengths and such things would not apply, though, so trying to changer them would have no effect. Any nrg, poison, venom, waste, or virus shots fired a bot that was engulfed would act as if it had hit the bot that they were inside (feeding or body shots would be disallowed). Also, the bot that engulfed another bot could transfer its own poisons, venoms, or virii to the engulfed bot/s. The movement of any absorbed bots would be prohibited. If the bot that had engulfed the others died while they were still alive inside, they would be released. I'm not sure if engulfed bots should be allowed to reproduce while inside.

To feed off of engulfed bots, the bot would either "decompose" them (feed nrg from them while randomly deleting their dna; this could be automatic or require a special sysvar command), or tie feed from them using the "virtual internal tie". The main pros and cons of this feeding method would be as follows;
PROS:
   1. It would be efficient like tie feeding; no worry of feeding shots missing or nrg shots not being collected.
   2. It would not hinder a bot's movement like tie feeding does.
CONS:
   1. Since the mass of any absorbed bots would be added to the mass of the one that absorbed them, it would become larger and easier to hit.
   2. The bot that engulfed the other bot/s would inherit all of their waste as it absorbed them, since they would be inside of it.
   3. Any bots that were absorbed could easily affect the bot that had engulfed them with poison, venom, or virii. They could also drain nrg from it, but that would have to a specialized response, taking advantage of the "Virtual internal tie".

I think that this would allow for some interesting behaviors in bots, and since a bot that engulfs other bots doesn't have to feed off of them, two bots could have a symbiotic relationship, where one lives inside another.

--------
[you]
2. Infecting (Hijacking) other bots.
[/you]
This would be the reverse of the above. A bot would only be able to do this if it was smaller than half the mass of the bot it hijacked. Similarly to engulfing, the smaller bot would shoot out a tie to the larger one, and pull itself inside the larger one, and adding its mass to the larger one's (like with engulfing, this tie would remain connected even once the bot was inside). Once inside, any shots it fired (except for feeding and body shots) would act as if they automatically hit the hijacked bot (the host). The bots would be capable of reproducing while inside the host bot, as well as feeding energy from it. If the mass of the bot/s inside exceeds the mass of the host bot, then the host would die. When the host bot died, the hijackers would be released. They would also be able to escape on their own by using a special command. The pros and cons of this method are as follows;
PROS:
   1. While inside a host, the hijacking bots would be safe from direct attack.
   2. The bots would not be able to harm one another while inside their host.
   3. They could easily use venom, poison, or spread virii to the host.
   4. They would only inherit a fraction of the host's waste when they fed off of it, unlike with engulfing.
CONS:
   1. They would be incapable of movement while inside the host; they'd go where the host went.
   2. I'm sure there would be other disadvantages, but I can't think of any others right now.

---------

Does anyone think that these would be good for DB? They are fairly flexible, allowing for feeding or symbiotism, not to mention they mimic real life a bit more than the current feeding methods. Some interesting ideas come to mind. One of which is a bot that would engulf veggies and use them as batteries.

Also, these would allow programmers to produce unique multibots (I'm sure they would count as multibots if they were designed right).

I realize these would probably be tough to implement, but that's just me guessing. I think they might be worth some effort to introduce, though.

What do you think? This post is really long... >< I've attached an image because I get nervous about my ability to explain things when my paragraphs get too long...

10
Biology / Sexrepro (Real Life) questions
« on: August 06, 2007, 05:12:04 AM »
The main reason I think reproduction wouldn't work for sperm is because they have no way of obtaining energy. Like Ramiro said, they have a single purpose; swim until you find an egg cell. They have no way of obtaining energy, and only have about enough energy to make their way to the egg cells. Reproducing on their own, would cause two problems;
1. it would spread their energy thin so that they would be incapable of making it to the egg cells.
2. it would increase the possibility of mutations in young, and even maybe allow multiple mutations. This is assuming, though, that the sperm would be capable of reaching the egg cells.

Also, for sperm to be able reproduce and still reach the egg cells, they would have to simultaneously gain the ability to gather energy. If the method of gathering energy was eating other organisms, that would mean that the sperm would start eating cells around them, and maybe even each other. This would probably result in sterility for male organisms, and the sperm would basically become bacteria, and keep eating and reproducing, which wouldn't bode well for the male that produced them... O_O

In short, repro in sperm would most likely be a bad thing in all cases.

11
Biology / Fluid
« on: August 06, 2007, 04:19:00 AM »
I don't have a ton of technical knowledge concerning this stuff, and I haven't read all of the posts, but I thought I ought to mention this.

I read somewhere, probably a science magazine, that scientists found single-celled organisms living fairly deep underground between rocks. Not only were they living in this environment where it was thought life couldn't live, but to do so, they were feeding on methane. Their were able to metabolize the methane and use it for energy. If I remember correctly, they were actually using the methane in place of oxygen because oxygen is rare at those depths. I can't remember all of it, though, so I could be wrong.

So an organism probably could live in a methane rich environment as long as there were enough of other substances for it to live.

If anyone knows anything about these organisms, correct me or elaborate upon this. It's not exactly what you were talking about, but I think it's related.

12
Bot Tavern / Evolved tie-bot...
« on: August 04, 2007, 10:47:25 PM »
This bot evolved from the 2.1 version of T_Preservans. Whilst entangled in a fight versus some evolving veggies, This lucky guy happened to gain the ability to throw ties (it tends to favor tieing it's buddies). I'll attach a simfile so that you people can see what it does.

I've found that the seemingly ideal environment for this bot is one in which the veggies aren't fixed. This means that grabbing the veggies via ties makes them easier to hit.

There are some problems with this behavior, so even in the sim I designed for them they tend to drop the tieing ability after a while. I'll list them;
1. When they tie to other bots they fight, trying to pull in different directions. Useless spinning motions and chaotic motion result, making it difficult to feed.
2. Once they are tied to a veggie, they tend to end up facing away from the veggie, making their constant shots useless until either a link is broken, or it links to other veggies/bots causing it to change orientation.
3. They end up cannibotting by accident because their ties force them to face one another. When too many bots get linked together (this often happens when feeding, because the children tend to get netted by their parents or other nearby bots, putting them or their parents in the line of fire)
4. Overall free swimming non-tying bots seem superior, so evolution tends to work against the tieing until it disappears from the genome.

There are some good points, though.
1. Once enough veggies have been netted, the bots can feast and multiply quickly.
2. If a more efficient feeding method was introduced, a bot that netted its food could have an advantage since the veggies are free-floating.


I would like to see if any interesting behaviors can be evolved from this. If any of you could run the sim for yourself or experiment with it yourself, I'd be grateful. I would be very happy if anyone could suggest settings that would encourage further development of this tying behavior.

Also, is there any way to make the code more readably besides going through it manually? I'm a newbie, so I don't understand the code enough to tell what's doing something and whats not.  I heard someone mention a script that would remove all the junk code created by evolution, leaving only the functional parts. Anyone know anything about this?

Here is the code for the bot.
attached is a simulation file containing "Connectus Preservans" with free floating veggies and one with fixed veggies.

The way it attacks fixed veggies is interesting. If one of the bots manages to get enough energy from a veggie to reproduce, it usually ends up with both bots linked to each other and to the veggies. They continue to feed, wiping out the veggie patch they have attached to and rapidly reproducing, creating a large net of bots that completely engulfs the veggie patch, devouring it. Once the patch is gone, usually the bots start killing each other because they are so close together and all linked. The result is that the bots kill each other off until all that is left of that group are a few bots, usually tied together and circling pointlessly until one or two more die off. It's very interesting... I might make a video of it for those who don't want to test it themselves (or read all of this ;;).

Sorry for my rambling, but this interested me... if anyone else cares enough, feel free to ramble some yourself!

13
The Gene depository / Explosion virus
« on: August 04, 2007, 03:45:17 PM »
If you want to see a real explosion, try it using this bot of mine. It mutated during a battle against mutating veggies, giving it the tieing ability. It looks pretty cool if you put it in a sim and let it catch the virus, because it makes ties with all of it's children while shooting out the virus.

Here is the link to my bot.

Tell me what you think. Sorry about the length of the bot. Product of evolution.

14
Mutations / Connecto_Preservans
« on: August 04, 2007, 03:39:36 PM »
There are two things that you must realize about this bot.
1. this is the result of a while of evolution. The strain that developed linking (this bot) died off very shortly because linking to other bots got it shot up. Simply put, it is not an optimal bot.
2. THIS BOT WAS EVOLVED IN DB VERSION 2.1! I was messing around with the default bots in 2.1 to check them out, and this bot happened to show up in a fight between T_Preservans and mutating veggies. To see what the bot was really like, run it in version 2.1. I have not tested it much in 2.43 since I'm just now starting to use it. I'm pretty sure it works similarly in 2.43, though.

Here's the bot;
Code: [Select]
cond
  *.refdn
  20
  >
start
  4
  *40
  add
  .tie
  store
stop

cond
  *.eye5
  0
  =
start
  1
  *40
  add
  40
  store
stop

cond
  *.refdn
  20
  >
start
  100
  .aimdx
  store
stop

cond
  *40
  200
  >
start
  1
  40
  store
stop

cond
  *.eye1
  0
  >
  *.refdn
  20
  <
  *.eye5
  0
  =
start
  59
  .aimsx
  store
stop

cond
  *.eye2
  0
  >
  *.refdn
  20
  <
  *.eye5
  0
  =
start
  46
  .aimsx
  store
stop

cond
  *.eye3
  0
  >
  *.refdn
  20
  <
  *.eye5
  0
  =
start
  31
  .aimsx
  store
stop

cond
  *.eye4
  0
  >
  *.refdn
  20
  <
  *.eye5
  0
  =
start
  16
  .aimsx
  store
stop

cond
  *.eye5
  0
  >
  *.eye5
  50
  <
  *.in1
  20
  <
start
  5
  .up
  store
  add
stop

cond
  *.eye5
  49
  >
  *.refdn
  20
  <
  *.refnrg
  500
  >
  *.refshoot
  0
  =
start
  2
  .shoot
  store
stop

cond
  *.eye5
  49
  >
  *.refdn
  20
  <
  *.refshoot
  0
  >
start
  2
  .shoot
  store
  5000
  .shootval
  store
stop

cond
  *.eye5
  49
  >
  *.refdn
  20
  <
  *.refnrg
  500
  <
  *.nrg
  500
  <
  *.refshoot
  0
  =
start
stop

cond
start
 -1
  .shoot
  store
stop

cond
  *.eye5
  49
  >
  *.refdn
  20
  <
  *.refnrg
  500
  <
  *.nrg
  499
  >
start
  200
  .aimdx
  store
  div
stop

cond
  *.eye6
 -4
  >
  *.refdn
  20
  <
  *.eye5
  0
  =
start
  15
  .aimdx
  store
stop

cond
  *.eye7
  0
  >
  *.refdn
  20
  <
  *.eye5
  0
  =
start
  30
  .aimdx
  store
stop

cond
  *.eye8
  0
  >
  *.refdn
  20
  <
  *.eye5
  0
  =
start
  45
  .aimdx
  store
stop

cond
  *.eye9
  0
  >
  *.refdn
  20
  <
  *.eye5
  0
  =
start
  60
  .aimdx
  store
stop

cond
  *.eye1
  0
  <
  *.eye2
  0
  =
  *.eye3
  0
  =
  *.eye4
  0
  =
  *.eye5
  0
  =
  *.eye7
  0
  =
  *40
  100
  <
start
  .dx
  store
  40
  store
  5
  .aimdx
  store
stop

cond
  *.eye1
  0
  =
  *.aimdx
  0
  =
  *.eye3
  0
  =
  *.eye4
  0
  =
  *.eye5
  0
  =
  *.eye7
  0
  !%=
  *.eye8
  0
  =
  *.eye9
  0
  =
  *40
  100
  >
start
  4
  .up
  store
  5
  .aimsx
  store
stop

cond
  *.nrg
  10000
  >
start
  400
  .aimdx
  store
  sub
  20
  .repro
  store
stop

cond
  1
  0
  =
start
  0
  .dn
  store
  0
  .dn
  store
  0
  .dn
  store
  0
  store
  0
  .dn
  store
  0
  .dn
  store
  0
  .dn
  store
  0
  .dn
  store
  0
  .dn
  store
  0
  .dn
  store
  0
  .dn
  store
  0
  .dn
  store
  0
  .dn
  store
  0
  .dn
  store
  0
  .dn
  store
 -4
  .dn
  store
  0
  .dn
  store
  0
  2
  0
  .dn
  store
  0
  .dn
  store
  0
  .dn
  store
  0
  .dn
  store
  rnd
  0
  .dn
  store
stop
end

15
Newbie / Upgrading the default (2.1) install
« on: August 04, 2007, 07:23:29 AM »
Ah, I see. Thanks for the help. I ran all of the simulations in 2.1 just so that I could mess around a bit. I must say that watching the mutating veggies kill off their predators was fairly amusing, and some interesting behaviors emerged.

Now that I've seen all of them and messed around with a few things, I'm going to switch over completely to the new version. I've deleted all of the bots folder except for Alga_Minimalis (which I expect is completely compatible since it's only 1 gene... right?), as well as completely emptying the settings folder.

You know what that means... It's time to go... SHOPPING!!!!!!  
Off to the bestiary!  

Are there any bots that you would recommend? Simple ones to help me understand the code? Interesting ones? Fun/weird ones? (I tend to particularly like those...)

Pages: [1] 2