What’s up with mesh gradients in Inkscape

Alexandre Prokoudine 19. Oct, 2011
3 Comments

If you were wondering, whether there's any progress re mesh gradients in Inkscape and SVG, we have some good news for you. This Monday Tavmjong Bah, one of Inkscape's developers, demonstrated use of mesh gradients in Inkscape at SVG Open 2011.

So, back in July we reported that SVG Working Group accepted proposal to add Coons patch based mesh gradients to SVG 2.0, and initial implementation was done in Inkscape which boiled down to rendering of manually written SVG files.

After the proposal was accepted, Tav started working on actual editing of mesh gradients in the Inkscape. This work is currently in a public branch and requires both Pixman and Cairo from Git to work. Here is a build instruction.

Basic functionality is already in place: you can create a mesh gradient the size of its bounding box, assign colors to corner nodes, move those nodes, add subdivision lines and change color for the nodes in the intersections of the mesh lines etc. Here is a quick and dirty video demo how to make a basic curled page in just one minute.

The video is a bit misleading in a way that when you want several nodes share same color, you can just Shift+click them to select, then apply a color. Also, undo and redo are not yet implemented.

Anyway, as you can see, this is an incredibly useful tool to create complex shading and lighting. Once it's complete and stable, in many cases you won't have to put masked objects with gradient fills on top of each other just to emulate some basic highlights and reflections.

I hate to tell you, but it's a bit early to expect builds or PPAs or whatever. The branch is highly unstable: when you edit a mesh gradient, Inkscape will just crash in random places. So we might need a little patience plus someone who will fix bugs in Cairo.

If stars align in a very special way, and Cairo gets released with stable working mesh gradients support before v0.49 move on to feature freeze (no dates yet), v0.49 might actually get that feature. Let's keep our fingers crossed, and many thanks to Tav for making this highly desirable feature a reality.