Who likes non-destructive transformations, and floating-point coordinates?
Ray Larabie
Posts: 1,443
I'm curious about others' experience with non-destructive transformations and floating-point coordinates in current font design apps. Personally, I find them more frustrating than helpful.
I constantly need to “apply rounding” to eliminate floating-point coordinates. Every so often I'll struggle to align points vertically, only to realize there's an unapplied skew transformation. The “elements” system adds another layer of complexity and points of failure I never need.
After decades of type design, I've developed precise control over details like exactly where to put the points and handles to make a 20-unit thick ampersand. While I understand this workflow might appeal to Illustrator users, I prefer direct control over every point and handle in my glyphs. There has never been a case where I would intentionally use non-destructive transformation. And, for example, in FontLab 8, I can't just flatten the layer, or I'll lose something I require, like smart-corners.
For those who enjoy these features: How do you maintain precision in your work? What benefits do you find in using them?
Tagged:
0
Comments
-
Great topic! Imprecise “smart” stuff is a trade off for sure. This is why I don’t use Smart Components in Glyphs for things like circled glyphs or small caps and instead use Tim Ahrens’ RMX Scaler and Tuner. The RMX tools try to maintain consistent stem widths, whole numbers, and so on, so there’s less manual adjustment I have to do. One downside is that this leads to a larger variable font file, compared to Smart Components (which are actually variable components), but WOFF2 is good enough at compression that I think it’s an OK trade off.
When it comes to things like smart corners - for serifs and so on - I use them early in the process, and maybe by the time I’m done, I’ll have decomposed some or all of them. It’s not even because of floating point rounding, I just find it’s not always ideal for the design, even when I go through the steps of making fairly elaborate corner components with multiple widths defined etc. But I have inconsistent beliefs about this based on context - yes I will decompose a corner component to get a serif just how I want, but what about the bar on an hbar, for example, and stuff like that? I will absolutely scale components like a bar imprecisely, and not care about it.
All that to say, I haven’t really found a perfect workflow for all these “smart” features. But I do think that totally non destructive transformations are not always ideal. And I can always throw those things into a backup layer before decomposing if I feel it’s important to keep around in some form. You can definitely go wild and write scripts to round things for you and make sure that everything is as non destructive as possible, but at that point the time invested might not be as valuable as I want, especially because part of my goal with source files is their long term preservation and utility - I don’t know if all these editor specific features will last1 -
jeremy tribby said:
When it comes to things like smart corners - for serifs and so on - I use them early in the process, and maybe by the time I’m done, I’ll have decomposed some or all of them.The nice thing about Glyphs is you can 'undo' a lot of the destructive process if you need to, eg. you can close corners that you once opened, sharpen corners that you had rounded, and even seperate shapes back into their overlapped components if you need.2 -
jeremy tribby said:One downside is that this leads to a larger variable font file, compared to Smart Components (which are actually variable components), but WOFF2 is good enough at compression that I think it’s an OK trade off.
If Smart Components are reducing your binary size, you are living in the future. 😎2 -
Huh, thanks for the correction, I may have misread something on the Glyphs forum 😬1
-
Floating point coordinates can be a good idea to get better interpolations and extrapolations. Here is an example of extrapolating the tail of the /Q. The lower left and middle tails in the picture were given rounded coordinates. For both tails the tangent control handle is quite accurate. However, the tangent handle of the extrapolated tail (top right) is clearly not tangent:When I saw this, I could hardly believe how strong the effect was. So here is a visual "proof" of the control points to show that the extrapolation was correct:
0 -
Linus Romer but don't those handles snap to integers when the font is exported?0
-
@Linus Romer: As rounding after extrapolation would at worst move the final point by half a font unit in each of X and Y, I don’t think rounding is the “villain” here.
If the angle of the line changes, AND the relative length of the two segments is different, then there will be such kinks in both interpolation and extrapolation, even without rounding. That appears to be what you are getting here.
2 -
I am pretty old school in how I want to draw outlines and produce fonts, so I pretty much always want everything to be rounded/snapped to integer values. Mostly I don’t want to worry about something changing if/when it gets rounded later.
But I still drive a car with a manual transmission, so maybe I’m an outlier.1 -
@Thomas Phinney In my experience, FontForge does not adjust tangents after interpolation, but I think this is a bug of FontForge.If the angle of the line changes, AND the relative length of the two segments is different, then there will be such kinks in both interpolation and extrapolation, even without rounding.Indeed, this is true in the generic case.That appears to be what you are getting here.Yes, I was not aware that this was the reason (although I knew this property of interpolation). Since FontForge does not adjust the tangents after interpolation, I wrote a script to adjust the tangents. This solved my problem, and I mistakenly assumed that the integer coordinates were the problem.@Ray Larabie I withdraw my statement of the last post.
1
Categories
- All Categories
- 43 Introductions
- 3.7K Typeface Design
- 807 Font Technology
- 1.1K Technique and Theory
- 624 Type Business
- 447 Type Design Critiques
- 544 Type Design Software
- 30 Punchcutting
- 137 Lettering and Calligraphy
- 84 Technique and Theory
- 53 Lettering Critiques
- 489 Typography
- 304 History of Typography
- 115 Education
- 70 Resources
- 500 Announcements
- 80 Events
- 105 Job Postings
- 149 Type Releases
- 165 Miscellaneous News
- 271 About TypeDrawers
- 53 TypeDrawers Announcements
- 117 Suggestions and Bug Reports