It should be noted that Metafont is also a popular system for creating fonts with code. It is even more meta than this because it's a language for creating fonts with code.
When looking at exactly how glyphs are defined (see https://github.com/cmiscm/leonsans/blob/master/src/font/lowe...) it struck me as quite similar to reading raw SVG paths with plenty of magic numbers. It doesn't strike me as particularly "code"-like per se (more like an extremely limited DSL to describe data).
I upvoted this comment, but sadly I wouldn't call METAFONT a “popular” system. The number of people who have successfully created “true” meta-fonts as Knuth intended is tiny.
Nevertheless, when used with skill it can be very satisfying, as in Knuth's paper that I can only describe as a performance (The Concept of a Meta-Font, https://s3-us-west-2.amazonaws.com/visiblelanguage/pdf/16.1/... ) See also A Punk Meta-Font (https://www.tug.org/TUGboat/tb09-2/tb21knut.pdf) where he describes waking up one morning with an idea to create a certain kind of font, going to the computer at 1pm, and basically being done by 4pm.
It is interesting to see the ideas from METAFONT basically ignored and misinterpreted by most of the mainstream of type designers (despite people like Zapf, Bigelow, Holmes, Carter and Southall being involved with the Stanford typography project and helping Knuth refine Computer Modern), only to be slowly reintroduced decades later in new forms (variable fonts etc).
Forgot to mention: this site https://www.metaflop.com/modulator ought to be better known, and I ought to remember to mention it every time I mention METAFONT.
One great drawback of METAFONT, which held back (still does, but used to too) its adoption in the decades when we could have wonderful things built on it, is the lack of quick visual feedback. (The bigger one of course, is that most font designers don't want to describe their shapes with equations: they think in curves, not about curves.) As I understand it, the site is developed by a couple of enthusiasts and goes a long way to address that problem.
At https://www.metaflop.com/modulator just adjust sliders to create a unique font (or get something random by clicking "flop it!", and then tweak it). You can even download the resulting font if you like it.
The main page of the project says "The font is made with code, it has coordinate values of the drawing points for each type." Indeed, a list of point coordinates and types (on/off curve) is at the core of how every vector graphics format, including font files (which are not much more than collections --- glyphs --- of such graphics) is defined, so that's not saying much.
The main difference with other font formats seems to be that this font is stroked and not filled, which enables a lot of the effects shown; but the "wave" effect is not hard to produce from any other font --- calculate intermediate points if desired, and then repeatedly rasterise using a time-varying random perturbation of each point.
Truetype fonts "on their own" aren't, but they do contain a hinting table which allows one to define "hints" which will reposition curve points based on pixel grid they are being rendered in (a bit simplified).
But no, you can't have multiple weights defined in the truetype format, though certain source font formats surely have them and can generate multiple TTFs.
METAFONT is the ultimate fonts-with-code type system, but I am not sure if non-bitmap font generation tooling has moved away from METAPOST (haven't looked at it in years).
FontForge is scriptable as well, but does not have some of the niceties of MF (like equations which get resolved if possible).
OpenType has an extension that allows you to define multiple weights. It doesn't seem nearly as powerful as METAFONT, though; you can just specify a set of offsets to apply to each point in each letter shape: https://docs.microsoft.com/en-us/typography/opentype/spec/ot...
Albrecht Durer gave detailed instructions on how to construct the upper case letters (or at least those needed to write Latin) using compass and ruler.
Combine this with eye tracking for a page of text that grows just the words or figures you're looking at. You could display a larger page on a smaller one. E.g. show a multi page newspaper section on a single page, illegibly small until you focus on a particular headline. As you focus on that its teaser becomes visible, then the leading paragraph, etc.
You could display a link that when you look at it, it grows and resolves into its own content, recursively. Surf links by zooming in. The back button zooms out. It could be a natural way to navigate a graph of text.
If you ever do that, word from someone who worked on AR: have a very fast system to do the eye tracking (and the subsequent compositing), use cameras that are faster than 60 fps because no one will want a system that takes 16 ms to react to eye movements.
Very interesting! wouldn't just scrolling (in 2D) suffice instead of costly eye-tracking? also localized zooming is can be approximated by displaying but on a curved surface.
Couldn't you achieve this with any font by rendering in higher resolution, downscaling to the size of the screen, and then having a "magnification" box follow your eyes around?
This would be a great feature for GoodReader or another iPad PDF reader. You wouldn't even need eye tracking: just magnify two inches above and to the left of my finger.
Variable fonts are amazing. The font distributor Im working with is making a huge push to provide a large library of variable web fonts by the end of this year.
From what I know, fonts are created by optical judgment, fiddling with kerning until it looks right and a tremendous amount of trial and error - this is because our vision system's complexity is compounded by "short-cuts" (optical illusions) that brain takes when processing dorsal and ventral pathways of the brain. In my view, this font is jarring to the eyes and ugly - I am not sure if this has to do with the programmatic nature (variable fonts are sort of programmatic, but with aforementioned manual adjustments) or if the font design itself. If you're a typographer, please share your thoughts and critique.
A font such as this can be categorized under "Display font" but it would not pass the mustard for any serious candidate for text.
Not a typographer, but this is by no means an inferior typeface. You are correct that it is not suited for large bodies text, but this is shared by almost all geometric typefaces.
Geometric typefaces are typically used to communicate minimalism and modernism.
> it would not pass the mustard for any serious candidate for text.
Many typefaces aren't designed for text but for identity. This one is very suitable for, say, asides and highlights in magazines, branding, poster copy, etc.. That it's amenable to modification because of the way it's coded points to its utility for these purposes.
Futura was implemented in the NASA standards manuals[0], and was then used by many others (including Boeing[1] and IBM) for cockpit lettering, plaques, and technical manuals/drawings.
Accessibility was my first thought. For as long as there's been the web there's been an ongoing struggle between visual improvements and accessibility. One thing we've learnt is that many developers don't take accessibility into consideration, so messing around with the simplest concept of HTML, text, seems like a negative in terms of accessibility.
Well, ok, you can provide accessibility alternatives to a Canvas. But does it make much sense to do that for something that would otherwise be text? Ok, granted that Leon Sans will probably be used for nice headers and such it would probably be feasible.
Well, I can. Not sure how your pasting a StackOverflow URL is an easy solution to that problem. I see no mention of SVG on the Leon site. To use the proposed solution you would first need to generate SVG from the Leon Javascript Canvas code. That's probably not impossible but certainly not "easy".
I do small projects on CNC machines, and I got annoyed at having to trace both sides of a character, when using the outline of a standard font. In response, I created the single-stroke characters shown above, but only enough of them to draw basic labels.
It would be interesting to do a closer comparison of these two fonts, it looks like some of our letters are identical. I definitely prefer some of Leon's characters, especially the 's'. It should be easy enough for me to implement mine in javascript, because I focused on simplicity of the glyph definitions. For example, lowercase 'e' is defined like this:
Oh this is cool! I do plotter art sometimes and I’ve been looking for a good font to use for awhile. Most modern fonts don’t work well when drawn with a plotter because they depend heavily on fills rather than pure strokes. Thanks for this - I’ll give this a try!
It looks terrific and really remarkable. There must be something like it for an animation software. Could somebody point me to the right direction, outside of web?
However please refrain from usage on the web. Artistic and presentation use is ok, but CRUD, most blogs and other utilities is not ok.
Super cool work! Congrats for the birth of baby Leon :-)
--
I got interested in typographic animation a while back, there are two related Wikipedia pages: "Motion Graphics" [1] and "Kinetic Typography" [2].
There is not a lot of info describing algorithms to perform Kinetic Typography that I could find. There are a few tools for doing Kinetic Typography for After Effects [3] and a couple other random software products of varying quality.
Btw, After Effects seems to be the closed-source reference implementation for all sorts of complex and cool looking effects. If for some reason all releases and source code of After Effects where to disappear from existence, it would set back the whole field of Motion Graphics by 25 years...
This looks so awesome! Unlimited use-cases. Just however I can hear my Macbook Pro taking off (air fan spinning like crazy) when browsing the demo page lol
I'm going to join the chorus saying that it's cool what you can do with an algorithmic and programmable font.
However, my next thought is that will create noisy and busy displays or web pages and so it is of limited practical/every-day use. I showed it to an Aspie friend who recoiled at all the moving letters.
It's cool- I like the dynamic weighting and the minimal control points. As other people point out, there's very little "code." It would be cool if features would slowly nudge as you increase weight to ensure that they are preserved and balance is maintained as the weight increases.
different use cases. Roboto is the the more neutral font, excelling in interface and copy type. This strikes me as a display font. Use it for headlines and expressive use as seen in the demos.
I would like to add on that Roboto is a bit special in that moreso than most other typefaces used for body text, it is excellent when used for for text at very small sizes.
When looking at exactly how glyphs are defined (see https://github.com/cmiscm/leonsans/blob/master/src/font/lowe...) it struck me as quite similar to reading raw SVG paths with plenty of magic numbers. It doesn't strike me as particularly "code"-like per se (more like an extremely limited DSL to describe data).