[OTVar] state of font tools for creating OpenType 1.8 variable fonts

Peter Constable
Peter Constable Posts: 161
edited November 2017 in Font Technology
It's been great to see the excitement and interest in variable fonts, and to see people beginning to experiment and build prototypes. There's one concern I have in this early phase, though: the risk of jumping the gun with stuff not fully ready.

When our teams at Adobe, Apple, Google and Microsoft got together to develop the OpenType Font Variations spec, one thing we set out as a priority was to ensure interoperability: to agree on a specification and ensure that our platforms conformed so that font developers and users could be confident that variable fonts would behave the same on all platforms. When we announced the technology, this spirit of collaboration and desire for interoperability on our part seemed to be something that was greatly appreciated. But I'm worried that, in excitement to jump on board, people may overlook some of the details needed to ensure interoperability.

I've seen some vendors starting to market "variable fonts". Yet, I'm not yet aware of any tool chain that fully supports all of the new formats in OpenType 1.8, and all of the requirements for OT 1.8 variable fonts. Of course, it's possible to craft a file conforming to the new formats with nothing more than a binary editor, though doubt many would go through such a tedious process to build a font.

For example, a required table for OT 1.8 variable fonts is to have a 'STAT' table. But I'm not aware of any font tools that support this table yet. Similarly, the 'MVAR' table would be needed to support any variation in font metrics, but I'm not yet aware of tools that support that either.

With these things in mind, I thought it would be useful to start a discussion thread focusing on the readiness of tools that fully support the variable font spec. I invite different tool vendors to provide occasional updates regarding what parts of the OT 1.8 spec their tools do or don't yet support.

Comments

  • Belleve Invis
    Belleve Invis Posts: 269
    edited October 2016
    I am adding this feature into otfcc, but I need test fonts :(
    the VF mechanism, especially that included in CFF2, is much more powerful then everyone expected. Period.
  • A version of the AFDKO with early experimental support for building OpenType/CFF2 variable fonts is now available at the Adobe AFDKO website. Please take a look at: 

    http://www.adobe.com/devnet/opentype/afdko/AFDKO-Variable-Font-Support.html.

    This gives an overview of current level of support, and what's next. Note that this was just pushed live: it may take up to a day to be visible outside the United States.

  • Dave Crossland
    Dave Crossland Posts: 1,431
    edited October 2016
    Thanks Read! 
    The workflow will eventually support creating variable font info in the feature file syntax, and will allow building variable fonts without requiring UFO master fonts and Superpolator design space files. 

    ...

    Extend build tools to allow building without a Superpolator designspace file and UFO source fonts.
    Please could you expand on what this means? 
  • I see that version 3.2.0 of fonttools has been released. (If you've been using the beta bits, this might not be new to you.) This adds many of the things (but not yet all) that are needed for creating OT variable fonts.

    Some key additions: varLib support for
    - GDEF variation store (for GDEF and GPOS variation data).
    - HVAR, VVAR
    - GSUB and GPOS feature variations

    Some key gaps that remain: MVAR, STAT and CFF2

    Others that are closer to this work can provide more complete/accurate details.
  • Devon Govett’s JavaScript package fontkithttps://github.com/devongovett/fontkit ) that he dubs “an advanced font engine for Node and the browser” does have impressive support for a large subset of OpenType, including some OT Variation support. It’s not a full font manipulation package that would allow reading, modification and writing of SFNT font resources in the browser, but more of an JS-based OpenType Layout engine. 
  • I was talking to John at Unicode Conference and he brought this up.  I'm working on implementing MVAR, and later STAT tables in fonttools.  In the mean time, I like to point out that there are situations, like web fonts, where the STAT table is really optional.  I think it should have had been an optional table.  But I know we discussed that in length in the meetings. :)
  • … the STAT table … should have had been an optional table
    Maybe you can update the WOFF2 spec to include a flag that represents an entire pseudo STAT table ;)
  • An updated version of the AFDKO with early experimental support for building OpenType/CFF2 variable fonts is now available at the Adobe AFDKO website. Please take a look at: 

    http://www.adobe.com/devnet/opentype/afdko/AFDKO-Variable-Font-Support.html.

    What is different is just the command 'buildMasterOTFs': it now expects a different directory tree of source material. This version of the AFDKO will work with the 'AdobeVariableFont.otf" OpenSource files at   https://github.com/adobe-fonts/adobe-variable-font-prototype

    - Read Roberts

  • … the STAT table … should have had been an optional table
    Maybe you can update the WOFF2 spec to include a flag that represents an entire pseudo STAT table ;)
    The 'name' table isn't needed in Web fonts, but the OT spec still considers that a required table. If it can be handled in WOFF2, that seems reasonable and sufficient.
  • Peter Constable
    Peter Constable Posts: 161
    edited November 2016
    I see that Glyphs 2.4 has been released, with some additional features related to variable fonts. It's great to see tools making progress! :smiley:

    https://www.glyphsapp.com/blog/new-features-in-glyphs-2-4

    I also very much appreciate that they call out that this is still work in progress, and that it would be premature to start releasing variable fonts. It won't be long until platforms and tools are fully supporting the OT 1.8 spec, and it's worth waiting a few more months to have fonts that will work the same on all platforms.
  • Georg Seifert
    Georg Seifert Posts: 674
    edited November 2016
    Please understand that variation fonts exported from Glyphs do not fully comply to the spec, yet. Several needed tables are not exported. I'm working on this right now, but it will be a while – just as the support in apps is growing slowly.

    But please play around with it and report problmes. 
  • An updated version of the AFDKO with experimental support for building OpenType/CFF2 variable fonts was just posted at the Adobe AFDKO website. Please take a look at: 

    http://www.adobe.com/devnet/opentype/afdko/AFDKO-Variable-Font-Support.html.

    This version is required to build the current version of  the  'AdobeVariableFont.otf" OpenSource files at   https://github.com/adobe-fonts/adobe-variable-font-prototype

    Changes:

    -  It uses version 3.9.1 of the fonttools module.

    - bug fixes

    - the 'tx' tool can now emit instances specified by the user design vector into the different output modes.

    The update was just posted: it make take up to 24 hrs to become visible outside the USA.

    - Read Roberts