Darwinbots Forum
Code center => Suggestions => Old Suggestions Awaiting Programming => Topic started by: Numsgil on April 15, 2005, 08:38:24 AM
-
What simulation tools would you like to see?
I'd love to get better graphs. The current ones, well, suck. Darwinpond (google it) has some pretty good graphs going on. And a way to save graph data to an excel exportable file, like the snapshot function, would be pretty cool.
Also, user definable 'best bot' parameters would rock.
And a control that charts the flow of energy in the simulation would be pretty cool too. It would show you how much energy flows into vegs, how much energy vegs use, how much energy flows into veg feeding bots or is lost to the simulation, how much energy bots use, how much energy is flowing into carnivores, etc.
-
DNA analysis tool: load the DNA in, then go command by command and see the stack and all the memory locations visually with newly-written values lighting up. When bot checks for something like the presence of tie or the value of eye, it asks you for input. At the end of the cycle the summary is given: "bot will shoot such and such particle, bot will move so much, its energy is going to be..." and so on.
-
New graphs would be nice, there not much use atm other than monitoring your sim while the video output is disabled.
Id like to see an improved console as well. Its a valuble tool for debugging bots but very user unfriendly. Maybe adjustable size, combine it with the 'Gene Activation' tool so you can view more than one cycles worth at a time without scrolling in a tiny box. And auto refreshed eye values. Current stack contents. As much as you can cram in basically.
More stats for indiviual bots as well. Nrg consumed/used, average nrg used per cycle, kills.
A DNA parser/checker would be cool as well. Nothin like hunting for a typo in 30 genes of F1 bot, useful for newbies as well.
Also theres an update for DarwinPond, GenePool4 (http://www.ventrella.com/GenePool/gene_pool.html). Havnt used it much though, I always get die offs.
-
DNA analysis tool: load the DNA in, then go command by command and see the stack and all the memory locations visually with newly-written values lighting up. When bot checks for something like the presence of tie or the value of eye, it asks you for input. At the end of the cycle the summary is given: "bot will shoot such and such particle, bot will move so much, its energy is going to be..." and so on.
That shouldn't be toooooo difficult to program.
Would you prefer the output to go to the console or into a text file?
-
Nice ideas Shen
A DNA parser/checker would be cool as well. Nothin like hunting for a typo in 30 genes of F1 bot, useful for newbies as well.
You do realize that the best way to do this now is to run the bot then look at its DNA in the info window. All typos come out as zeroes. It is pretty easy to see mistakes this way.
-
Would you prefer the output to go to the console or into a text file?
I was thinking everything real-time on screen :)
-
Yes, but its pain to check it out as the window is small and a complicated bot would have 20+ pages of code to check. Im also thinking of it as a newbie tool since most newbie bots posted have a couple of typos or a missing *. or something. A simple 'Check DNA' button that highlights any unrecognised labels, checks for cond/start/stop/end and so on would be ultra useful for your average newb. Even most of us have accidently put a 'start' instead of 'cond' at some point.
-
Console then?
We would just need an additional control added to the console to output your desired information following gene activation.
Depending on the level of detail required.
Something like this if gene 3
cond
*.eye1 *.eye5 >
start
25 .aimsx store
stop
1 -
2 -
3 - executed
*.eye1 = 52
*.eye5 = 10
condition = true
.aimsx = 25
stack 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4 -
5 -
etc.
The stack remains empty for this kind of gene and it seems pointless to display the stack as each the eye is added, then delete them again when the gene is finished, so displaying it once at the end of an activated gene would work best.
Let's say we used a turning gene such as DOM INV uses. Gene 3 =
cond
*.eye1 *.eye5 >
start
mult
25
stop
It would look like this
1 -
2 -
3 - executed
*.eye1 = 52
*.eye5 = 10
condition = true
stack 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25
4 -
5 -
The mult command just clears the stack so it doesn't show up here.
Would that do it or do you want to see each and every step mirrored in the stack?
-
I thought stack is never cleared unless some function removes values from it? Why do you say:
it seems pointless to display the stack as each the eye is added, then delete them again when the gene is finished
OK, here is what I was thinking. It should very-very basic, for people like me, who don't program much or for newbies. Some optional shortcuts may be available for advanced users to skip some of the stuff described below.
We have four windows:
- one shows DNA,
- one shows all memory locations (with special ones, like sysvars, highlighted slightly),
- one shows stack and condition stack.
- one shows stuff like energy, which bot depends on, but has no direct control over
You can modify any of these values manually if you want to. Like type in 5000 into energy.
You load the DNA in, press "GO" and program starts from the top. Say your gene 3 is actually one and only gene 1 in DNA. It goes like this:
cond
*.eye1
'program asks you for *.eye1 value, you input 52 (alternative - you actually place a second bot on a special tiny window so that values are measured automatically and realistically)
'you see 52 appearing on the stack
*.eye5
'program asks you for *.eye5 value, you input 10
'you see 10 appearaing at the top of the stack and 52 moving down
>
'you see 52 and 10 blinking a couple of times, then they disappear from stack and "true" appears on condition stack
'We see message: "Gene is activated!"
start
25
'25 appears on stack
.aimsx
'6 appears on top of stack and 25 is moved down on stack
store
'6 and 25 blink a couple of times and disappear from stack, memory location 6 blinks a couple of times and you see 25 appearing there
stop
end
Program shows summary window:
energy spent: blah-blah
actions taken: bot is turned N degrees to the left
Three buttons on summary window: "Start over", "Go to next cycle", "Done"
"Start over" resets all values and goes through DNA again (in case you missed something)
"Go to next cycle" processes all values and continues execution of DNA.
"Done" allows you to change things in all four windows, like change DNA, change mem location, values and so on. This way if you spot the problem in DNA, you can fix it right here in the window.
The reason I want it to be so basic is two-fold: 1. Coding for newbies will become much easier. 2. Analysis of complex (and especially evolved bots) will be much easier.
The problem with evolved bots is that they do a lot of crap that sometimes actually gets something done. And it is a hell to try and trace every single thing that they do, becasue they often do it in a non-straightforaward way. Tool like that would allow to easily spot things like stack overflows, weird actions and so on.
-
AHH! Now I understand what you mean.
I like this idea :D
One question I have is,
Would you like this to be exclusively a DNA debugging tool into which you directly enter a robot DNA file then follow it through stepwise or would you want it to be accessible during a simulation?
-
what would be awesome is if we can add stuff to egrids when that system is done.
-
I thought stack is never cleared unless some function removes values from it? Why do you say:
it seems pointless to display the stack as each the eye is added, then delete them again when the gene is finished
What I mean to say is that for a gene that isn't activated, the net result is no change to the stack, however in light of your latest explanation I see that it is precisely these step-by-step changes that you want to see.
B)
-
Just a stand-alone would be fine. Of course having that in actual sim gives it a lot more power. But a stand-alone would work too.
-
What I mean to say is that for a gene that isn't activated, the net result is no change to the stack
Not in mutated bots. They can have a condition like this:
cond
25
34
24
124
345
5683
4
34
start
blah
stop
This would fill up the stack regardless of whether the gene is executed or not, right?
-
I think it would be just as easy to put it directly in the sim, maybe with a toggle to. 1) bring in real values from the sim for the selected robot
2) Use a blank copy of the robot's memory and selectively activate its current genes using artificial stimuli.
Hopefully we can use the existing code to a large extent but it might require some reworking in places.
Definitely a worthwhile project though :)
-
What I mean to say is that for a gene that isn't activated, the net result is no change to the stack
Not in mutated bots. They can have a condition like this:
cond
25
34
24
124
345
5683
4
34
start
blah
stop
This would fill up the stack regardless of whether the gene is executed or not, right?
You're absolutely right!
What was I thinking? :wacko:
-
I think we need the kind of debugging tools that VB has.
Run to cursor, set up break points, that sort of thing. That way you can really concentrate on specific genes while ignoring genes that you aren't interested in.
-
Hows about a way to trace mutations backwards and find out what the mutation was, how many generations have had that mutation, how many bots now have it etc etc
-
How about:
- In the Script system: the ability to let DB play a sound or popup when a script is activated; so you know when a bot evolves something.
- Colour (as a verb) Mutations in the DNA window; new mutations in red, older ones in blue
-
Thanks so much for sharing. That's very helpful.
[you]simulation rachat credit[/you] (http://simulationrachatcredit.com)[/url]
-
Thanks so much for sharing. That's very helpful.
<you>simulation rachat credit</you> (http://simulationrachatcredit.com)
Umm... correct me if I'm wrong, but shouldn't that refer to your comment too?
Anyway, welcome to the forum
And here is my two cents:
The mutation coloring is a wonderful idea. Actually, we could probably color, or even format the text in the DNA window so that it shows the different mutations. We could even probably allow for a type of tool-tip to appear when hovering over mutated DNA, which might show the details on that sections past mutations.
-
that's interesting. thanks!
-
this is an interesting discussion.. thank you for sharing
-
There's something fishy going on here. Three posts by three new members. The post content is really non sequitor. And roughly identical across all instances. In a post that was essentially dead.
I'm deleting the users.
-
Some spammer testing code? Next thing to pop up will probably be an invitation for some dubious site where penis enlargement can be achieved.
-
Yeah I was wondering about those posts also. I have deleted a few topics and banned some spammers (who were much more blatant than these) over the last few weeks. If I'm remembering correctly they were all posts in Web Site stuff section. Maybe its time for reCAPTCHA for registration? Though the current one is already painfully hard.
Edit: Just went to check out the CAPTCHA again, it currently is reCAPTCHA
-
Yeah, it's using reCaptcha atm. And there wasn't anything overtly spammy about those posts or users, so I dunno what's up. My guess is a delayed thing, where after a few months they then go in an change the signature or text or something like that.
Also, when you ban/delete spam, send me a message about the user so I can keep tabs on spam traffic. When it spikes it tells me I need to rethink spam controls.
-
Interesting, that might be what I was thinking about
-
this is interesting. thanks for sharing
-
I hate to admit, but I was wrong. The dubious site was not for achieving penis enlargement it was for combatting erectile disfunctions. Sometimes I think the only way to get rid of spammers is by DOSing the sites consistently and immediately. Forget the capcha, hit them where it hurts. If spamming cost them more hits than it brings...
-
I hate to admit, but I was wrong. The dubious site was not for achieving penis enlargement it was for combatting erectile disfunctions. Sometimes I think the only way to get rid of spammers is by DOSing the sites consistently and immediately. Forget the capcha, hit them where it hurts. If spamming cost them more hits than it brings...
By the name of the website itself darwinbots.com, maybe this forum was attacked by bots. LoL ! Just kidding.
Just relax ikke, don't mind them too much.
gretchen morgan
-
Thanks for your infor
-
Hello all,
Just want to say thank you for such a wonderful information, it was really cool!
Thanks,
monkeyking