Diffusion Curves: A Vector Representation for Smooth-Shaded Images

We describe a new vector-based primitive for creating smooth-shaded images, called the diffusion curve. A diffusion curve partitions the space through which it is drawn, defining different colors on either side. These colors may vary smoothly along the curve. In addition, the sharpness of the color transition from one side of the curve to the other can be controlled. Given a set of diffusion curves, the final image is constructed by solving a Poisson equation whose constraints are specified by the set of gradients across all diffusion curves. Like all vector-based primitives, diffusion curves conveniently support a variety of operations, including geometry-based editing, keyframe animation, and ready stylization. Moreover, their representation is compact and inherently resolution-independent. We describe a GPU-based implementation for rendering images defined by a set of diffusion curves in realtime. We then demonstrate an interactive drawing system for allowing artists to create artworks using diffusion curves, either by drawing the curves in a freehand style, or by tracing existing imagery. The system is simple and intuitive: we show results created by artists after just a few minutes of instruction. Furthermore, we describe a completely automatic conversion process for taking an image and turning it into a set of diffusion curves that closely approximate the original image content.

Images and movies

See also

Online video

Windows binaries and source code You can download our windows implementation of the Diffusion Curves drawing tool!

Don't hesitate to send us your creations (.png and .xml), we will add them in the image gallery!

Warning: you will need a recent graphic card (GeForce 6800 or higher) to be able to run the software. Henry Korol did a very neat implementation of Diffusion Curves. You can download it here. Additional documents We have presented the Diffusion Curves as a poster in the Marie Curie Conference in Barcelona, 2008. Some additional details on our Poisson solver implementation are available in these notes. Related papers Stefan Jeschke and co-authors propose a novel solver that computes diffusion curves images at high accuracy and speed.

They also show how to use diffusion curves to render surface details. Recently, Bezerra et al. presented a number of adaptations to diffusion curves that constrain how color is spread across the image. Image gallery Manually drawn Automatic vectorization

BibTex references

@InProceedings\{OBWBTS08, author = "Orzan, Alexandrina and Bousseau, Adrien and Winnem{\"o}ller, Holger and Barla, Pascal and Thollot, Jo{\"e}lle and Salesin, David", title = "Diffusion Curves: A Vector Representation for Smooth-Shaded Images", booktitle = "ACM Transactions on Graphics (Proceedings of SIGGRAPH 2008)", volume = "27", year = "2008", url = "http://maverick.inria.fr/Publications/2008/OBWBTS08" }

Other publications in the database