Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interpolation problems in Recursive[CASL,CRSV,MONO,slnt,wght].ttf #527

Open
behdad opened this issue Nov 23, 2023 · 19 comments
Open

Interpolation problems in Recursive[CASL,CRSV,MONO,slnt,wght].ttf #527

behdad opened this issue Nov 23, 2023 · 19 comments

Comments

@behdad
Copy link

behdad commented Nov 23, 2023

Hello!

This is an automatically-generated report about possible interpolation problems in Recursive[CASL,CRSV,MONO,slnt,wght].ttf, as found in the Google Fonts catalog.

The particular version of the font that was tested was archive:.

To download a PDF version of this report with helpful visuals of the problems, click here; Or to view it on the GitHub website, click here.

The report follows:

Glyph horncombo was not compatible:
  Masters: '', 'CASL=1.0':
    Contour 0 start point differs: 0 in '', 48 in 'CASL=1.0'; reversed: False
Glyph one was not compatible:
  Masters: '', 'CASL=1.0':
    Contour 1 start point differs: 0 in '', 2 in 'CASL=1.0'; reversed: False
Glyph one.pnum was not compatible:
  Masters: '', 'CASL=1.0':
    Contour 1 start point differs: 0 in '', 2 in 'CASL=1.0'; reversed: False
Glyph percent was not compatible:
  Masters: 'wght=800.0061', 'wght=1000.0':
    Contour 1 structures differ: 'wght=800.0061', 'wght=1000.0'
  Masters: 'slnt=-14.0497 wght=800.0061', 'slnt=-14.0497 wght=1000.0':
    Contour 1 structures differ: 'slnt=-14.0497 wght=800.0061', 'slnt=-14.0497 wght=1000.0'
    Contour 3 structures differ: 'slnt=-14.0497 wght=800.0061', 'slnt=-14.0497 wght=1000.0'
Glyph perthousand was not compatible:
  Masters: 'wght=800.0061', 'wght=1000.0':
    Contour 2 start point differs: 0 in 'wght=800.0061', 25 in 'wght=1000.0'; reversed: True
    Contour 4 start point differs: 0 in 'wght=800.0061', 25 in 'wght=1000.0'; reversed: True
    Contour 6 start point differs: 0 in 'wght=800.0061', 25 in 'wght=1000.0'; reversed: True
  Masters: 'slnt=-14.0497 wght=800.0061', 'slnt=-14.0497 wght=1000.0':
    Contour 2 start point differs: 0 in 'slnt=-14.0497 wght=800.0061', 25 in 'slnt=-14.0497 wght=1000.0'; reversed: True
    Contour 4 start point differs: 0 in 'slnt=-14.0497 wght=800.0061', 25 in 'slnt=-14.0497 wght=1000.0'; reversed: True
    Contour 6 start point differs: 0 in 'slnt=-14.0497 wght=800.0061', 25 in 'slnt=-14.0497 wght=1000.0'; reversed: True
Glyph uni031B was not compatible:
  Masters: '', 'CASL=1.0':
    Contour 0 start point differs: 0 in '', 42 in 'CASL=1.0'; reversed: False

This report was generated using the fonttools varLib.interpolatable tool. We understand that sometimes the tool generates false-positives. Particularly for more complicated font designs. If you did not find this report useful, please apologize and ignore & close it.

To give feedback about this report, please file an issue or open a discussion at fonttools.

@arrowtype
Copy link
Owner

Hey Behdad, this is a super cool report! At least in the PDF visuals, the suggested fixes all appear to be worse than the midway interpolations. But, Recursive is definitely a complex designspace with some unusual interpolations, so it's understandable that an automated tool might misinterpret a few of parts of it.

I'll close this issue, but please feel free to let me know if there's anything you think I might be missing.

Thanks!

@behdad
Copy link
Author

behdad commented Nov 23, 2023

Yeah the tool cannot always propose good solution. But the first glyph seems to have kinks in that are probably unintended.

@arrowtype
Copy link
Owner

Oh, upon second look, you are correct! Thanks for pointing that out.

@arrowtype arrowtype reopened this Nov 23, 2023
@behdad
Copy link
Author

behdad commented Nov 25, 2023

Hi again,

I'm implementing a kink-detector. It's still far from complete. But I thought I get your feedback on it.

out.pdf

@behdad
Copy link
Author

behdad commented Nov 25, 2023

I think my question is, is this useful? Or those differences are small enough to let go? Basically, I'm trying to calibrate the tool.

@arrowtype
Copy link
Owner

Ooh, yes, this is amazing! Definitely a useful thing to find issues that were hard to locate, before. I especially want to try this out on Shantell Sans, next.

@arrowtype
Copy link
Owner

arrowtype commented Nov 25, 2023

Some of the differences here are small enough to let go of, IMO. In particular, the /percent glyph is deliberately weird, and I don't see any super noticeable issues in the /one. But, seeing the issues in the the /Euro and /uni02C8 is very informative, and those are things I'd like to improve.

@behdad
Copy link
Author

behdad commented Nov 25, 2023

Here's a much more aggressive version. I'm still tuning. :)

out.pdf

@behdad
Copy link
Author

behdad commented Nov 25, 2023

Retweaked. Shantell Sans. Catches one that doesn't matter.

out.pdf

@arrowtype
Copy link
Owner

These are great! The more aggressive version is nice, imo. Does the command line version have an arg for threshold?

@behdad
Copy link
Author

behdad commented Nov 25, 2023

These are great! The more aggressive version is nice, imo.

Interesting. I thought it would be too busy. I'm still tweaking.

Does the command line version have an arg for threshold?

It will have, when I'm done with it.

@behdad
Copy link
Author

behdad commented Nov 25, 2023

Does the command line version have an arg for threshold?

It will have, when I'm done with it.

For now I'm reusing the existing --tolerance. But I'll probably add a separate knob for just the kink checker as well.

@behdad
Copy link
Author

behdad commented Nov 25, 2023

Here's what I'm happy with as default tolerance.

out.pdf

@behdad
Copy link
Author

behdad commented Nov 26, 2023

I settled on this for default, for now. There's --kinkiness parameter you can tweak. Might tweak the defaults again. Your thoughts?

out.pdf

@behdad
Copy link
Author

behdad commented Nov 26, 2023

That was way too much subtle details for the catalog. I'm trying this setting now.

out.pdf

You can still get the aggressive result if you want by setting --kinkiness to 1 or above. It defaults to .5 now.

@behdad
Copy link
Author

behdad commented Nov 26, 2023

How about this as default?

out.pdf

@behdad
Copy link
Author

behdad commented Nov 26, 2023

I made the default conservative, as across the catalog it was overwhelming the reports...

@behdad
Copy link
Author

behdad commented Nov 27, 2023

Here's what the current output looks like.
out.pdf

@arrowtype
Copy link
Owner

Hey, this output is super helpful! Thanks again for the excellent testing tool. I’ll try to fix these kinks in the coming weeks, and make a new release early in the new year.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants