GithubHelp home page GithubHelp logo

amstelvar-avar2's Issues

Kaisymbols in Roman

The construction of kappa and kai-tail isn't really working for most instances, so I redrew them into a single glyph, with the overlaps of kappa and no component parts.
We can delete the lai-tail now from all files and update the glyphConstruction file.
@gferreira should I do it or you prefer you deal with it?

Italic l.c. x

x has single off-curve points in thin stroke. Proper solution proposed in background for propagation.
Screenshot 2024-04-27 at 11 52 21 AM

Italic default figure 3 edited

This needed a better shape.
I am updating the sources I'm working on.

Gustavo, please update other sources that contain the old 3.

Let me know.

Out of range XTRA value in one of the avar2 mappings

The Fencer tool picks up an out of range error for XTRA in one of the mappings in this designspace file, line 230:

https://github.com/googlefonts/amstelvar-avar2/blob/main/Sources/Roman/AmstelvarA2-Roman_avar2.designspace

Editing the 72 to 73 (=XTRA min) avoids the error and allows all 29 mappings to be pasted into Fencer.

BTW there’s also a Named Instance with XTRA=72 which should also be fixed, line 2811.

(Arguably Fencer should issue a warning, clamp the value, and proceed. I assume fontmake clamps when running the variation solver on mappings data.)

Tools folder missing

It looks like in the recent repo cleanup the tools folder was removed, despite being documented in the readme.

Berlow stop state

XOPQ and YOPQ MIN sources have been the focus, as the contours are most stressed, and have not originally been made for this light a wght blend.

The sources above, and the default, marked in Yellow, are changed to function without contour de-compatibilization,

diagonalbarl
kgreenlandic
Schwa and schwa
be
icyr

rearranging the overlap, so it works @7upm.

and others are changed to add ink traps to match Latin, or were reversed making them incompatible.

hadescender was changed

and I think there are a handful more of these to do, including. but not exclusively

kai,
kappa
nu
chi

and their relatives.

ghe.bgr has been corrected by being reversed.

and other sources and the default had a contour that worked for a narrower range, but I think difficult to vary down to this range, but I tried.

xi
epsilon
omega

...and any others I missed with that central intersection of two rounds, where I like the form, but it might be better achieved otherwise.

checking regular

am commiting AmstelvarA2-Roman_wght400 with
minor edits to optical x locations of marks
Minor edits to overlaps too close to edge of contour that hides it, (parapgrah and @)

please check marks on. dieresisbelowcomb.case

The contours of Phi were too divided. I conbined the "O" shape for easier manipilation with fewer points.
Same with Psi, phi, psi, Ef

nu was off baseline and had overlap in inner vertex removed

Schwacyr was an ipractical counter to work with. Have simplified.

yi made a component, even if dieresis is unique
ustraightstroke made a component, even if stroke is unique
El.bgr composed from Lambda
yu.bgr composed from l, stroke and o

I've reached the stacked accents. We do not plan to create gvars for a glyph like this:
image

A single set of unstacked accents designed and aligned for Upper and lowercase will be stored. These will be combined a single component at a time.

Like this

Screen Shot 2023-11-09 at 7 17 04 AM

It took me a couple of days to straighten this all out in Roboto, and I'd not like to have to do it again, but let me know if this is not something you want to do.

Cheers!

Family Name Change

Google's choice for the working name of this vf is "Amstelvar2". Please change all relevant files, family names, scripts and compositions, needed for use and relying on previous names.

I will begin when that's complete.

implementing fences

TL;DR: we have fences working for the default, but not for blended extrema.

I've been trying to implement fences in avar2 for AmstelvarA2.

some background on what fences are: Designspace fences (Mom, You Sure Can Rehydrate a Pizza)

Fences keep users to “safe” or “approved” zones of the designspace.

Users who choose axis settings that are beyond the fence will be brought back inside the safe zone.

in other words, fences restrict the scope of parametric axes (ex: XOPQ XTRA YOPQ XTSP) depending on the current location in blended axes (ex: wght wdth).

the min/max values for each parametric axis, at each blended extreme for wght and wdth (duovars), were defined by @dberlow as a RTF document here:

https://github.com/googlefonts/amstelvar-avar2/blob/main/Source/Roman/Amstelvar%20avar2%20DSL.1.rtf

the relevant fences data was then extracted into this JSON file:

https://github.com/googlefonts/amstelvar-avar2/blob/main/Source/Roman/fences.json

finally, this data is used to add new mappings to the avar2 designspace file using the fontTools.designspaceLib API.

for example, at wght400 we would like to limit parametric axes to the following min/max values:

"wght400": {
  "XTRA": {
    "min": 300,
    "max": 450
  },
  "XOPQ": {
    "min": 72,
    "max": 110
  },
  "YOPQ": {
    "min": 50,
    "max": 75
  },
  "XTSP": {
    "min": -60,
    "max": 50
  }
}

in designspace XML this becomes the following: (only XTRA shown)

<mapping>
  <input>
    <dimension name="Weight" xvalue="400"/>
    <dimension name="XTRA" xvalue="208"/>
  </input>
  <output>
    <dimension name="XTRA" xvalue="300"/>
  </output>
</mapping>
<mapping>
  <input>
    <dimension name="Weight" xvalue="400"/>
    <dimension name="XTRA" xvalue="508"/>
  </input>
  <output>
    <dimension name="XTRA" xvalue="450"/>
  </output>
</mapping>

in plain language: when the weight value is 400, instead of going all the way down to 208, the user can only go until 300; and instead of going all the way up to 508, the user can only go until 450.

such fence mappings were added for the default and for all blended extrema (wght200 wght800 wdth85 wdth125), for parametric axes XTRA XOPQ YOPQ XTSP only. the resulting designspace and variable font are here:

https://github.com/googlefonts/amstelvar-avar2/blob/main/Source/Roman/AmstelvarA2-Roman_avar2_fences.designspace
http://github.com/googlefonts/amstelvar-avar2/blob/main/fonts/AsciiAlpha/AmstelvarA2-Roman_avar2_fences.ttf

the fences effect seems to be working at the default location (wght400 wdth100): the scope of XOPQ XTRA YOPQ XTSP is limited when these parametric axes are used alone or in combination with each other. fences for the blended extrema, however, are not working as intended; the fenced values seem to be morphing back to the default (?).

a second designspace and variable font were created containing fences for only one blended extreme (wght200):

https://github.com/googlefonts/amstelvar-avar2/blob/main/Source/Roman/AmstelvarA2-Roman_avar2_fences-wght200.designspace
http://github.com/googlefonts/amstelvar-avar2/blob/main/fonts/AsciiAlpha/AmstelvarA2-Roman_avar2_fences-wght200.ttf

also here fences for the blended extreme wght200 are not working as expected, showing the same behavior as in the previous attempt (above).


some questions at this point:

  • does avar2 allow adding fences for blended extrema?
  • is the above designspace syntax for fences correct?

cc @Lorp @behdad — many thanks in advance for any feedback you can give on this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.