Diffusion curves are vector graphic primitives for creating smooth-shaded images. Each diffusion curve partitions the 2D graphics space through which it is drawn, defining different colors on either side. When rendered, these colors then spread into the regions on either side of the curve in a way analogous to diffusion. The colors may also be defined to vary smoothly along the curve and the sharpness of the color transition from one side of the curve to the other may also be specified.[1]

Original PhD thesis introducing concept of Diffusion curves.[2]

Diffusion curves have been discussed in relation to being a possible addition to the SVG specification.[3]


In the original paper introducing the concept of diffusion curves, Orzan et al. describe two main motivations for them.[1]

Freehand drawing

Artists traditionally begin by sketching lines and shapes that represent the major, and some of the lesser, colour boundaries of the envisioned work. The use of diffusion curves supports this practice accurately: as color would be added later, up to and between these sketched lines, so the lines' color values are specified and their 'diffusion-like' behaviors produce an image in a manner similar to the way a traditional artist works with brushes or other media.

Encoding and editing images

Most color and tone variations within an image, whether manually drawn or photographically generated, originate at or are caused by edges. These edges may be the edges of one object in front of another or they may be texture edges, shadow borders etc. More subtle shading may also be represented as if it were caused by edges. Therefore vision analysis techniques such as edge detection integrate well with the construction of diffusion curves and so they can facilitate the vectorization of real images and their later manual editing.


  1. ^ a b Alexandrina Orzan; Adrien Bousseau; Holger Winnemöller; Pascal Barla; Joëlle Thollot; David Salesin (2008). "Diffusion Curves: A Vector Representation for Smooth-Shaded Images" (PDF). ACM Transactions on Graphics. 27. Retrieved 2009-05-25.
  2. ^ Orzan, Alexandrina (2009). "Contour-based Images: Representation, Creation and Manipulation" (PDF). INPG. ((cite journal)): Cite journal requires |journal= (help)
  3. ^ Rusin, Zack (2008). "SVG in KDE: Freedom of Beauty". svgopen.org. Retrieved 2009-05-25.