Hacking the Sci-Fi Contest Team Requirement

923531394944874135

We saw that some readers were not entirely happy with the team requirement for our Sci-Fi contest, which is running right now. We figured that those who do not work well with others might commit a bit of fraud to get around the requirement. But we’re delighted that someone found a much more creative solution. Why not enlist an AI to collaborate on your project?

[Colabot] is a hacker profile over on hackaday.io which is driven by ELIZA, a computer program that achieves limited interaction through natural language. Supposedly you add [Colabot] to your project and as it questions. We asked one on the profile page and are still awaiting the response. We think this itself could be a qualifying entry for the Sci-Fi contest if someone can find the right thematic spin to put on it.

As far as contest entries go there are only seven so far. Since everyone who submits an entry gets a T-shirt, and there are 15 total prize packages, we encourage you to post your entry as soon as possible. We want to see teams from hackerspaces and we can cryptically tell you that good things come to teams who post their project with the “sci-fi-contest” tag early!

Robot Foosball Will Kick Your Butt If You Play Slowly

foosball_pt3_1

Sometimes we find a project that is so far outside of our realm of experience, it just makes us sit back and think “wow”. This is definitely one of those projects. [Saba] has created a Robotic Foosball set that learns.

[Saba Khalilnaji] is a recent engineering graduate from UC Berkeley, and his passion is robotics. After taking an Artificial Intelligence class during his degree (you can take it online through edX!), he has decided to dabble in AI by building this awesome robot Foosball set.

His “basic” understanding of machine learning includes a few topics such as Supervised Learning, Unsupervised Learning and Reinforcement Learning. For this project he’s testing out a real-world application of Reinforcement Learning using the Markov Decision Process or MDP for short. At an extremely top level description it works by programming an agent to learn from the consequences of its actions in a given environment. There are a set of states, actions, probabilities for given state and action, and rewards for specific state and action sets.

Before we butcher the explanation anymore, check out his blog for more information — and watch the following video.

[Read more...]

A Deep Dive Into NES Tetris

Tetris AI

Back in 1989, Nintendo released Tetris for the NES. This detailed article first explains the mechanics of how Tetris works, then builds an AI to play the game.

To understand the mechanics of the game, the ROM source was explored. Since the NES was based of the MOS 6502 microprocessor, this involves looking at the 6502 assembly. The article details how the blocks (called Tetriminos) are created and how they move across the screen. The linear feedback shift register used for random number generation is examined. Even details of the legal screen and demo mode are explained.

After the tour through how Tetris works, an algorithm for the AI is presented. This AI is implemented in Lua inside of the FCEUX NES/Famicom emulator. It works by evaluating all of the possible places to put each new Tetrimino, and choosing the best based on a number of criteria. The weighting for each criterion was determined by using a particle swarm optimization.

The source for both the Lua version and a Java version of the code is available with the article. Everything you need to run the AI is available for free, except the Tetris ROM. If you’re interested in how 8 bit games were built, this dissection is a great read.

[via Reddit]

Teaching a computer to learn

[Łukasz Kaiser] programmed a computer to play Tic-tac-toe. That doesn’t sound very remarkable until you realize he never told his computer the rules of Tic-tac-toe. The computer learned the rules by itself after watching a video of two people playing the game (link to actual paper - PDF warning).

[Łukasz] wrote a small program in C++ to recognize the placement of objects on a Tic-tac-toe, Connect 4, and Breakthough board. This program sifts through winning and losing games along with illegal moves to generate a Lambda calculus-like rule set for the relevant game. Even though [Łukasz] has only programmed a computer to learn simple games such as Tic-tac-toe, Connect 4, and Breakthrough, he plans to move up to more complex games such as Chess.

The fact that [Łukasz] programmed a computer to actually learn the rules of a game gives us pause; in one of the fabulous lectures [Richard Feynman] gave to freshman physics students in 1964, the subject of Chess came up. [Feynman] drew parallels between learning Chess and performing research. Every move is hypothesis testing, and when a very strange move occurs – castling, en passant, and the promotion of a pawn, for instance – the theory of the rules of the game must be reworked. Likewise, when extremely strange stuff happens in physics – particle/wave duality, and the existence of black holes – scientific theory is advanced.

Yes, teaching a computer to learn the rules of Tic-tac-toe may seem irrelevant, but given the same learning process can be applied to other fields such as medicine, economics, and just about every science, it’s not hard to see how cool [Łukasz]‘ work is.

via extremetech

Robot overlords require chores in return for technological access

Looks like you might not be fully immersed in the digital world if you didn’t complete your chores. The members of the LVL1 Hackerspace have put together a lot of automation for their lair, but nothing drives home the utility of the system they call MOTHER like the shenanigan-preventing trash removal system. Or in layman’s turns, being nagged by MOTHER until you empty the trash can.

So here’s a bit of background first. Remember that sensor array that just had way too many environmental sensors on it? That is just one way that the automation system (MOTHER) measures its surroundings. It seems the hackerspace has been building a pile of scripts to interface with just about every aspect of the community.

For instance, the night before trash colletion the system starts by letting members know it’s trash night and someone needs to empty the garbage. There’s a pressure sensor under the can which alerts MOTHER to the fact that it has been moved. But what if nobody moves the can? Say goodbye to Google. Yep, it’ll block all Google searches until the chore is done. And that’s just one punishments in its bag of tricks.

So what if you just move the can and don’t take it out? No dice. MOTHER is also monitoring the garage door which needs to be open to get the extra-large can out to the dumpster. You’ve got five minutes to do that before she starts getting nasty.

[Thanks Jonathan]

Want to learn Artificial Intelligence? Good.

In a little more than a month, tens of thousands of people around the world will attend a class on Artificial Intelligence at Stanford. Registration for this class is still open for both class ‘tracks’. The “basic” track is simply watching lectures and answering quizzes, or a slightly more advanced version of MIT OpenCourseware or Khan Academy. The “advanced” track is the full class, requires homework and exams, and aspires to Stanford difficulty.

With thousands of people taking this class, there’s bound to be a few study groups popping up around the web. The largest ones we’ve seen are /r/aiclass on Reddit and the stack overflow style aiqus. The most common reply to ‘what language should I learn from this class?’ is Python, although there’s an online code repo that has the text’s working code in Lisp, Java, C++ and C#.

If AI doesn’t float your boat, there are two more classes being taught from Stanford this fall: machine learning and introduction to databases. Any way you look at it, you’re getting to take a class from one of the preeminent instructors in the field for free. Do yourself a favor and sign up.

Thanks to everyone who sent this in. You can stop now.

AI via Super Mario evolution

Can Super Mario teach you to think? That’s the idea behind using a simple version of the game to teach artificial intelligence. [Oddball] calls this The Mario Genome and wrote at program that can take on the level with just two controls, right and jump. He gave the script 1000 Marios to run through the level. It then eliminates the 500 least successful and procreates back to 1000 using the 500 most successful. In this way the program completed the level in 1935 generations and completed it in the quickest possible time in 7705 generations. He’s posted the script for download so that you can try it yourself. It’s an interesting exercise we’d love to see applied to more random games, like Ms. Pac-Man.

[via Reddit]