Straight out of the box, Anki’s adorable robot Cozmo plays games, fist bumps, and uses its big, blue digital eyes to convey convincing emotional range. And its brain uses machine learning, so it gets more savvy as you play with it.

An update lets Cozmo start teaching you new skills as well. Anki' new app Coding Lab uses Cozmo to teach kids (and kids at heart) how to program.

Cozmo was not designed to teach, but that’s what makes the little rolling bot so good at it. Anki’s founders spent four years packing Cozmo with tech like facial recognition, machine learning, and automated path planning. (Its real brain runs off of a cloud-connected engine via your phone or tablet.) It turns out those 1.6 million lines of code are a powerful tool for demystifying robotics.

Anki

“We realized Cozmo is very much like an operating system like iOS or Android, but for a robot,” says Hanns Tappeiner, Anki president and co-founder. The company opened up that operating system last year with a software development kit that lets professional roboticists program Cozmo to do things like play tic-tac-toe or set an alarm clock. Programmers hooked up the little bot to Google's image recognition cloud, effectively turning it into a bewildered 2-year-old. “It would go around saying, 'Oooh sunglasses, oooh a Coke can,'" Tappeiner says.

Using the scripting language Python, researchers could program Cozmo to do pretty much anything. But Anki design Cozmo for kids, not roboticists. “What we figured out was there was no reason why we couldn’t make the exact same functionality available for our more core audience,” he says. “So not for a Carnegie Mellon researcher, but for an 8 year old.”

That required translating all that code from Python to Scratch, a simple programming language MIT developed developed for use in elementary and middle schools. Today, nearly all of Cozmo’s functionality is tidily wrapped up in graphical blocks of code that users drag and drop onto the app’s interface. That makes easy to make Cozmo do things like roll forward and then turn left. Repeat that block of code four times, and you’ve taught Cozmo to make a square on your kitchen table.

That same principle can program more complex behaviors. The goal, Tappeiner says, is to guide users through the most basic coding concepts and lead them to advanced languages like Python and C++. “We want to train people early,” he says. “The younger you can start, the easier it will be later on for you to really know how these things work.”