June 19, 2010
It has a Picaxe for a brain, two actuators and two sensors. But most of all, it has a symbiont robot inside. A second robot, with its own brain. The second robot is called the "Arbiter". The Arbiter's function is to judge the "fitness" of DarwinBot's behaviour and report that back to my computer.
So now I finally have a way to evaluate the value of the DNA or programming produced by my genetic algorithm. The feedback loop is closing.
Arbiter can also judge the code produced by YOU! DarwinBot is fully interactive. It's not only hooked up to the Internet via video, but also via a chat channel (IRC). Using a few very simple commands, you can submit a picaxe basic program to be uploaded into DarwinBot.
A so called "IRC-bot" called reception_bot will receive your code and put it in a queue on disk. Each piece of code will be automatically checked and uploaded. You will see live on video what DarwinBot does with your code. It might be nothing, it might be mayhem. That is supposed to be a surprise!
Reception bot "will add your biological and technological distinctiveness to our own." Once your code has been accepted, it is added to the growing gene pool (which sits on my hard drive). The "monkeys" in my computer will use it for all their copying and pasting. The better your DNA fits the situation, the more likely it will be reused for new DNA.
My overall feedback system is not yet complete, unfortunately. I am still writing new scripts to communicate with my arbiter bot. I also want to give the fitness score back to you. And I want to share all the "successful" DNA with everybody, so that you can learn from other people's successes and mistakes. Stay tuned for updates. Here follows a short handbook for DarwinBot programmers as it exists today.
1) Visit DarwinBot's Ustream channel: http://www.ustream.tv/channel/darwinbot
2) Make sure you've got chatting rights in the IRC channel. Say hello to the others there.
(try signing up with Ustream, if you're not allowd to speak)
3) If others are in the channel, observe what they are doing (probably just scratching their heads in frustration and impatience, just like you).
4) In order to submit your code, you must use two commands for reception_bot. Commands start with a semicolon ;
;accept and ;end
5) You start your code with ;accept. reception_bot announces "now accepting DNA named "domqe" to be submitted by XYZ ..."
6) Then, paste or type your code. One-liners are easiest. Multi-liners are also welcome.
7) Close your submission with ;end. You will notice "now storing DNA named "domqe" submitted by XYZ ..."
8) Wait for the system to process your DNA and watch what happens.
A few notes:
reception_bot assigns a random five letter name (like domqe) to your code. It will be the identification code for future reference.
Your IRC user name will be stored with the DNA.
It will take a while before your DNA is uploaded. The system is not (yet) capable of informing you what it is doing. Be patient.
Other people may be submitting code at the same time. reception_bot only accepts code from one person at the time.
Do not forget to close with ;end, or reception_bot will wait forever (this will be improved later).
The ustream link is eating up my DSL bandwidth. DarwinBot will not be on-line 24x7.
If you prefer your own IRC client, visit irc://chat1.ustream.tv/darwinbot .
Any questions, requests, suggestions and remarks about this experiment are welcome, here on this page, in the comments.
If you like mysteries: try and figure out the wiring of DarwinBot! Report back here on this page. Share your findings. Consider this an on-line puzzle adventure game. Once y'all figured out how the bot is wired, I will have finished the feedback system. Then you can start comparing scores.