Simplepolator

PabloImpallari
PabloImpallari Posts: 806
edited March 2013 in Type Design Software
Simplepolator allows you to interpolate compatible glyphs in the same font, without leaving FontLab nor interrupting your workflow.

Simply select two compatible glyphs and run the macro:
Five new glyphs will be automatically created, allowing you to choose the best variation.
Making it super-easy to apply the Gunnlaugur SE Briem's method on "How to make mistakes.

A quick video showing how to use it:


Download:
http://www.impallari.com/projects/overview/simplepolator

Comments

  • James Puckett
    James Puckett Posts: 1,998
    This functionality is built into Glyphs. In a font with multiple masters you can work on the master layers while simultaneously viewing a preview of a defined instance. It’s a great time-saver.
  • Mark Simonson
    Mark Simonson Posts: 1,739
    Nice, but you may be reinventing the wheel here. There's a simpler script that does the same thing on the RoboFab site:

    http://robofab.org/talks09/robofab_session5.html

    # robothon 2009 # interpolate two glyphs in the same font a bunch of times from robofab.world import CurrentFont f = CurrentFont() for i in range(0, 10): factor = i*.1 name = "result_%f"%factor print "interpolating", name f[name].interpolate(factor, f["A"], f["B"]) f.update()
  • PabloImpallari
    PabloImpallari Posts: 806
    edited May 2012
    Yep they are about the same, but in the Robofab sample you have to define the glyphs in the script code, requiring you to modify the code each time you want to interpolate (or use a predefined naming scheme).

    This is about the same, but here you can just pick any 2 glyphs and you are good to go.
    Also, it warns you in case of any error (more than 2 glyphs selected, incompatible outlines) and the original 2 glyphs are added to the results, making it easy to compare all the instances at the same time.
  • James Puckett
    James Puckett Posts: 1,998
    Yep they are about the same, but in the Robofab sample you have to define the glyphs in the script code, requiring you to modify the code each time you want to interpolate…

    Just assign two selected glyphs to two variables and put the variables in place of the names.
  • Jackson Showalter-Cavanaugh
    edited May 2012
    This could be fancier and smarter but 5 minutes with the robofab sample gives us

    if CurrentFont() is None: print "open a font, silly" else: f = CurrentFont() glyphNames = f.selection if glyphNames == []: print "this only works if you select two interpolatblblle glyphs" else: for i in range(0, 10): factor = i*.1 newglyph = glyphNames[0]+"."+str(i) print "interpolating", newglyph f[newglyph] = f[glyphNames[0]] selectedone = glyphNames[0] selectedtwo = glyphNames[1] f[newglyph].interpolate(factor, f[selectedone], f[selectedtwo]) f[newglyph].update()
  • Georg Seifert
    Georg Seifert Posts: 674
    In Glyphs, if you have drawn two versions of the same glyphs put one in the background and use the Filters > Transformation > Background to interpolate between the for and background layer. They have to be compatible, of cause.
  • Robofont version, improved by Frederik. Now it also extrapolates!
    https://github.com/typemytype/RoboFontExamples/blob/master/interpolation/quickInterpolate.py
  • Dave Crossland also made the FontForge version
    https://github.com/davelab6/fontforge-simplepolator