Impressionist Painter
A Project in Non-Photorealistic Rendering


Impressionist Painter (Win32, 882 kB)


The application is an implementation of Haeberli's paper "Paint by Numbers" (SIGGRAPH '90), applet here. The user selects an input image, and then paints onto a blank canvas, where colour is sampled from the image. The user can select the type of brush, stroke thickness and distribtion settings, impose an ordering on the strokes, and choose whether and how the strokes should orient themselves in the direction of edges in the original image. The result is an image which appears to be artistically in the impressionist style.


Audi of Audis



Blocks Wavy

Lines Wavy

Lines Noisy

Audi of Circles

Chloe on Bike

Bumpy Slabs



Implementation Details:

The project was implemented in C++. Libraries used include: OpenGL (graphics), DevIL (image processing), GLUI (user interface widgets). Uses code by Rob Bateman to export TGA files. Uses a modified Vector class originally by Allen Sherrod. The image of the girl holding the apple is a mural by Albert Castro.

The components of this project I implemented are: