Function(); is an interactive installation which represents the concept of “responsive” using a tangible and visual approach. It also helps beginners understand one of the core concepts of programming languages… the function.

The user can apply tangible, functional pieces to the “Function Ball”. The program responds, executing different functions and changing the behaviour of the balls in the projection. Six functions were created and they are described as below:

attraction(); //the balls attract to each other
billiardBall(); //the balls bounce against each other
colorFilter(); //change the balls’ color from black/white to a random color
explode(); //the balls are exploded when they collide with the “Function Ball”
gravity(); //give a gravity to the balls and they drop down
texture(); //add a texture on the balls

Each tangible piece has 5 holes (with different placement), through which the light from the projector can trigger light sensors on the “Function Ball”. Each unique piece triggers a function which can effect the balls’ behaviour. The user can place one functional piece at one time and also the functions can be superimposed by different combinations of the pieces.

The programming is done with processing, which is aided in communication with the Arduino board.