[Openfontlibrary] Raph's font format

Raph Levien raph.levien at gmail.com
Tue Oct 31 12:30:25 PST 2006


On 10/31/06, Dave Crossland <dave at lab6.com> wrote:
> Hi Raph!
>
> > First and foremost, the file format I use for storing master outlines
> > will not be based on Bezier curves. Rather, it is an interpolating
> > spline similar to Ikarus and Metafont, but with some interesting new
> > features that I believe make them absolutely ideal for font design.
>
> Sounds like JUST the kind of 'secret sauce' the Free Font Movement
> needs to leverage itself beyond what is possible in the proprietary
> font world! :-)

I'm hoping, but my experience is also that people have a lot of
resistance to adopting new ideas. Hopefully, my stuff is so good it
will overcome that resistance, but we'll just have to see.

> > My choice for the underlying syntax is s-expressions
>
> Nice :-)
>
> I've always been curious about Lisp, so this will be good to see when its out.

Python is just as good at s-expressions as Lisp. That's one of the
main reasons I'm using it. :)

> > This is because
> > s-expressions are easily powerful enough to meet my needs, yet so
> > simple that they can be roundtripped in 30 lines or so of Python, and
> > not many more of C. By contrast, an XML parser is a pretty major
> > effort.
>
> While observing the Lisp siren at arms length, I've seen xml-to-sexp
> tools and Erik Naggum style rants about how xml is just reinventing
> sexps badly, and I'm also aware of DSSL. This is probably useless
> or already well known, heh

Well, xml is just fine if what you're representing is text with some
markup added, or even some kind of structured file format where a lot
of the content is text. But a font file format is none of those
things, and the complexity of xml doesn't buy you much.

Part of it is just a style question. There are some people who feel
that XML is magic pixie dust that has the power to turn anything into
gold. This belief was actually fairly commonplace a few years ago, but
appears to be abating. Obviously, I'm more of an XML skeptic than most
people.

> > This file format is nearly self-evident. You could convert this to
> > Ikarus format and use Ikarus tools, and you'd get ok results.
>
> I think this will be of some interest to older font developers who
> remember Ikarus :-)
>
> > provide at least as much power as
> > Metafont and Multiple Master, but with graphical interaction based on
> > sliders and reference frames, rather than PhD-level constraint
> > programming
>
> WOW! :-))
>
> I've been leafing through the MetaFont Tutorial [3] as I used it as a
> test file for lulu.com printing, and was thinking of cooking up some
> kind of MetaFont interface as a toy interaction/font development
> project. But this sounds killer :-)
>
> [3]: http://metafont.tutorial.free.fr/
>
> > or having to come up with 2^n masters and have highly
> > nonintuitive rules about their structure being "compatible."
>
> The way I've explained MM is with a colour wheel metaphor
> which is if you take a square palette and kids paints, and in
> each corner put down brilliant bright red,
> green, yellow and blue, and mix them towards the center, you get a
> murky browny purple colour. You can get a nice colour in the middle by
> making the corner colours less intense, though. MM does this to font
> interpolation.

That's half the story. Any set of colors can be mixed, and the
resulting color is quite predictable once you know your basic color
theory. But with MM interpolation, your outlines have to have the same
structure (control points and so on). One pair of glyphs might
interpolate smoothly, while another which looks almost identical will
give you all kinds of bizarre artifacts. Knowing how to avoid that is
a specialized skill which is difficult to acquire.

As a result, I don't believe that carving multiple static masters,
then having a tool to do interpolation between them, is ultimately the
right approach. Metafont, I think, is closer to the mark conceptually,
but it was killed by the need to code up the structure of the font in
a highly nonuntuitive programming language. [I can barely understand
metafont source files, and that's saying something]

The right question to ask about a variation technology is: why have so
few designers learned it? If you get rid of Knuth, Slimbach, and
Letterror, the number of  fonts with variation goes down to
approximately zero. I'm hoping that I won't simply add my name to that
list, that my tools will be accessible to large numbers of users.

> > UFO is
> > definitely a possibility for such things, but from what I can see is
> > still pretty unfinished.
>
> Forking UFO would be very bad - trying to attract the more technically
> savvy font developers, who all use RoboFab and UFO, is a definite goal
> of the Free Font Movement.

What do you mean by forking UFO? NIH'ing my own format with broadly
similar goals, or taking control of the UFO spec, adding features I
need and changing stuff around? Or something else entirely?

Raph


More information about the Openfontlibrary mailing list