Wednesday, February 27, 2008

Bye, Bye Sony Aibo. Welcome Pleo!!!!



OMG!! I just discovered the coolest toy since tickle-me-elmo!!! It's called Pleo, and it's a robotic dinosaur. But this isn't your average robotic toy... This thing has sensors out the ass!! ... literally. It also has a sophisticated AI which it uses to learn things over time and has a variety of preset behaviors and reactions like tickling underneath its chin, holding it up by its tell and having it complain. I have a friend who bought one of the first 1000 units while he was in the U.S. and he brought it to the office today... soo freakin' cool.

The really cool part that interests me though is that the makers of Pleo, ugobe (You go become), has developed an Open Architecture behind their Pleo robot allowing anyone to plug in a USB cable and program their own behaviors into Pleo. You can download programs people have made on the internet for example and get some pretty cool behaviors like evil , evil, dinosaur, etc.

I have some ideas already. The Pleo has both an IR receiver and transmitter. With this, it can communicate with other Pleos, but it also means it can intereact via IR with say your TV. The idea I have is to combine these sensors with the use of image processing to get my Pleo to play Tetris with me by reading the colored-blocks falling on the screen and making decisions!!

This will also be my baby daughter's first birthday present! (May 19).

Monday, February 18, 2008

Jiu-Jitsu + AI = Kick-Ass!



So, I have an idea that's been rolling around in my head for a while, and I want to get it down on "paper." I have a project idea I can use for formal education in the study of Artificial Intelligence. I call it, "A Demonstration of AI Learning Techniques Using Kinesiology." The "Kinesiology" part comes into play in the form of Jiu-Jitsu--studying the anatomy, physiology, and mechanics of human body movement. I actually went from calling it "Applied Mechanics" to "Biomechanics" to "Kinesiology" as I think I have now reached the schweet spot. The "AI Learning Techniques" part is where I hope to discuss reinforcement learning techniques, genetic algorithms, etc. and apply them to figuring out the best possible moves to use in Jiu-Jitsu gameplay.

So, what do I mean by applying AI to Jiu-Jitsu? Well first let's talk a little about what Jiu-Jitsu is. Jiu-Jitsu is mostly centered around ground-fighting, although practitioners do practice standup fighting, but mostly just to get their opponent to the ground where most fights seem to end up anyway. At this point it becomes an art of knowing how to control and counter body-part movements, cause muscle tension pain, and making your opponent give up. Practitioners are experts at using their entire body fighting extremely well not just with their arms but with their legs, feet, chest, head, and even weight balance plays a big role to reduce and cause fatigue. Knowing how the body works and moves is necessary in order to gain the better position. In Jiu-Jitsu, position is everything. In fact, professional practitioners a rewarded points based on their dominant position (e.g. 2 points for a side-mount, and 4 points for a top-mount). Matches often end with a player submitting the other, however the precursor to this is by having the dominant position, thus most of the game in Jiu-Jitsu is establishing dominant positions. So the next time you watch UFC and see two guys rolling around on the ground, know that they are not humping but rather they are trying to establish the dominant position.

Anyone who has participated in Jiu-Jitsu training will tell you that although physically exhausting, it feels more like a physics class than fighting. "Grab his arm...now twist your body 90 degrees to the right...put your right leg around his back with a lot of pressure so he can't stand...now put your other leg around his neck trapping his head and arm together...and pull! (opponent submits)." Knowing the physical forces and limitation of the human body is something to be mastered over time with lots of practice. It isn't easy. There are common practices or "moves" people study and give names to, but professionals often tweaked the moves based on experience or invent entirely new moves altogether.

AI is good at predicting, learning, and improving at a rapid pace. What I want to do in this project is build an AI system that can invent and improve Jiu-Jitsu fighting techniques and show it. This AI program could possibly create moves no one has thought about because of its expert knowledge in Kinesiology and hundreds and even thousands of cycles practicing different moves through generations of trial runs only letting the best of the best evolve to the top.

Not only do Jiu-Jitsu students and teachers benefit from this system, but this research also forms the basis of a Jiu-Jitsu videogame where you can have Player vs. Player and Player vs AI matches. This system could be incorporated on platforms such as the XBox 360 and the PC. A special PC version, however could offer an SDK and common set of APIs upon which Players can code their own AI atop the core framework and test them out against other AI players.

I would make the SDK OpenSource of course and would be a great, fun platform for learning and developing the art of Jiu-Jitsu (off the top of my head, I could call it "Senthi-Su" for "Synthetic Jiu-Jitsu.")

Mass Effect, Xenocide, Ender's Game, AI/VI, and The Human Race

I started playing Mass Effect this past weekend and have logged about 16 hours thus far! It's a technically complex, graphically tasteful, addictive Sci-Fi which creates a 100% believable world of dozens of intermingling space faring species. But this is not a blog about Mass Effect per sé but just my take on some of the things involved in the game.

Storyline mistake?


