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
Libre Graphics Meeting looking for talks, live demos, lightning talks - Deadline April 19th 2021
by Maren Hachmann
Hi everyone,
our friends from Libre Graphics Meeting have asked us to let our
community know that submissions are open for talks, live demos and
lightning talks for the event, which takes place 27-30 May 2021, mostly
online.
Whether you're an experienced Inkscape user, a professional using
Inkscape, an Inkscape developer or an active community member - or have
knowledge around any other free and open source graphics software that
you'd like to share with the world, please visit their website at
https://libregraphicsmeeting.org
and submit one or more proposals for their different talk formats.
Submission is still open for a week, so hurry, and make an impact in the
free + libre graphics world!
Maren
2 years, 5 months
P6.Refactoring
by Nilesh Aditya
Hey! I am Nilesh Aditya, a 2nd year undergrad from Delhi Technological
University, India. I have been programming in C++ for quite a time now, and
want to make my mark on open source software!
*PROCESS* :
*Description : *There are many approaches and techniques to refactor the
code.
- Usage of unnamed namespaces
- XML Refactoring
*Expected Outcomes: *
-
Remove direct manipulation of XML from as many places as possible and
replace it with SP tree methods.
-
Reduce source code line count
-
Make the codebase more convenient to code in.
*Skills Required:*
experienced in Modern C++ , JS, OOP, experience of Inkscape
I had done quite a significant amount of research regarding the idea which
included reading the official wiki docs present online, reading and
understanding the Inkscape code base.
I would love to get in touch with a mentor who would be interested in
guiding me with this idea!
2 years, 5 months
Discussing proposal's idea for GSoC
by Osama Ahmad
Hi, my name is Osama Ahmad and I'm planning to join GSoC this year.
As stated here
<https://wiki.inkscape.org/wiki/index.php?title=SOC_Writing_Project_Proposals>,
it's encouraged to discuss ideas for GSoC before submitting.
I'm planning to improve symbols dialog. The improvements are:
- The symbols are loaded from the dialog itself, not form a background
process. making it asynchronous will make the start time (if the dialog is
opened before the last exit) or the runtime response (if the dialog is
opened for the first time while the program is running) faster.
- To be able to open, edit and save the symbols from the dialog. If the
symbols are loaded from a read-only folder, or if the user intends to save
as a new copy, the user can save the edited symbols as new ones. By edit, I
mean to edit the svg itself or edit the tags and other properties of the
symbols.
- To be able to load/save symbols from/to a folder.
Any opinions or changes that can be done? Is it good enough for a proposal?
2 years, 5 months
1.1-beta available
by Marc Jeanmougin
Hi everyone!
We recently released Inkscape 1.1-beta, while planning to release 1.1 next month.
You can get the release at https://inkscape.org/release/inkscape-1.1beta1/ for all platforms
All testers are encouraged to test this version and report bugs at inkscape.org/report
== Packagers ==
The tarball is not expected to differ much to the beta one, if you want to check that everything is all right for your platform :)
== Translators ==
Thanks for your work! Strings have been frozen for a while, and it's not too late to submit translations until shortly before release date.
== Developers ==
We have now branched the code repo. The new branch 1.1.x now only welcomes bugfixes, translations and easy-to-review changes; while features, performance, code improvements, or anything that was left waiting in prevision of 1.1 are free to go to the main branch.
== All contributors ==
Thanks everyone for your contributions! All the work you're doing in various area, such as UX, outreach, docs, testing and bug triaging, and more, is what makes us a better project over the years :)
-- Marc
_______________________________________________
Inkscape Translators mailing list -- inkscape-translator(a)lists.inkscape.org
To unsubscribe send an email to inkscape-translator-leave(a)lists.inkscape.org
2 years, 5 months
Board Meeting Delayed until Apr 9th
by Ted Gould
Howdy Folks,
Asked in chat if we wanted to delay because it's Easter Holiday for much of Europe — didn't get many responses so I'm taking that as "we're already gone." Let's move the meeting to April 9th. Those who have the day off work, enjoy it!
Ted
2 years, 6 months