[ODE] Back in ODE

whitt013 whitt013 at bama.ua.edu
Tue Feb 11 20:39:02 2003


Hey everyone,

I'm back after a bit of a break from ODE and my work-in-progress Evolutionary 
creature program.  I know a few people were talking about using ODE for 
evolving creatures of one type or another a while ago..... has anyone got any 
demos, working (open) source code, or experience they could throw my 
direction?

I'm aiming for a level of complexity that is higher than anything done before:
 a combination of aLife, genetic algorithm, and genetic programming models.  
Eventually, I'd like to have a cross-platform distributed application that 
creates a virtual world where everyone's creatures compete for limited 
resources over the net, and the gene pool is spread out over the entire 
planet.  A (slightly less ambitious) intermediate goal is to evolve creatures 
that can compete as a team against other teams of creatures, in games like a 
simplified football game.  (Both teams have a ball, start on the "50 
yard-line," and the fitness of a team is determined by the distance their 
"quarterback" carried their football, minus the distance the other ball got).  
I'll probably start out with just evolving motion, and moving on to 
sense-and-respond style activities, using the best of each simpler test as a 
starting gene pool for the next level up.  I'd like to have creatures consist 
of somewhere on the order of 50 to 100 bodies, all connected by joints of one 
type or another.  And I'd like to include a central brain (object-oriented 
genetic program, outputs variables for use in the other sub-brains), an 
individual brain for every joint, senses of sight (straight line, maybe 
bitmapped at some point), smell, touch, and a hearing/talking combination for 
creatures to communicate in the teaming and ecological environments.  Each 
sense and response will probably need it's own sub-brain to interpret the 
signals of the main brain and send back filtered signals for processing the 
next cycle.  I've got so many ideas in my head and not enough time to work on 
it with the real work..... maybe I can convince my college to give me a grant 
when I get it a bit more mature.  Either way, this is a call for advice, "it's 
impossible's", or "it's already been done. see.....'s".  Specifically, what 
part will ODE play in a program like this, is it stable enough to handle the 
stresses of a genetic algorithm, and is there another physics library out 
there that has the same functionality as ODE but is more accurate (and will 
fit in a college student's budget... i.e. free)?

Finally, a quick technical question.  Will I complete a given simulation of 
say 100 - 100 body/joint creatures faster by running them all in the same 
world (offset by enough that there is no chance of collision), or in 100 
separate simulations.  If in the same world is faster, would creating a 
separate collision space for each creature (and the objects in their section 
of the world) be faster, or is there another way to lower than nasty O(m2^3) 
term?

Thanks in advance for all the help,
David Whittaker