Machine Zero

Exploring algorithms for intelligent machines

The Rabbit Game

Discover various kinds of artificial intelligence algorithms by watching them play a simple game: a rabbit eating strawberries in a maze (humans can play too 😉). Play it here.

What should I do in this game?

The goal of The Rabbit Game is to demystify artificial intelligence, by watching how machines play the game. But first, you can play the game yourself to see how it works, get a good score and try all the various levels.

Then, you can let artificial intelligences play. Check out the 8 different artificial players; each has its own style determined by its stats--its strong and weak points (in the game, click on a stat to see what it means)

Try different AIs on different levels. Each level introduces something new that will make it tougher for AIs. See which ones get far, which one fail, and why they behave like this (in the game, click on "Learn more about me" to understand an AI's behaviour).

Additionnally, if you're a hacker, you can try to code an algorithm to go to the highest possible level. If it clears the last level, which is quite hard, you can win *a lot* of internet points (an awful lot, really).

What is the game truly about?

💡 Demystifying Artificial Intelligence

Artificial intelligence can mean many different things. Sometimes it just means a regular program that does something humans used to do. Sometimes it means a program that is resilient to errors. Sometimes it means a program that learns on its own how to perform certain tasks. Sometimes it's just used to trigger various emotions in news headlines and doesn't really mean anything.

The rabbit game helps seeing what various AIs are and how they work in a concrete way. It shows how each way of making intelligent machines has benefits and drawbacks

It helps realize that AI is not a homogenous topic but that it refers to a lot of diverse technologies with each their tradeoffs, and that in fact, they are all still quite dumb compared to us--yet :).

🐰 Cute for humans, tough for AIs

It's cute for humans in the sense that it's not hard to understand. It's more of a kid's game, adults will understand the various levels easily (which does not mean that they'll be able to get a good score).

What is interesting is to see what's hard or easy for different kind of machines. It's tough for AIs because contrary to us they don't easily understand and adapt to new rules, and the game has new rules at each levels

📜 The story behind the game

This game was initially developed to tell my friends in a fun way that we were expecting a child (born on 2020/11/11), thus all the references to strawberries, unpasteurized cheese and alcohol avoidance.

It was also a way to learn about Clojure (& Clojurescript), a great functionnal programming language

Then, the idea that it could be used as a simple but evolutive environment for training AI agents to become more and more clever came to mind.

🔬 AI reasearch: finding challenges simple to express but hard to solve

An issue in AI research IMHO is the fact that "intelligence" is not well defined--therefore it is harder to reason about it and to find new ways for machines to be more intelligent.

Being able to express various traits of intelligence as game levels in this simple setting would help thinking about new algorithms

To be fair, the first levels are actually easy even for AIs. But the last levels aim at being hard for them. Even though very powerful AIs developped recently in research labs would probably clear them without trouble, such AIs are complex and require a lot of setup, tuning and computing power.

The underlying goal is to explore the idea that if a task is simple to us, there may exists algorithms that can also handle it easily and that we can try to discover.

The Rabbit Game can be used in that respect, by making sophisticated mazes where finding the fruits is difficult, or by adding rules simple to humans but hard to machines, that require some form of transfer learning, symbolic reasoning, or abstract thought--lever that can make fruits appear in certain conditions, ability to destroy wall by performing specific move sequences, etc.

This is in my opinion an interesting approach to research artificial agents learning abstractions, high level reasoning, complex planning & decision making, etc., especially to observe how they behave.

It seems to me that in other simple games that have a narrow environment (e.g. cartpole), or in games that are already complex (e.g. modern videogames), it is tough to create new interesting rules for training agents.