Author Archive

The Swimming pool

The Swimming Pool is a 1st stage prototype  for an art installation, which will explore the use of swimming pools in european and North American films as a signifier of forthcoming disaster often resulting in a death or murder of one of the  characters committed or experienced by a protagonist. In this case a swimming pool plays the role of a proverbial  rifle, which if introduced into a scenario has to end up shooting someone. The two films used in the installations are a French/German film “The swimming pool” produced in 1969 and British/French film “the swimming pool” produced in 2003.

The idea of a miniature swimming pool was an immediate reaction to the water park assignment. I had been thinking about trying a miniature installation for quite some time but never had a chance to attempt it. I had seen both films long time ago but they remained somehow in my memory and it was a perfect opportunity to try out the concept.

The work process: 

My first idea was to have an open rectangular container into which I will project a video of a woman swimming. An interactive component was to have the swimmer to follow the movement direction of the viewer. So if the viewer will be moving to the right the video of the woman swimming in that direction will start. If the viewer will move to the left the swimmer will appear from the right side of the container and will swim to the left. In case when there will be no movement – the swimming pool will remain empty. For that 3 videos will have to be loaded into the processing and the code will have to be written to switch from one to another with the change of direction. Instead of the sensor I was going to use the webcam and the movement tracking code which Nick showed us. I started with the code. Chris Olsen helped me with brainstorming the code and we came up with the sketch.


Experiment 1

I bought a container and attempted to project on it from a small Pico projector.


Experiment 2

The downside of this idea was that in order for effect really work I needed a long container, in order for a viewer to move alongside it with the swimmer. But there were no such containers at the store. I bought a few of the same to put them one next to another but the look and the feel was cheap and uninteresting. In the store I had found a variety of large glass boxes, which looked interesting and gave me an idea of placing the swimming pool into the box. I went back to the store and bought one to experiment with it and see if projection will look better inside the box.

Experiment 3

I was still experimenting with the set up of the box adding grass and water.

The idea for interaction changed also and I decided to use the photo sensor and Arduino to work with processing. The idea evolved into having a sensor inside the box so the projection could be triggered when the box will be open. When the box will close the black rectangle will cover the image. As a sample for the code I used the sketch I found on I made appointment with Jackson, our TA and we were working on the code for almost 3 hours. However, we couldn’t establish a reliable communication in-between Arduino and Processing. The troubleshooting took a long time. We established the values for the sensor but the printl was reading a different value. It seems that the issue was that Arduino was sending a number but the processing was receiving it as a string. This is an unfinished processing code from this session:

Movie theMov;
Movie theMov2;
boolean isPlaying;
boolean isLooping;
boolean direction = false;
int lValue = 0;

String[] inSensor = new String[1];
Serial myPort; // Create object from Serial class
int val; // Data received from the serial port

