General > Toy Planet
Toy Planet: candidate for DB3?
Ammeh:
Glad you like it :)
I'll take a look at that tomorrow, should be easy enough to do.
cliftut:
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! :)
Ammeh:
Feedback is always appreciated!
I've been pretty exhausted from work recently, so I'm struggling to find time and energy to actually work on personal projects, but all of your suggestions are great, and I'll certainly put them in when I have the time.
The genealogy tree functions have been mostly disabled by default, but it wouldn't be a huge amount of effort to make them configurable. The code's all there and working, just disabled by a flag. The program for visualising the tree is pretty rough around the edges, but that all works too. I'll see if I can get that upped for you.
If by "advanced characters" you mean unicode, it's a bit of unexpected behaviour that I thought was pretty cool. By default, Java's String objects are unicode, and the code I'm using to mutate the string works at byte level. What this essentially works out as is that while most mutations result in a standard ASCII character, if you get the right mutations next to each other, this can create a unicode character. The interesting bit comes from the fact that the DNA processing will get the value of the next valid character, be it unicode or ASCII. This means that while I had only initially intended operators to work on values of 0 to 256, a bot can sometimes save itself some work (ie, multiply 256 by 4 to check energy against) by getting the value of a unicode character, with values up to 65536 (iirc).
cliftut:
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.
Botsareus:
... I have to make a note here that I actually like the way Ammehs graphs work; It is a really original approach. Maybe a way to save graph data periodically to the file system and then have a program to analyze it (like I have done for DB2) will be better.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version