I think I found a mistake made by the Mass Effect storyline. At one point you meet an Asari (humanoid alien) who talks about her father and feels ashamed because she is pure-blood (the child of two Asari parents). An Asari has the ability to mate with any species and they feel it to be
more advantageous to mate with another species in order to gain a better gene pool and enhance the race as a whole. Being a pure-blood means you are not helping the species and have nothing to gain. However, the Asari are an all-female species and so how could this Asari be a pure-blood and have a "father". Mistake right? However, now I realize that "father" in this case is really "mother." This Asari had two mothers (just calls one "father"). This is probably why the Asari always refer to them as "partners" to make things easier. The Asari have the ability to not only reproduce with another species, but also reproduce regardless of gender.

More on the Asari


The Asari are the sexy, intellectual species in the game. It's common for them to reach 1000 years of age. The first stage of their life is called the "maiden" stage where they spend most of their time acquiring as much knowledge as possible, exploring the galaxy, and interacting with other species. The second stage is the "matron" stage where they go around having sex with everyone and producing many, many offspring. The final stage is the "matriarch" stage where
they stop having babies and become leaders and counselors at the top of asari society.

Ender's Game and Xenocide


Having read the first two books in the Ender's Game Saga (by Orson Scott Card) ("Ender's Game" and "Speaker of the Dead") over the past several months, I've noticed some similarities between the Saga and Mass Effect. Sci-Fi novels tend to build on top of some of the same concepts and terminology, however I can't help but see sometimes direct similarities between Ender's Game and Mass Effect; I think the writers have read the books and were inspired.

<SPOILER ALERT>

For example, the idea of a Hive Queen who controls the "buggers" in a telepathic type way commanding everyone of her children at once harnessing an advanced hereditary, ancestral memory while being technologically advanced and dominant is central to the story of Ender's Game. Also, the fact that the entire "bugger" race was completely annihilated, an act of Xenocide after humans saw them as a huge threat is also part of the Ender's Game saga.

In Mass Effect, this hive-mind race are called the Rachni, and dominated most of the galaxy until they were finally wiped out, or thought to be wiped out. During the game you have to make, what I think is probably, the most important moral decision of the entire game. After finding out someone is trying to bring back the Rachni race having found a Hive-Queen egg, you have to decide to really commit Xenocide and wipe out the Hive-Queen thus sending the Rachni to permanent extinction, or let them live and risk another War and Rachni dominance. Similarly, Ender who was the one who almost wiped out the entire "Bugger" race, finds the last remaining existence of the "buggers" as well. He finds a Hive-Queen egg, and having felt guilty of almost committing Xenocide, he roams the galaxy for a place for a suitable place for the Hive-Queen to live and hatch its egg giving way for the "buggers" to live once again.

The whole story behind Mass Effect is not from the Ender's Game saga, but I'm glad to see they used it and other Sci-Fi novels as well as many original ideas to help shape and create one awesome game that I get to enjoy!

Sound interesting; Play Mass Effect and go read the Ender's Game saga... there's so much more gory details in there!

</SPOILER ALERT>


Artificial Intelligence vs. Virtual Intelligence


I'm kind of an AI junky and Mass Effect is packed with references to AI and VI. Many people
misuse the term AI and I think Mass Effect did a great job printing in BIG BOLD PRINT the difference between AI and VI. Virtual Intelligence (VI) is just a program which has access to a database of information, and with clever programming, is sometimes given a certain "personality" or attitude to make it act human. Just think of using Google by talking instead of typing and having it respond with a voice instead of text.

Artificial Intelligence, on the other hand, is more than just clever programming, it's a system that is able to reason and think on it's own and sometimes have the potential of becoming self-aware. The robot in the movie "I, Robot" is Artificial Intelligence. In Mass Effect, an intelligent humanoid race called the "Quarians" created a networked AI race which became self-aware and eventually turned on them and went to war killing to survive. This race is called "the Geth," and 300 years later, they have evolved and have become a huge threat to all species. This is why legal action was taken to repress the development of AIs in galactic society.

The Human Race


After playing Mass Effect and reading different Sci-Fi novels, there is one conclusion I made. As Humans, it kinda sucks to only live for less than a century. Even the most advanced medical science made possible probably would give us 200 years which is still kinda short compared to other species. Then again maybe living for a little under a century isn't that bad. I mean because our lives are "short-lived" it's more exciting and filled with more adventure (or at least has the possibility to be). Also, we develop faster. So maybe if we lived for two centuries instead of one, a 41-year old would really be a 21-year old--and it would suck to wait 41 years to become 21 and all rules that go away with that age like drinking. Heh, your parents would make you wait until you were 32 to date. So it's really not that bad if you make the most of your life.

Also, it kinda enhances the Human race as a whole with our rate of learning. In other words, Human society advances much farther in less time. Maybe this is one reason other species, in Mass Effect, are afraid of the Human race because we learn too fast, a curious species always eager to explore the unknown.

Great game, I can't wait to finish it!