I've gotten a number of queries as to when mesh gradients will be
available in Inkscape. Some people seem to think that it is a project
that is close to being ready... it is not. There is still a lot of work
to do and several major issues to be resolved. So I though I would give
a status report:
At the moment, you can create, edit, save, read in both Coons Patch
meshes and tensor meshes (the latter have not been approved by the SVG
working group). There are a few nice editing features available: Conical
gradients, sampling color from beneath the mesh, toggling between
straight edges and curves, etc. However, the code is very buggy. Expect
frequent crashes. Save often. Undo does not work for most things. Revert
is a poor person's substitute.
Before the mesh code can be merged with trunk the following issues MUST
1. Meshes have been approved for SVG 2 but the syntax has not been
finalized and will not likely be finalized for some time. For meshes to
be included in Inkscape we will need to keep them in the Inkscape
namespace for the moment and include a fallback mechanism. (Note, there
are quite a few nice SVG 2.0 features that we could adopt quickly if we
had a way of handling fallbacks: markers that inherit stroke color,
solid colors that will eliminate the need for the one-stop gradient hack
for creating a palette, etc.).
2. Meshes rely on Cairo trunk. We need an official Cairo release with
the mesh rendering code. The last new Cairo release was in Sept of 2010.
Who knows when a new release will be made.
3. My code is a hack. There are multiple issues that need to be
resolved. The most important one is how do meshes fit into the
Private/Vector structure used by linear and radial gradients (Inkscape
gradients are broken up into two gradient elements, one that handles the
geometric layout and the other that handles the color vector. This
allows reuse of the same gradient to be applied to multiple objects. It
may not make sense for meshes.) Of course all the crashes must be
4. GUI: How should meshes fit into the GUI? Should meshes have their own
tool bar? The gradient chooser is not really applicable for meshes and
meshes will have lots of their own options:
* Mesh creation:
* Mesh type: Normal, conical, ?
* Number of rows/columns.
* Mesh editing:
* Show/hide handles.
* Make handle smooth/symmetric.
5. Saving to PDF/PostScript needs to be implemented. (Export to PNG
I am sure I've missed some.
Issues that would be nice to address:
1. Node editing. Gradients implement their own dragger code. It would be
nice to be able to use the code from path editing. This would enable
things like editing the paths by dragging or selecting a group of nodes
and rotate/scale/etc. them together.
2. Auto generating an initial grid based on path shape.
3. Auto fitting. It would be the nice to be able to layout a rough mesh
and have Inkscape adjust the mesh to match an underlying drawing. My
branch can already set the mesh corner colors by sampling the image
underneath which is a real time saver.
4. Auto smoothing of patch boundaries. I have an initial implementation
that attempts to make color transitions across patch boundaries smooth.
This can certainly be improved.
To my understanding, a limitation with tool control bars right now is
that they aren't too dynamic. For example, when I draw lines:
- I'd like dotted lines and markers to appear in the tool control bar
for lines without shapes
- But with the "from clipboard" option, I'd like width, repeat style
etc. to appear there instead.
But without introducing new interface features, the tool control bar
is pretty much static right now, so we face all-or-nothing situations.
Is it possible to have two layers of tool selection instead?
[tool control bar]
[subtools] | [subtool control bar]
I'm asking this because it'd allow for several things:
- Consolidate the shapes tools into one button in the toolbar. Instead,
sub-shapes appear in the subtools bar.
- If more 3D shapes are added, they can similarly be grouped into a
single button in the toolbar, while allowing each shape to have its own
- When tech-drawing becomes available, they could be accessed from
the top-level instead of as LPEs
- unshaped line, "from clipboard" line, powerstroke line and maybe
other line effects (sketch?) can be treated as separate sub-tools with their
own top-level control bars (so you don't need to open the LPE dialogue)
- transformation options such as perspective, envelop and envelop
deform can become available as sub-tools of the transform tool
- composition guides, maybe common on-canvas tiling options
(symmetry, radial and normal tiling - anything more advanced must be
accessed from a separate panel) become available from top-level
- extra mode in text tool for controlling flowing text into shapes?
(for graphs and such)
Of course, it it's not possible, then that's that. It seemed like a possibility
Recently I've been working on a UI redesign proposal for the
Tiled Clones interface, and thought of creating a new page
on the Inkscape Wiki to see if it's even plausible.
However, when I tried to upload images, I get:
The upload directory (public) is not writable by the webserver.
A quick search only tells me that it's a permissions problem.
I've also noticed that there were no new file uploads since July
last year. Has there been a policy change? Any suggestions as
to where else to upload them then?
In case anybody's curious, major suggestions are:
- On-canvas guides
- Separation into Symmetries, Radial Clones, Rectangular
tiles and Triangle tiles (basically dependent on the guide type)
- Move from a floating box to a side-bar dialogue, where you can
basically stack symmetries and tilings to a selected object (like
with LPEs, so it's easy if you want to make a flower-shaped
design then have it fill up the page as tiles, for example)
- Top-level options are simple and intuitive to address the main
use cases (I'm assuming most users just want to do some basic
symmetrical or radial patterns...)
- But more advanced options are available by clicking "advanced"
and opening a separate box (to avoid cluttering the main dialogue.
If the user wants jittery tiles distributed in an outward spiral that
change colors and become transparent near the end, surely
he can open an extra dialogue)
- Presets are also available
Apparently the latest GTK version (2.24.8) fixes lots of Windows issues, including tablet support (details on http://mail.gnome.org/archives/gtk-devel-list/2011-November/msg00026.html).
Just tested with a local modified version of Inkscape, based on revision 10922, and I can confirm at least a bug and a regression (#786667 "Color drag and drop broken" and #707255 "Layer dialog - symbols disappear when mouse hover over") are gone. More tests planned later with a Wacom Bamboo tablet.
BTW, the current devlibs introduced a regression in the trunk and 0.48.2 version (see #173116 Gtk::PixbufError exception not caught in Windows), and need to be recompiled to to prevent Inkscape from crashing on Windows when opening an invalid image.
Krzysztof, would you be willing to update and recompile the devlibs so that more users can test before we release 0.48.3?
Awesome! Some feedback of my own:
1) So powerstroke is now available from the shapes drop-down:
Very neat! Can the "eclipse" form also be replaced by a powerstroke?
It's actually the most common usage scenario.
Also, I recommend adding a separation line between the powerstrokes
and "from clipboard", to show that they are different functions.
2) Cusp styles are currently either Beveled or Rounded. How
complicated is the coding for an "Angled" option? For font designers
in particular, thick powerstrokes using successions of angled segments
render a bit strangely, when some may be hoping for sharp edges
(Example: the letter A with a sharp top)
(I thought I suggested this before, but the mail never seems to have
reached the mail archive...)
3) Does anybody think he might need an "assymetric" option?
4) +1 on the "Filled Powerstroke" (or whatever it will be called) option
in the drop down.
As for manually setting the width value for powerstroke points, I suggest
click-enter for a numerical box to appear near the point, for the user
to input the value.
Date: Tue, 24 Jan 2012 05:57:42 -0800 (PST)
From: Defiant00 <defiant00@...400...>
Subject: Re: [Inkscape-devel] Powerstroke requests
Content-Type: text/plain; charset=us-ascii
Hello again, here's some further feedback:
1) A way to directly set width values for Powerstroke points (or at least a
command that sets the value to zero without having to directly edit the XML)
would be useful.
2) I noticed the 'Triangle in' and 'Triangle out' shapes now use
Powerstroke. Is there any chance we could get an extra shape option added to
that drop down that produces both a Powerstroke and the clone original LPE
at the same time.
3) Adding and removing Powerstroke control points should not require
switching to another control and back to have them show up properly.
4) The 'Smoothness' control cannot be dragged (at least on Windows 7).
Instead, it changes values by 0.01-0.03 (appears to be random) and then
Glad to hear that "Angled" cusp style is the highest priority right now!
It's probably the biggest thing missing functionality-wise. I'm not
surprised that it'd take some time to code though.
By the way, the interpolator type I tested most right now is
"CubicBezierJohan", yes. Currently it seems to be the algorithm with
the most predictable results. CubicBezierFit and SpiroInterpolator
do seem to produce some interesting results though, I'm still
trying to figure out use cases.
Who would be interested in a good old fashioned IRC meeting to discuss
various things about the project? It seems like other projects seem to be
able to pull them together (on a regular basis no less), so why not us? I
would especially like if we could get the likes of Krzysztof, Johan,
Tavmjong, Jasper, Jon, Alex, Kris, and anyone else who would be interested.
This especially goes for anyone who lurks on the devel list who is
interested in contributing but still hasn't introduced themselves yet
(they're always around). ;)
I think it would be good to get people together to help us help each other.
I think one of the things we should remember is that sometimes reviewing
others work or just answering questions, can be more valuable than actually
writing code yourself. I'm not asking for a huge time commitment or
anything. If you are interested please chime in with any preferred dates or
times so we can coordinate based on global distribution of participants.
I'll throw out the 18th as a possible date... mainly because it's not
terribly likely that this will happen and the 18th is my birthday so that's
my wish. :P
I don't know what to work on anymore...
Please help me out by test driving the Powerstroke LPE and tell me what
you dislike and what you'd like to be added.
(I already know you want it to work with tablets, I am waiting for my
tablet to arrive...)