reves home
accueil group research publications collaborations events gallery

Diffusion Curves: A Vector Representation for Smooth-Shaded Images

Communications of the ACM, Volume 56, Number 7, page 101-108 - 2013
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 real time. 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. 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

A previous version of this paper was published at SIGGRAPH 2008.

See the paper in .html and .pdf format on the CACM website.

BibTex references

  author       = "Orzan, Alexandrina and Bousseau, Adrien and Barla, Pascal and Winnem{\"o}ller, Holger and Thollot, Jo{\"e}lle and Salesin, David",
  title        = "Diffusion Curves: A Vector Representation for Smooth-Shaded Images",
  journal      = "Communications of the ACM",
  number       = "7",
  volume       = "56",
  pages        = "101-108",
  year         = "2013",
  url          = ""

Other publications in the database