Creating a font editor?

Hello,

I am learning a little bit if programming, and I realized I wanted a personal font editor that I could customize myself. I looked into the main font editors (Glyphs, Robofont, Fontlab 8) and I learned pretty quickly that Robofont was made entirely(?) in Python. Python is the programming language I am best at, but I am not great. I wanted to know if anyone who has tried knows how hard it is or rewarding or really anything about trying to make my own.

I currently have Glyphs, but there are some features I want in order to streamline my own process. I am assuming by the large price tags associated with these pieces of software that something about them is hard to make/laborious.

Thanks!

Comments

  • Sorry, I put this in the wrong category
    It was supposed to go in Type Design Software
  • something about them is hard to make/laborious.

    To write a good font editor, you will need deep understanding of:
    • Programming (because you're writing a complex program)
    • Graphical user interface design and programming / UX design (because you're writing a very visual app)
    • Type design (because you'll need to understand how type designers want to use such an app)
    • Computational geometry (because manipulating Bézier curves is nasty)
    • The OpenType font format (because you're going to be writing those things out)
    Not too many people have such a specialized skillset, and the time to put it all together.
  • I learned pretty quickly that Robofont was made entirely(?) in Python.
    The scripting API for RoboFont is Python-based, but it is a native Mac app presumably written in Swift or Objective-C. These are low-level programming languages and will take a lot longer to master than something like Python.
    I currently have Glyphs, but there are some features I want in order to streamline my own process.
    The beauty of both Glyphs and RoboFont is that they are highly extensible. In the Glyphs ecosystem, since that is what you already have, I recommend getting familiar with its Python scripting API, as you are already comfortable with Python. From there, maybe try writing some more complex scripts with basic user interfaces using the Vanilla library. And from there, you can dive into Glyphs plugin-making, which requires writing that trickier native Mac code.

    What features do you want to add to Glyphs?
    I am assuming by the large price tags associated with these pieces of software that something about them is hard to make/laborious
    Creating and maintaining an app like RoboFont or Glyphs is a huge, never-ending endeavor. Customer support is a big part of it. When I write to Georg about some bug or feature request, and he has a fix pushed out in just a few hours, I think to myself that I actually haven't paid nearly enough for Glyphs.

    Still, I agree with Jens: there is a lot of opportunity to contribute to Fontra. And there's a lot of reason to believe Fontra will not join the same graveyard as the others.
  • @jeremy tribby Robofont is written in Python and heavily advertised as such. It is the first sentence on the Robofont.com web site: “Written from scratch in Python with scalability in mind.”
  • I stand corrected, that is very impressive it is 100% python! I guess all the mac-specific bits are handled by vanilla and pyobjc? makes me wonder how it all gets bundled
  • I stand corrected, that is very impressive it is 100% python! I guess all the mac-specific bits are handled by vanilla and pyobjc? makes me wonder how it all gets bundled
    I think it uses py2app to build the standalone app. It's also used by DrawBot, FontGoggles and others. The use of vanilla for building the GUI, and pyobjc make the app Mac-specific.

    There are also other GUI wrappers that can be used, like wxpython, which would allow the app to run on Windows and Linux as well. The FontTools Workbench is an example which uses wxpython.

    py2app is also Mac-specific, though. For Windows, py2exe can be used to make the app standalone.
  • that is amazing.  it makes sense given the connection between modern font tooling and python, but I'm surprised and delighted to learn this extends to the GUIs as well. I remember tools like perl2exe from a long long time ago, but I had no idea such things were still around or behind such powerful modern tools. not to get too far off topic but I would have guessed apple's increasingly strict policies would make it near impossible to distribute apps built in such a way. is this a precarious situation, or it's all fine as long as the app store isn't involved?
  • py2app is also Mac-specific, though. For Windows, py2exe can be used to make the app standalone.
    For Windows I can recommend PyInstaller.
  • py2app is also Mac-specific, though. For Windows, py2exe can be used to make the app standalone.
    For Windows I can recommend PyInstaller.
    cx_Freeze is another option, which I have used before but forgot about ;)
  • that is amazing.  it makes sense given the connection between modern font tooling and python, but I'm surprised and delighted to learn this extends to the GUIs as well. I remember tools like perl2exe from a long long time ago, but I had no idea such things were still around or behind such powerful modern tools. not to get too far off topic but I would have guessed apple's increasingly strict policies would make it near impossible to distribute apps built in such a way. is this a precarious situation, or it's all fine as long as the app store isn't involved?
    Since it's coupled to macos, why precarious?
  • RoboFont may be “entirely in Python” but the Vanilla UI library presumes macOS. If there’s some OS-independent version of Vanilla floating around that allows RoboFont to run in Windows, that would be news to me.

    Judging by his/her recent Jannon specimen, Typofactory does own a Mac, so Robofont and Glyphs are both available.
  • Since it's coupled to macos, why precarious?

  • is that a spoof of the xkcd comic?
  • Anybody know whatever happened to Trufont, or rather its main developer? There was a lot of momentum at a point, and then it just evaporated while being ever so close to being proper beta quality.
  • RoboFont may be “entirely in Python” but the Vanilla UI library presumes macOS. If there’s some OS-independent version of Vanilla floating around that allows RoboFont to run in Windows, that would be news to me.
    This, exactly. I think I remember some announcement that there never will be a Windows version... or am I confusing that with Glyphs? Either way, it's a shame that type design software has gained so much momentum in the last 5~10 years, and yet a big part of that momentum is locked into specific platforms.

  • The related project Drawbot has a Cairo-based fork that runs on Linux, and it was last updated... six years ago.
  • Since it's coupled to macos, why precarious?
    What Jens said 😂 but also the way apple increasingly seems to want apps distributed (built?) their way - some apps will caution you with “this app can’t be opened because it is from an unidentified developer” or “this app can’t be opened because it could not be checked for malware” - I can imagine a scenario where apple locks things down even more, it’s already what they do with iOS
  • From the little insight I have into the black box that is Apple, they do recognize that extensibility is a key aspect of pro apps on the Mac, including their own Final Cut and Logic. iOS is steadily gaining scripting capabilities in the form of Shortcuts, so this even extends to their most restrictive platform.
Sign In or Register to comment.