Painting Your Own Statue

Background
The idea of interactively modifying the image projected onto a statue was first noted by Professor Levoy during his experiments with 3D projection systems at the Stanford Graphics Laboratory. Our group implemented a version of interactive painting by adapting an assignment completed during the course of CS248, Stanford's Accelerated Introductory Computer Graphics course. The concepts behind this program are based on ideas explored by Paul Haeberli in his creation of a painting program known as The Impressionist. Basically, this program allows the user to create a stylized version of an image. When the user clicks the mouse at a certain location on the screen, the program loads the pixel value of the image present at that location and shades an enlarged circle, rectangle, or line with that RGB value. The resulting overlap which occurs because of these "enlarged pixels" generates an abstracted copy of the original image. By inputting an image of Lucy aligned to the specifications of the Sony Projector, it is possible to map the display generated by the paint program onto the geometry of the statue itself.


The different drawing options are as follows:
  • Brush Types
    • Circles

    • Rectangles

    • Lines


  • Stroke Patterns
    • Fixed Orientation

    • Orientation Based on the Direction of Mouse Movement

    • Random Jittered Pattern


  • Brush Sizes
    • 1 (smallest) --> 5 (largest)


The submenus which control the brush types and stroke patterns may be accessed by depressing the right mouse-button anywhere within the painting window. The user must use the keyboard to vary brush size.



Fun Modifications
In order to give our version of The Impressionist some added flexibility, we equipped it with a set of colors, roughly corresponding to the rainbow scale of ROYGBIV, which the user may select in lieu of the basic impressionistic option. By selecting one of these colors, the user is able to "paint" the image, and thus the statue, in whatever style they please. In order to switch between the coloring option and the standard CS248 impressionistic style, the user must select the "Toggle Paintbrush" option from the menubar.

Lastly, the user may select between two different algorithms for coloring the statue. In particular, this "Toggle Shading" option allows the user to enable a coloring system in which the RGB value of the chosen color is scaled by the shade of the pixel underneath. Thus, if a red paint (1, 0, 0) were being applied to a pixel at a location where the original image was a gray shade of (0.5, 0.5, 0.5), the resulting RGB value outputted to the screen would correspond to (1, 0, 0) * (0.5, 0.5, 0.5) = (0.5, 0, 0). It is important to note that this system assumes that the original image is of a greyscale format.