Why are inflections bad?

Why are inflections on curves bad? I remember learning not to have inflections back when I was learning to draw type, and both Fontlab’s FontAudit and Jens Kutilek’s Red Arrows highlight them as a problem. But I’ve designed a typeface with inflections all over the place and they don’t cause any problems that I can spot.
«1

Comments

  • ivan louette
    ivan louette Posts: 327
    However are they problematic in the situations they don't create curves extremas without nodes ?
  • John Hudson
    John Hudson Posts: 3,154
    Good point, Hrant. Yes, unmarked inflection points can cause problems for curve conversion.
  • AbiRasheed
    AbiRasheed Posts: 238
    edited May 2018
    From what I learnt about this it had to do with hinting. The glyphs app had an old article about the do's and don'ts and if I remember correctly it specifically mentioned about helping rasterizers. How it helps the rasterizer it didn't explain but to understand more on the subject I went digging for stuff and ended up at typotheque's [article here] was super useful. Also if you convert it to ttf, it'll want you to place a node there. Aside from all this I've personally found the curve to be nicer if it's not fighting two different directions. If you asked me why I can't tell you but visually you kinda notice slightly better smoothness.
  • Georg Seifert
    Georg Seifert Posts: 673
    There are two sides to this. When converting to TrueType, you get much better results when you add a point. That can easily by automated. On the other hand, when you like to interpolate it much better when you can avoid the extra point as it can cause kinks.
  • There are two sides to this. When converting to TrueType, you get much better results when you add a point. That can easily by automated. On the other hand, when you like to interpolate it much better when you can avoid the extra point as it can cause kinks.
    Which is why –like trapping– adding explicit inflection nodes is a "post-production" thing. Both ideally done manually BTW, since (like adding extrema to gently-slanted forms) the grid can snap poorly, and sometimes you have to nudge the flanking points a hair to accommodate the inflection point nicely.
  • John Hudson
    John Hudson Posts: 3,154
    Which is why –like trapping– adding explicit inflection nodes is a "post-production" thing.
    Which isn't really possible in the case of variable fonts, because of course you need to keep the interpolation 'live'.

    [Probably a topic for another thread: I've had some interesting experiences making variable font outlines with ink traps. Because inter-axis interpolation in OTVar is additive, it is quite easy to have ink traps in unmastered corners of the design space behave in weird ways, e.g. pushing out below the bottom of V in heavy/small mixes.]
  • James Puckett
    James Puckett Posts: 1,992
    Which is why –like trapping– adding explicit inflection nodes is a "post-production" thing.
    Which isn't really possible in the case of variable fonts, because of course you need to keep the interpolation 'live'.
    I’m running into that with this typeface. I assume I’ll need to release a variable version in the near future, and there are a few on curve nodes that interpolate with one handle off by one em. I’ve realized that the difference is only visible in my mind; a curve that’s off by less than a single em still appears smooth. I guess stuff like this might be visible when blown up to huge sizes, but people see huge sizes from a distance that smooths everything out anyway.
  • Nick Shinn
    Nick Shinn Posts: 2,196
    It’s not necessary for small details.
    For instance, here is a foot serif from Adobe Garamond (1997).


  • Jens Kutilek
    Jens Kutilek Posts: 359
    edited May 2018
    Regarding Red Arrow: I had a user request to add inflection warnings, so I did. I agree it is not a very serious error in most situations.

    FontLab’s FontAudit only warns about inflections that are close to the start or end of the segment, because those are probably unintended.

    Glyphs will add explicit inflection points automatically when exporting to TrueType. If you convert manually (Paths > Other > Convert to Quadratic), inflection points are not added and your curves may be seriously messed up:



    You can fix that by adding offcurve points to the problematic segments (so there is the same number on each side of the inflection) and refitting the curves to the original PostScript curve:


    This way the inflection points can stay implicit and will not cause kinks in the interpolation.

    We did a lot of work like this recently as shown by Luc(as) in this video from TypoLabs starting at 13:13 minutes.
  • Glyphs will add explicit inflection points automatically when exporting to TrueType.
    I'd rather get a warning (too) since in tight quarters it can mess up.
  • Vasil Stanev
    Vasil Stanev Posts: 775
    edited May 2018
    In think that, also, some unwanted side effects may occur outside of web and print:

    Has someone run into such trouble? It was a long time ago I worked on such 3D letters.
  • Paul Miller
    Paul Miller Posts: 273
    In think that, also, some unwanted side effects may occur outside of web and print:

    Has someone run into such trouble? It was a long time ago I worked on such 3D letters.
    Nothing to do with inflections but if you do an illuminated sign (illuminated from behind) with your font in translucent plastic surrounded by dark opaque plastic then don't have any very sharp points on your font, make all the corners obtuse angles and if you do have any sharp points then round them off or put a chamfer on them because if you don't the sharp corners look horrible.

    As if it is spraying out light from the corner.

    I got caught out with this one. :(
  • Which isn't really possible in the case of variable fonts, because of course you need to keep the interpolation 'live'.

    Glyphs is doing that automatically for some time, otherwise the TT conversation would not work. It will insert points in corresponding segments even if the other masters do not have an inflection. 

    If you convert manually (Paths > Other > Convert to Quadratic), inflection points are not added and your curves may be seriously messed up:

    Nobody told me. I’ll fix this.

    I'd rather get a warning (too) since in tight quarters it can mess up.

    I would like to see an 
    example. Converting outlines can go wrong always, inflections or not.
  • I would like to see an example. Converting outlines can go wrong always, inflections or not.
    Well I can't show an example in Glyphs, but in FontLab (and I think Fontographer before) it was pretty common so I started putting inflection nodes as a rule and now I have no idea if they fixed it. :-)  But anyway it's not really about font editors, since you can see them mess up and fix it; it's about downstream software converting the outlines out of our sight/hands.

    Another unfortunate outline brittleness is what I call "half-dead" curves: where one end doesn't have a BCP. I find them highly elegant in terms of designing* (especially when adding traps) but there's some badly assumptive software out there that breaks it.

    * Like when I'm watering my yard I don't want to have to also be at the other end telling the water how to land.
  • Jens Kutilek
    Jens Kutilek Posts: 359
    > If you convert manually (Paths > Other > Convert to Quadratic), inflection points are not added and your curves may be seriously messed up:

    Nobody told me. I’ll fix this.
    No problem. I just discovered it when I tried to make the screenshots. I guess the quadratic curves are not used in Glyphs by many people.
  • Inflections are bad m’kay, so, if you make inflections, you’re bad, m’kay, because inflections are bad.
  • How would you solve a situation where you have an inflection point in one master, but not in the other? I'm working in Glyphs, so the easiest seems to be to just rely on Glyphs' automatic extreme-point handling upon TT generation. However, I gather that the inflection points could also create problems when, for example, a user wants to convert the OT font to a webfont through some online service. I was thinking maybe the bracket trick could help?


  • @Jasper de Waard Interesting case. I would put an explicit inflection node in the bottom one, and a corresponding "dummy" one in the top one. However, at some point in the interpolation it's quite likely (mathematically possibly even inescapable) that one of the flanking curves will end up being an inflected curve (without a node).
  • Thomas Phinney
    Thomas Phinney Posts: 2,861
    I had thought this recommendation came from the Type 1 font specification itself, but nope. I suspect it is in Moye’s book on Fontographer.
  • Vasil Stanev
    Vasil Stanev Posts: 775
    edited June 2018
    Hrant I would redo the bold, Your example does not look right to me. It has to be like animation, a character can't drink the magic potion and get instantly fat, but only at certain places... consistency is key.
  • However, I gather that the inflection points could also create problems when, for example, a user wants to convert the OT font to a webfont through some online service.

    If the online service claims to offer support, it should be able to handle such curves. Or you run a filter on export that inserts the inflection points on export.
  • Vasil Stanev
    Vasil Stanev Posts: 775
    edited August 2018
    Is it bad if there are very small inflections, under 5pt? I can't add point to some of my Beziers without breaking the roundness of the design.

    Also, is there are difference between inner and outer anchors? Can I get away with leaving the, say, leftmost inner contour of an O without a cardinal anchor? (These are the anschors that are at the very top (North), bottom (South), East etc.)
  • When the details are so small that adding points would cause problems, don't worry about it.

    The original Adobe Type 1 font specification has an example almost exactly like yours, except with the fill reversed, and rotated 90 degrees. They specifically suggest leaving the point off in their example.  :)
  • Yay! :)
  • John Savard
    John Savard Posts: 1,122
    This reminds me of something. The interior of a violin has a simple curved shape, but on the outside, there are four corners where triangular wood blocks are put to brace the ribs precisely where there would otherwise be inflection points in their curve.

    I think it makes sense that when one defines the shape of a letter, one would wish to precisely specify the position of (major, visible) inflection points in that shape, which means they should always be where two arcs join at their ends, never within one.
  • That’s right, @John Savard. A piece of bent wood (or anything flexible) that bends beyond an inflection becomes hard to control, and the inflection point is the weakness. I use bendy things to demonstrate this in workshops, though of course Bézier curves don’t snap and hit you in the face if you forget.
  • John Hudson
    John Hudson Posts: 3,154
    ...of course Bézier curves don’t snap and hit you in the face if you forget.
    Wouldn't it be great if they did. From now on, I am going to think of the red arrows in outline audit tools as 'Warning: potential injury to face. Wear protective goggles.'