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, 8 months
Inkscape Office Hours: Summary
by Maren Hachmann
Hi everyone in the Inkscape Contributor Community,
thank you very much to those who had joined us for the first 'Inkscape
Office Hours' meeting on July 16th!
We had a great time getting to know each other and tossing some ideas
around.
You all can find the meeting log at
https://inkscape.org/paste/28194/
During the meeting, we've all been working on a document together, where
we've been collecting ideas for two of the major questions of the
Inkscape Board to the community:
https://pad.chaotikum.org/p/Inkscape_Office_Hours_1
For those who were not able to attend the live meeting, I will keep the
pad open for another week, so you also have a chance to add your ideas
there.
Please mark your own ideas with the name you go by in the community, and
also add a short suggestion about how you could help with making them
reality!
When the week has passed, I'll package the results up for handing them
over to the Inkscape Board, so they can have a look at the feasibility,
and we can continue from there. There's no established process for this
yet, so we'll just have to try and see where we can get.
There's no date set for the next Inkscape Office Hours meeting yet.
Do you think this should become a monthly event? Or do you think it
should be more frequent or less frequent?
Thanks again everyone for your support of Inkscape,
Maren
2 years, 4 months
Invitation: INKSCAPE OFFICE HOURS TODAY!
by Maren Hachmann
Lazur just let me know that I forgot to insert the location (duh!)
We're going to have the meeting at
https://chat.inkscape.org/channel/inkscape_board
and might move it to audio/video chat, if that seems useful. A link to
that will, in that case, be announced in the chat channel.
Maren
> Hello Inkscape contributors!
>
> The Inkscape project has grown so much in the last couple years, and we
> have teams spread all over the internet, working on improving Inkscape
> and helping the project and its users. Also, we have lots of exciting
> new things to decide upon together as the Contributors' Team!
>
> For this reason, we've thought of trying out something new to allow
> every contributor to also contribute their ideas for the future of the
> project as a whole:
>
> The "Inkscape Office Hours"!
> ============================
>
> The first meeting of this kind will take place on
>
> Friday, 16th July (today!)
> at 5 p.m. UTC (in your timezone: https://inkscape.org/cals/ )
>
> If it is well received and productive, we'll make this a regular thing.
>
> We will have members from the Inkscape Board there, and also some of the
> other people who are most involved with Inkscape matters on a day-to-day
> basis. And YOU (hopefully)!
>
> ------------------
>
> Don't know whether you 'count' as a contributor? Doubts?
>
> Well, that's one of the things we'd like to figure out together! We
> really need to, it's required for voting rights. There's a Board vote
> pending, because we haven't yet come up with a good definition.
> We are planning to update our project charter to include more than only
> developers, as is currently the case.
>
> So please come and join us, even if you're unsure whether you 'qualify'!
>
> Another important topic is collecting and finding help with ideas for
> how to spend our donations. The pandemic left us with a lack of
> opportunities to spend them. They need to be spent in a manner that
> respects the charitable (non-profit) status of the project (if you
> didn't know, we're a member project of the Software Freedom Conservancy
> (SFC)! [1]), and also needs to obey to high standards of honesty and
> conflict of interest policies. All our ideas will need to be approved of
> not only the Inkscape Board, but then also by the SFC.
>
> You can also bring other topics, as long as they have to do with the
> Inkscape community as a whole. During the meeting you can get help with
> implementing those ideas and making them a reality, from people who
> already understand how the project works.
>
> NOTE: this is NOT about any software features / bugs!
> For those, please use the bug tracker [2].
>
> See you in a few hours (and sorry for the late notice, we hope you can
> still make it)!
>
> Ted, Michèle and Maren
>
> [1] https://sfconservancy.org/
> [2] https://inkscape.org/report
2 years, 4 months
Invitation: INKSCAPE OFFICE HOURS TODAY!
by Maren Hachmann
Hello Inkscape contributors!
The Inkscape project has grown so much in the last couple years, and we
have teams spread all over the internet, working on improving Inkscape
and helping the project and its users. Also, we have lots of exciting
new things to decide upon together as the Contributors' Team!
For this reason, we've thought of trying out something new to allow
every contributor to also contribute their ideas for the future of the
project as a whole:
The "Inkscape Office Hours"!
============================
The first meeting of this kind will take place on
Friday, 16th July (today!)
at 5 p.m. UTC (in your timezone: https://inkscape.org/cals/ )
If it is well received and productive, we'll make this a regular thing.
We will have members from the Inkscape Board there, and also some of the
other people who are most involved with Inkscape matters on a day-to-day
basis. And YOU (hopefully)!
------------------
Don't know whether you 'count' as a contributor? Doubts?
Well, that's one of the things we'd like to figure out together! We
really need to, it's required for voting rights. There's a Board vote
pending, because we haven't yet come up with a good definition.
We are planning to update our project charter to include more than only
developers, as is currently the case.
So please come and join us, even if you're unsure whether you 'qualify'!
Another important topic is collecting and finding help with ideas for
how to spend our donations. The pandemic left us with a lack of
opportunities to spend them. They need to be spent in a manner that
respects the charitable (non-profit) status of the project (if you
didn't know, we're a member project of the Software Freedom Conservancy
(SFC)! [1]), and also needs to obey to high standards of honesty and
conflict of interest policies. All our ideas will need to be approved of
not only the Inkscape Board, but then also by the SFC.
You can also bring other topics, as long as they have to do with the
Inkscape community as a whole. During the meeting you can get help with
implementing those ideas and making them a reality, from people who
already understand how the project works.
NOTE: this is NOT about any software features / bugs!
For those, please use the bug tracker [2].
See you in a few hours (and sorry for the late notice, we hope you can
still make it)!
Ted, Michèle and Maren
[1] https://sfconservancy.org/
[2] https://inkscape.org/report
2 years, 4 months
Regular Meeting
by doctormo@gmail.com
Dear all,
As discussed at the last video meeting, the committee/board did a poll
to decide if we wanted to continue doing regular video meetings. There
was a unanimous vote to continue (except for ted who had to leave
before this discussion) and I was asked to put together the details.
Generally people favoured a non-weekend date, any date so long as it
had enough notice.
This is the new calendar entry, it's set to the second Thursday each
month, at 16:00 UTC https://inkscape.org/cals/event/30/
I've also created a room on big blue button. The aim will be to record
each of the meetings and I can post the recording to the right places
(probably here on the mailing list).
The general agenda is to come together to talk about what we need to do
next for the project. We'll still post all votes to the mailing list,
so anyone who misses the meeting won't be left out. But we'll hopefully
be trying to work through some of the tasks we have in the team going
forwards.
Thanks for everyone's input for configuring this meeting.
Best Regards, Martin Owens
2 years, 4 months