Closed ctrlcctrlv closed 10 months ago
spoke with @arrowtype about this issue today. Robofont handles this by having you work in either a cubic workspace or a quadratic workspace. When you work in the quadratic workspace the pen still behaves like a cubic pen. Personally this is frustrating, and I would recommend a pen ui that functions slightly differently for quadratics for example holding a hotkey and clicking to produce a desired number of off curve points. Glyphs and Fontlab both use a convert path function. To draw quadratics in those programs I usually draw a contour with a cubic pen, hotkey convert the path to quadratics and edit it from there.
I haven't been able to find an application with "native" quadratic pen. If you succeeded in making one I'd be very grateful.
@bghryct Do you know any existing implementation that does what you want? I've personally never drawn in quadratic curves (just converted cubics) so I'm kind of lost as to what would actually help those who prefer quadratic curves.
To be honest, yes this would be very cool, BUT like you, the vast majority of designers draw with Cubic curves, so to me this seems like it should be far down on the list of priorities. There are a lot of other things that are more vital to a successful font editor, like a solid API experience, a support forum, documentation, extensions, etc etc.
FWIW, I list out my must-have extensions for RoboFont in this blog post: https://arrowtype.github.io/type-blog/2020-05-01--getting-started-in-type/#getting-started-in-robofont
Until an editor had basically every one of these features (either native or via extensions), my hot take is that it wouldn’t matter whether it had a native quadratic pen experience. But, others would obviously have different opinions.
This is a good description of how quadratics are handled in RoboFont:
https://robofont.com/documentation/how-tos/drawing-with-quadratic-curves/
(By the way, this is an awesome project and I definitely don’t mean to be salty in my comments here. I would love if there were a solid, cross-platform, open-source font editor! I just think that it’s important to prioritize for the things that make a font editor useful for new & daily users, before adding specialty features.)
@ctrlcctrlv I think just the ability to convert back and forth is nice and would put Qglif on par with existing editors. I don't think there is an example pen that draws natively in quadratics. Everything else assumes you want to draw in cubic and then convert and edit if you want from there. Except for the Robofont example I mentioned, but speaking with @arrowtype who draws in Robofont more than I do, He said that it still has the ui "feel" of drawing with cubics, but getting the 'same' curve is sometimes a bit tricky as off curve points don't necessarily go where you're used to placing them.
So for me personally, the ideal quadratic pen would work in a similar way to the cubic pen but with more control over the additional off-curve point placement. This might be something that's much easier to explain visually in a quick video call at some point. It's also difficult to put into words the specific intangibles related to how one "feels" when drawing with different ui. Thanks for taking the time to think about this.
Also 100% with @arrowtype on the level of prioritization that this should take. His list of must haves is very good. I would add @simoncozens supertool is a game changer for drawing in glyphs, and it's open source : )
That sort of functionality and the functionality of many of the plugin must haves he mentioned fall outside the scope of this particular thread I think so I'll stop rambling.
OK. So, even though I've marked this 1.0, for me just being able to remove the assert will be enough to close this (and then open a new issue for "Think about a better quadratic pen" with a longer time scale).
For sure, though ,my 1.0 will have multiple glyph types, at the very least Spiro and Cubic as I rely on both heavily in my own fonts. B-Splines are likely to feature as well. Other more exotic curves are on the agenda for later. I want as many curve types as possible. If they are somewhat useful and convertable to cubic Bezier I'm interested.
Really, I am making the font editor I want to use. If it turns out no one agrees with my chosen priorities, well, I'll still have a font editor I enjoy using. :-)
Many of @simoncozens' supertool features have been noted by me and are on the agenda after 1.0. That's one of the main reasons this project began actually. I realized that in FontForge we can't write scripts that manipulate the UI enough to do anything really cool like supertool. I have Skia and Skia PathOps at my disposal now so this is no longer true, not by a long shot.
And you guys, @arrowtype and @bghryct , should please both read https://github.com/mfeq/mfeq/blob/master/doc/Why.md if you're trying to grok what this project is about, why I am working on it and who it is for.
Basically I'm fed up of lack of progress in both FontForge and Runebender, and I think I can make progress much faster with Skia and Skia PathOps. Let's see if I'm right, my 1.0 is scheduled for Oct 1 and I plan to be using Qglif to make a font in November. 🙉
Thanks for writing & sharing that document! It seems like you’ve got the right goals and a sensible approach. Definitely, modularity will be key, and since you’re using UFO as the font format, it will mean that there is an existing set of APIs to manipulate fonts with Python, which is super helpful for me.
Can’t wait to see where you take this!
We're quite a bit closer as of 32defa43e:
😃
You should play with the FontForge pen tool in a quadratic layer. It behaves roughly as @davelab6 requests in https://github.com/fontforge/fontforge/issues/3803 . (You may have to drag at first to get an off-curve point, but after that it interpolates whether or not you drag.)
Kindly, I believe this is of low priority. I think it matters a lot for making complex yet highest quality variable fonts, especially with HOI, but since the vast majority of font developers have years of habits with cubics, and don't care much for creating complex yet highest quality variable fonts, it is not very important.
Would appreciate @eliheuer telling me his favorite style of quadratic pen so I can just implement that. The current pen is cubic Bézier only, attempting to use it in a quadratic glyph will cause an assertion error, intentionally.