31
Darwinbots3 / Re: Bot testbed
« on: November 10, 2017, 07:02:00 AM »
Yes, I was thinking along the same lines. There are two issues to think about:
If you pinch a bot, are the two resulting shapes valid bots? You have to take the points on the perimeter of the original bot that formed the endpoints for its spindles and map those to the spindles of the new daughter bots. Even if you try to make the nucleus of the daughter bots as close to the nucleus of the original bot as possible, they can't exactly overlap, since spindles have a minimum length so the nuclei have to be 2x that minimum distance apart. We could just disallow reproduction until the two resulting daughter bots would be valid, but that's maybe a bit finicky. We could let them split in an invalid configuration and just softly correct it over a few frames, but that has implications for physics.
Second, if bots reproduce by pinching, that means they need a mechanism for adding more spindles. Again, the spindles are a uniform angular distance apart, so adding 1 more spindle to a bot changes where the end points of the spindles are. For bots with lots of spindles that's not that big of a deal but if your bot had like 7 spindles, the difference is pretty obvious. Do you snap it in to the correct place, or move it slowly over multiple cycles? Either way has strong implications for either physics or DNA control.
Alternatively you could have bots only be able to double, triple, etc. the number of spindles they have. That would let the new spindles appear between the existing ones and not have to change the geometry at all. But it does limit the behavior of bots somewhat.
These aren't insurmountable issues, but I don't have clean answers to them yet, either.
If you pinch a bot, are the two resulting shapes valid bots? You have to take the points on the perimeter of the original bot that formed the endpoints for its spindles and map those to the spindles of the new daughter bots. Even if you try to make the nucleus of the daughter bots as close to the nucleus of the original bot as possible, they can't exactly overlap, since spindles have a minimum length so the nuclei have to be 2x that minimum distance apart. We could just disallow reproduction until the two resulting daughter bots would be valid, but that's maybe a bit finicky. We could let them split in an invalid configuration and just softly correct it over a few frames, but that has implications for physics.
Second, if bots reproduce by pinching, that means they need a mechanism for adding more spindles. Again, the spindles are a uniform angular distance apart, so adding 1 more spindle to a bot changes where the end points of the spindles are. For bots with lots of spindles that's not that big of a deal but if your bot had like 7 spindles, the difference is pretty obvious. Do you snap it in to the correct place, or move it slowly over multiple cycles? Either way has strong implications for either physics or DNA control.
Alternatively you could have bots only be able to double, triple, etc. the number of spindles they have. That would let the new spindles appear between the existing ones and not have to change the geometry at all. But it does limit the behavior of bots somewhat.
These aren't insurmountable issues, but I don't have clean answers to them yet, either.