——– The Idea ————–
The goal is to keep each person as long as possible at the installation. The “evil computer” will adapt to accomplish this. We’ll create a game-like interface where a person must pump water into a tank to “save” the rubber ducky (they are in for a surprise). To make the “game” more engaging, we will incorporate water sounds and quacking sounds. The computer is able to adjust the leaking speed of water to make it more “interesting” for the person to try and keep him/her as long as possible. Based on each trial (=person) and how long the person stayed, the algorithm will adjust the strategy for changing the water leakage speed. It may also choose one of “physical” actions: make a quacking sound, flash a light, etc, or nothing; that the computer can use to try and attract more attention.
To keep track of a person’s playing time, we’ll most likely use a pressure pad (rigged in the keyboard circuit fashion). We think this installation might fit nicely on the water floor of the Children’s Museum.
We want a hand-drawn-style animation to 1. simplify work for graphics 2. because we want the “game” to be as simple as possible, as opposed to looking like the complicated games with amazing graphics that attract people through many many means. We want to demonstrate that even with a very simple mechanism we can keep people’s attention.
When the person finally leaves, we’d like to print a receipt that says: “We kept you here for ___ minutes and ___ seconds. You tried and failed to save ___ rubber duckies and burned ____ calories.” As Osman suggested it’d be great to attach some meaning to the time wasted, e.g. “224 people died
Another byproduct will be all the data we get from the learning process (kind of described below).
An extension, if we had the space, would be to create a “back room”, where one can see the computer analyzing its results. For example, there would be a screen showing many graphs like “staying time vs. parameters”. Also, we can have the pump be connected to a fan in the backroom that is blowing on the computer, hence showing that the computer has a self-interest in keeping people there. For more drama, we can make a fake generator that the pump is powering such that the computer needs its batteries charged to survive. Even more sinister would be to have a half-mirror so that one can see people pumping from the backroom.
——– The Learning ——–
We’ll use some form of reinforcement learning (Least Squared TD?) to choose the next action (a=(water leak speed, a physical action=(beep, quack, blink lights, nothing, etc)) given the current state (x =(water level, last 5 seconds of pumping speed, how long the person has been playing, how long the person has been playing this “level”, camera input?, current leaking speed?)) and chosen action. The reward here can be either the simple “whether the person left or not”, or we can try to estimate p(person leaving) given the state (x above, or some camera input) and formulate a reward that way. Such an estimator would most likely be learned offline.
—– Requred materials ——–
A projector, a receipt printer, a laptop, a bike pump (maybe something to feed back pressure), some wires and a broken keyboard (got a couple :), some rubber pads.
—– Time line / priorities ——
For the basic system, we need:
* a working animation system, a rigged bike pump interface (magnetic proximity sensor??), a foot pad to recognize a user (how??), the basic machine learning algorithm / implementation (perhaps use simple face detection as another feature or reward)
If we have time, we will work on
* tracking people with a camera, a receipt printer system, computer’s survival system (probably a fan), computer’s self-analysis graphs, train a x->p(leaving) function