Image Spray

Chihyu Chang and Joon Chuah

Introduction

We built a virtual spray paint system that allows users to composite photos in an artistic manner. In its simplest form, spraying paint essentially reveals portions of an image. In the more advanced modes, paint can also come from multiple images in a slideshow or follow the user's movements. This application can run with either an immersive or a desktop interface.

Immersive Interface

The immersive interface allows the user to stand and spray as if they were painting on a wall.

Rear Projection Screen

We built a rear projection screen out of a frosted shower curtain and PVC pipe. The rear projection is necessary to allow the user to paint on a large, wall like surface with blocking the projected image. The quality of the rear projection screen is surprisingly usable, though there are some bright spots. It also requires turning off or dimming the lights in the room.

Wiimote Spray Can

We also built a spray paint can so the user can feel like they are painting with a can. The can uses a Nintendo Wiimote to provide buttons and a wireless, Bluetooth interface to the computer. We did not use the accelerometers in the Wiimote.

Tracking

We used Optitrak cameras to track the spray can and the user's head. In theory, it would be possible to use the Wiimote's camera and some external IR lights for tracking the spray can.

Modes

Colored Paint

The user can paint on the screen using simple solid colors. Since the interface is large and inprecise, we did not want to use a standard color wheel interface for selecting colors. Instead, we created an interface that allows the user to add or subtract red, green, or blue from the current color by simply spraying at large colored targets.

Image Paints

Paint can also come from source images. Spraying paint essentialy reveals the colors from the source image. If paint hits the canvas at position 0, 0, then the canvas takes on the color from the source image at 0, 0.

Stencils

Instead of paint coming from exactly the same positions in the source image as the canvas position, we implemented a movable stencil. The user can select an image, then draw a stencil on it. The stencil can be repositioned anywhere on the canvas. Painting in the stencil will paint the portion of the source image the user initially selected.

Slideshows

Instead of paint coming from only a single source image, it can come from a slideshow of source images. This allows the user to create things like a background that changes from day to night.

Headtracked Images

In addition to tracking the can, we track the user's head. This allows us to create source images that move around with the user.

Future Work

Given more time, we would like to have implemented the following:

Sample Images





Source Code

Source code is available here as a mercurial repository. Login with the username public, password public.

Related Work

Acknolwedgements