Regarding the serialization of Spiro control points
by Fred Brennan
Greetings,
I write from the FontForge project. Of particular interest to me is the Spiro
spline feature, which was originated around ten years ago by Raph Levien.
One thing I'd like to add, (which would benefit both our projects,) is the
ability of FontForge to understand the Inkscape Spiro serialization format.
However, there are several things about the format which to me as an outsider
appear to be defects serious enough that I have no idea how to even *import*
these splines correctly, much less export our Spiro splines to this format. I
would very much like to support the _de facto_ standard Inkscape has
originated of supporting Spiro in SVG, but I am lost.
George Williams, FontForge's original author, noticed this defect over eleven
years ago.[1] Things are virtually unchanged since then, I checked `git
blame`.
Spiro has five point types, not including beginning and ending points. They
are:
* G4 curve (o)
* G2 curve (c)
* Corner (v)
* Left Constraint ([)
* Right Constraint (])
The ASCII single letters are the normal method of Spiro serialization, as
championed by Raph Levien and by us in FontForge.
Inkscape seems to create what I will call a "pseudo-SVG path". So, it is not
really an SVG path, but rather is an SVG path which undergoes transformation
into the typical Spiro format. Inkscape stores this in the "original-d"
attribute.
So, given a Bezier spline with control points defined as (x, y, c1, c2),
Inkscape interprets a control point with only (x, y) to be a corner, meanwhile
a control point with all four is a G4 curve, and (x, y, c1, NULL) is a left
constraint while (x, y, NULL, c2) is a right constraint.
I can probably overcome this, although George Williams was right to be
skeptical of this format. There is no way I can see to define a G2 curve in
this strange "original-d" format.
Thus, this email. I write to ask a few things. I suppose first of all, what
are the chances that we can convince you guys to store Spiro splines in
plate[2] format, or another widely accepted Spiro serialization format?
Second, if we cannot convince you to do that, how do I export FontForge spiros
which contain G2 control points to Inkscape's original-d format? It's not
possible, yes? So should I just silently fail and save them as G4? The curves
will not be the same if I do that. Should I disallow export to SVG w/Spiro if
glyph contains G2 control point? That seems a steep cost that will just
confuse my users, so perhaps I should abandon the whole thing if it comes to
that.
Cordial regards,
Fredrick Brennan (@ctrlcctrlv)
[1]: https://narkive.com/63FADpG3.4
[2]: https://levien.com/garden/ppedit/README, section "Plate files"
1 year, 6 months
Inkscape Matrix Space
by Ted Gould
Hello,
There is a new beta feature the Matrix folks are working on, and after being pinged about it by jabiertxof I setup Inkscape to use it. It basically allows grouping of the Inkscape rooms to get a UX that is closer to Slack/Discord/etc.
Feature description: https://element.io/blog/spaces-the-next-frontier/
Generally, since it is a beta feature, I don't want to put it on the webpage/social media/etc yet. But it would be useful if folks who have Matrix accounts and are willing to enable the beta feature could test it out.
I believe if you click this, you will be able to join: https://matrix.to/#/#inkscape:matrix.org
If you have any issues joining or any recommendations on how to configure it you can reply here, ping me in one of the chats, or DM me on Matrix, @ted:gould.cx
Ted
2 years, 1 month
Meeting Today
by doctormo@gmail.com
Dear all,
Our Leadership Committee meeting is today¹ and it would be great to
have you attend.
Each meeting will be recorded so people who can not come will be able
to watch the discussion later.
This meeting's focus is going to be on making sure we can include more
people in the definition of "The Inkscape Community" for the purpose of
voting.
I've put together this agenda:
1. Moving the canonical membership list to the website
2. Requesting from the SFC a change in agreement to define this new
list as the list of voting members.
3. The remaining time we can talk about the mechanisms by which people
get added to the list (see continuation of previous discussions).
I expect the second item will produce a vote which will be sent to the
mailing list. But we'll see how the discussion goes.
Thanks everyone!
Best Regards, Martin Owens
Inkscape Leadership Committee
¹ https://inkscape.org/cals/event/30/
2 years, 1 month
PLC Meeting this Thursday
by Martin Owens
Dear all,
A remember that this Thursday we have a big blue button meeting. This
month I'd like to have us decide on the membership problem. The
question is: "How should we ask the SFC to change our agreement, to
include all inkscape contributors" the goal for the meeting will be to
put together the vote email which hopefully will be sent at the end of
the meeting.
Times and links: https://inkscape.org/cals/event/30/
Please do come if you'd like to be involved in the discussion of
inkscape membership.
Best Regards, Martin Owens
2 years, 1 month