Mutating Animations 218
Weird_one writes "Discover magazine's current issue has an intriguing article involving using genetic algorithims to evolve an animation of a walking individual."
The Macintosh is Xerox technology at its best.
Just wait for the game with this feature... (Score:5, Interesting)
But I think I'll still have to wait like 20 years for that.
If you liked that.... (Score:5, Interesting)
Not quite as slick but a lot more amusing.
Re:sceptical (Score:5, Interesting)
I read something about this idea a few years ago. I'm pretty sure it was by the guy that did BMRT... a thesis paper of his or something.
Basically, the redid the animation of "Luxo" in pixar's animation short. "Luxo" is the bouncing desktop lamp. Making animated characters (even those that aren't human) move "nicely" is quite hard. It takes a lot of work.
For their project, the specified the constraint: That Luxo must move from point A to point B, and that's all. The only input the model had was "how much force to use on each joint at each particular time". So, they were animating its "muscles" with a genetic algorithm, and also running a physics simulation on the system. (They assigned mass to the individual components, etc).
It evolved several techniques of locomotion: The "standard" bouncing hop (which the "real" luxo does), dragging itself across the table, somersaulting, etc...
In short, they came up with good looking animation, without requiring much user input. And in the end, they had a genetic algorithm which could make Luxo walk any distance, without requiring the work of an animator.
This is important, because although its relatively easy to just loop an animation, it looks rather unnatural.
Coolest Java applet ever: BioBloc (Score:5, Interesting)
In addition to assembling your own creatures, you can also load creatures that others have previously assembled, as well as enter your creatures into contests. A lot of the previously assembled creatures are -very- impressive, with movements quite similar to those evolved in nature.
Non-GA Approach (Score:1, Interesting)
While this isn't technically a GA approach, it does provide simialr results in real-time.
Check out his cool applet [nyu.edu].
Levels of thinking (Score:3, Interesting)
Then the human mind goes and creates digital computers, which again can do things the Neural network can't (and vise versa).
Anyway, just thought it was intresting.
it's like NP complete (Score:4, Interesting)
On the other hand, there are a lot of things that you can use GAs for.
Re:Just wait for the game with this feature... (Score:4, Interesting)
This does not have to be done real time to work. Most likly you would just need to compile the AI once for an enviroment and just record the results of the last generation to a file to be used later.
Genetic Algs, Boids and artificial life (Score:3, Interesting)
So, if every thing (boid) is telled to steer to avoid crowding local flockmates, steer towards the average heading of local flockmates and steer to move toward the average position of local flockmates, they start to move as a flock (!).
This approach of obtaining a more developed behaviour in an automatic (more accurately in an "emergent" way), is a lot related to genetic algorithms (GA) evolving an animation model, 'cos is exactly the opposite approach: In the first one the designer must specify the underlying mechanisms that permits the animation, while in the latter the designer must specify the result that is desired.
What I found more appealing of GA's approach is that the system can outperform the initial specifications, as is noted by a lot of papers [channon.net] in ALife. Some have developed an artificial world (in the paper linked above is named "Geb") where individuals can develope a (eventually) coordinated behaviour to survive (the fitnness function is an implicit
"survive function").
What would be cool is to use GA in a pre-determined way to evolve (in a explcit way) the basic behaviour that construct the coordinated mass beahaviours (like boids' flocking).
--krahd
mod me up, scottie!
Re:Just wait for the game with this feature... (Score:5, Interesting)
not the same, but different (Score:4, Interesting)
It doesn't evolve moving critters, but one of the included examples evolves 3d plants that compete for sunlight (kind of, sort of).
Another of the examples included allows the user to evolve midi files - with seriously odd results. Things may get odder though, I'm currently trying to figure out how to decompile midi files into source grammars then do crossover and mutation on them. Imagine Mozart crossed with Metallica.... Beethoven with the Brittany, or... I'd better not say, likely to get attacked.
Re:Just wait for the game with this feature... (Score:4, Interesting)
Years ago I wrote a Tcl-scripted netrek hockey bot. I could reload its script on the fly, so its behavior could change. Early on people learned that it just shot towards the goal everytime. Then all of a sudde, during a game, i loaded in new code that passed to a teammate instead of always shooting on goal. The other team was floored, as the perfectly executed pass led to a goal.
Sure it hadn't used some advanced AI (rather it was trivial and totally artificial), but it was enough to fool some of the people.
Preload the AI with enough info to make it interesting when you start the game. But if it can learn enough (not necessarily in real time) to come back and bite you in the ass on level 12, its probably doing pretty well.
Reminded me of sodaconstructor (Score:3, Interesting)
The thing that triggered this memory was the talk of "700 independent parameters". I pictured each muscle in this virtual walking body to be much like the line segments in sodaconstructor. The difference is that instead of a human thinking about how to adjust each one, random mutation adjusted them and evolution selected them.
It's for beer too! (Score:4, Interesting)
The practical side of me says it would never fit into the usual slot they are stuffed into by kitchen designers, but I like it anyway.
Don't get too excited (Score:5, Interesting)
Don't get to excited about the walking man - the difficulty and also art in Genetic Algorithms is finding a way to represent a candidate solution. The walking man isn't difficult to represent. To make it simple, pretend that the representation is like, work out a way to order the numbers 1..10 - where 1 == man crawling and 10 == man walking and the rest of the numbers in between are ordered to represent a certain posture. The genetic algorithm then searches through all the combinations and permutations of the numbers 1..10 until they are ordered - btw, instead of drawing numbers let's associate a number with a posture.
Now with this problem - think of a pool of numbers, each number associated with a posture and the Genetic Algorithm searches through the pool (of 100) until it finds the numbers 1..10 in order all standing next to each other.
---
Walking is solveable by hill-climbing (Score:4, Interesting)
Running, though, is harder. Steady-state running is reasonably well understood, but running on rough terrain remains hard. To control running well, you need predictive techniques - look-ahead, two-point boundary value solvers, and model-based control. This is where the insect brain leaves off and the lizard brain starts, and may be the beginnings of low-level AI.
Re:Just wait for the game with this feature... (Score:2, Interesting)