void setup() {
size(640, 480);

/////// Initialize the Serial object and print serial ports
//tring portName = Serial.list()[7]
myPort = new Serial(this, “/dev/tty.usbmodem411”, 9600);
// myPort.bufferUntil(‘\n’);

theMov = new Movie(this, “Act 1 transition 2-Medium.m4v”);
theMov.loop(); //plays the movie over and over
theMov2 = new Movie(this, “Act 1 transition 2-Medium.m4v”);
theMov2.loop(); //plays the movie over and over
isPlaying = true;
isLooping = true;

void draw() {

// if ( myPort.available() != 0) { // If data is available,
// val =; // read it and store it in val
// println(int(val));

if(val >= 10){
isPlaying = true;

if(val < 10){
// theMov.stop();
isPlaying = false;
println(“movie stopped”);
direction = !direction;

// }

if(isPlaying == false){
// theMov2.stop();
// rect(0,0,width,height);

if (isPlaying == true){
if (direction == true){;
image(theMov, 50, 50); //mouseX-theMov.width/2, mouseY-theMov.height/2);
if (direction == false){;
image(theMov2, 50, 50); //mouseX-theMov.width/2, mouseY-theMov.height/2);


void serialEvent(Serial myPort){
String inString = myPort.readStringUntil(‘\n’);
if (inString != null){
inString = trim(inString);}

//inSensor = split(inString, “,”);
//if (inSensor.length>=0)
// lValue = int(inSensor[0]);

val = int(inString);
void movieEvent(Movie m) {;

void keyPressed() {

// if (key == ‘p’) {
// // toggle pausing
// if (isPlaying) {
// theMov.pause();
// } else {
// }
// isPlaying = !isPlaying;
// } else if (key == ‘l’) {
// // toggle looping
// if (isLooping) {
// theMov.noLoop();
// } else {
// theMov.loop();
// }
// isLooping = !isLooping;
// } else if (key == ‘s’) {
// // stop playing
// theMov.stop();
// isPlaying = false;
// } else if (key == ‘j’) {
// // jump to a random time
// theMov.jump(random(theMov.duration()));
// }


Experiment 4

As I was working on the code my idea about the project continued to evolve. I wanted to have a more elaborate set up then just one box. Since my concept was around 2 movies – I wanted to have to spaces representing each movie. So I went back to the store and bought 2 identical boxes to try my idea. Two boxes felt immediately much better and it was clear that it was the right choice.



Experiment 5

I’m trying out the edited video of the swimmer in one of the boxes.


Experiment 6

After experimenting with the video and the grass I felt that the set-up in the boxes has to be more elaborate with the miniature objects which could be arrange to signify a murder. I bought some samples of miniature furniture and tried different things out till I found the set up, which felt right.


Experiment 7

While working with the miniatures I felt that something was missing visually from this set up. The projections were too small and there was a lot of negative space on the sides. I also felt the the narration needed another line through. In both movies much of the action in the swimming pool is being observed, spied on from the main house. As well as encounters between men and women are also being reflected or visible through the windows of the house. So the house was not represented in my set up. I decided to use tablets fastened to the sides of the boxes for the display of the close-ups of the voyeurs spying on the swimmers. I edited 4 videos and put 2 of them on the tablets on the sides of the boxes.

Experiment 8

In order to have one video feed playing in two swimming pools I had to calculate the size of the frame and create a mask which will allow the 2 videos play side by side in the same frame. I also wanted to have the lighting for the grass and the miniatures on the sides of the swimming pools. My friend and editor Scott Edwards helped me with creating and layering the main video for the projector.

Experiment 9 

This is a process we went through measuring the area and creating mask in the photoshop.



Work on the code

The code had to be completely rewritten. Now one movie was running on a loop throughout the presentation. The boxes were wired with 2 light sensors. When both lids were closed the black rectangular box was blocking all of the image. When one of the lids was open – one side of the black box was removed and the video was visible. If both lids were open – both black masks were removed and both videos were visible.  The communication in-between Arduino and the processing was simplified and only 4 signals were sent to the processing using binary code.  00 – both boxes closed; 01 – left box open; 10 – right box open; 11 – both boxes open.


swimmingpool_schem                   photo 2




It was very interesting to work on this project. The evolution of the idea and the execution in such short time frame made me very focused and I enjoyed the challenge. I also was happier than with my previous project because I decided to approach it right away as an art installation rather than just a technical challenge. Thinking in a broader sense was more satisfying and the ideas were more interesting. I would like to continue to work on this project in the future. I already have a few ideas about how to make it into a full scale art installation. For that I will have to figure out manufacturing of the boxes and  I would like to experiment with 3d printing of the miniature set. I also would use the screens instead of projections and will try to shoot tilt/shift as Nick suggested.




here comes the spider

Project Description 

“Here comes the spider” is a part of a Haunted Spaceship interactive installation created for the Creation & Computation class. The assignment was to create a responsive environment  using Arduino hardware and software.

In this project I used Arduino Uno board, Infrared Proximity sensor, LED white light, mini servo motor and 330 resistor. I also built a housing box from white foam core and mixed a large amount of green transparent sludge using water, Guar Gum, Borax and Glycerine. I used the recipe  from Stratford Festival prop department, which was given to me by Monica. I also used a plastic spider as a servo motor arm.

The final product was a spider covered in bright green goo on top of a box housing the board and all the components, which moved with a different speed depending to a proximity of the viewer.

Circuit Diagramms 


here goes the spider

goo_sweep_with_spiders _schem




Process Journal 

My goal was to use some of the sensors and motors we learned about in combination with Arduino board and the basics of arduino   programming language in order to make an object to respond to human presence and behavior.  In a very simple way.  To tell the truth I was not thinking about artistic value of this work or the complexities of narration. In response to the “space station” idea  in combination with the haunted house theme I came up with the most obvious visual cliche – goo. It must be the result of all those alien movies with insect like repulsive creatures dripping something from their mouth.

The first idea I had was to have a transparent container/small fish tank full of green jello with a servo motor and Arduino hidden in the lamp housing and agitating the jello when someone comes close. I was hoping that the jello would be moving and shaking as if something alive was going to come out of it and attack you . I researched the jello like synthetic substances since I didn’t want to use the food stuff and have to refrigerate it. Googling slimy toys and alien brains produced a variety of exiting looking stuff  I imagined would be available at the local toy store.  Unfortunately aliens are out of fashion at the moment and all I managed to find was one sad looking ninja turtle capsule with watery substance of strange colour.  A trip to the halloween party store was unsuccessful as well and in a fit of desperation I purchased half of a rubber heart and 2 plastic spiders.

I had to rethink my idea incorporating whatever I had at hand. This was the first time when I actually thought about what kind of sensor I would like to use. Since the only sensor I used in class so far was the light sensor I had to research what else was available and what it means to have a sensor measuring a change in certain condition.  The sensor measuring distance seems  to be appropriate and I found a few types available at Creatron. My first choice was an ultrasonic sensor but they were too expensive and I bought the proximity sensor instead. I also purchased a bigger and brighter  LED.

When I laid out the actual physical objects I had I realized that in order to hide the board, motor and the sensor I will have to build a box and whatever I wanted to move will have to live on top of it. I still was attached to the idea of something slimy but the issues of finding it and figuring out how to contain and move it was making it unnecessary difficult. However on Thursday after we were describing our ideas in class Monica told me that there is a recipe  for a sludge like  substance Stratford Festival uses in Alice in Wonderland show. They make buckets of it every show for their Humpty-Dumpty death scene. She emailed me the link and I was able to find all the ingredients. Unfortunately I left the sludge making till the very last moment.

I didn’t have much problem connecting  the sensor and the light to Arduino board using the examples on Arduino site and researching this particular model of proximity sensor GP2Y0A41SK0F IR on line. I found a Lucky Larry’s blog with this exact sensor used for distance calculation and I used his code in my program.

Writing of the program was a very difficult enterprise. I am an absolute novice and although I am starting to understand the logic of code writing I am still far away from writing something on my own. The best I can do is to combine some stuff from examples and exercises and try to adjust it. I had a plan that I can use the two pieces of code we tried out in class and I understood – Sweep and Calibration. I was going to add to that Lucky Larry’s code for the sensor and hope it will work. However Larry’s code was more complex than my understanding.  Since Kate mentioned that it’s ok to ask for help  if it will help you to learn things out in the process – I asked my partner to help me and together we tried to figure it out.

The main problem was to calibrate the movement of the servo arm in a way that it produced a realistic movement and had just the right timing of the delay to move all the way. If the delay was too short the arm didn’t have enough time to make the full sweep and return to the position 0. The other problem was to calculate the distance and to relate it to the intensity of the movement. My idea was that shorter the distance measured by the sensor is – faster is the movement of the servo. We used the serial monitor to find minimum and maximum proximity values and to try out different combinations of proximity and delay time. If the delay was too short the movement didn’t have enough range to be distinctly faster. The servo was moving in steps of 1 degree. I also wanted to have the LED to be connected to the proximity and to come on slowly depending how close the person was. However I was unable to make it work and the LED had only two states – on and off.

After I built the box and attached the Arduino and the motor inside it – I started with the goo. Unfortunately the recipe didn’t seem to be accurate and I spent hours trying to make it the right consistency.  I also wasn’t sure about the type of a container, which would work with the box I built and  look good. It couldn’t be glass because I had to cut a hole in the bottom of it for the servo. The spider was the last second idea. I attached it to the servo instead of an arm and it fit perfectly. I couldn’t completely abandon the goo idea since by that time I made buckets of it – so I poured some of it on top of the spider hoping that it would make it more alien looking. I was not sure that the whole contraption will survive the trip downtown – but it did and worked perfectly all evening long!


Looking back I find that the whole experience was very involving and exiting. However after I saw everybody else present their work and had time to reflect – I find that I would approach the next project (if we will have to do similar projects in the future) differently. I would try to think about the environment and how I want to affect it in more complex ways  and I would think about technology in that context. And see what’s possible. At least as a starting point. Making something work is challenging and interesting too, but having a more complex idea around it might help to focus the mind and to see some unexpected solutions.

photo 1 photo 2 photo 1 photo 4    photo 5 photo 3photo 2 photo 1





Use of this service is governed by the IT Acceptable Use and Web Technologies policies.
Privacy Notice: It is possible for your name, e-mail address, and/or student/staff/faculty UserID to be publicly revealed if you choose to use OCAD University Blogs.