Font Manifolds and Flexibility

One of the most useful aspects of procedural generation is flexibility.

Being able to output variations that smoothly transition between states and are generally coherent is often more useful than an infinite collection of more unpredictable stuff. Flexible generation gives the user more control. Further, if the user is another generator, it makes it easier for that generator to just request an output and expect a sensible result. 

For applications like procedural animation, this allows complex hand-authored state machines to be replaced by a well-trained neural network. For applications like this font generation, the aim is to allow end-users to tweak fonts without having to start from scratch with an expensive, complex font editor.

The basic principle behind this research by Neill D.F. Campbell and Jan Kautz is the mapping of fonts into a multidimensional manifold. Each point on the surface is a unique font, extrapolated from the example fonts. You can trace smooth transitions between different looks, or find the point that has the font that’s just a bit different in exactly the way you wanted it to be.

If this technology goes mainstream, we’ll likely see a lot of bad, inconsistent fonts–but the rise of desktop publishing already let that cat out of the bag twenty years ago. As the technical barriers fall, the aesthetic training of the users becomes more important.

And it’s not like this is the first computational manipulation of fonts: it’s already vastly superior to the cheap way to make pseudo-italics. I expect that, implemented appropriately, professional font-makers will appreciate the assistance for creating new weights or variations, provided that they’re able to tweak the results.

It also enables some tricks that were nearly impossible before, like transitioning a word from one font to another smoothly along its length. Which isn’t something I’d recommend as a regular thing, but plenty of art has come out of abusing systems that weren’t meant to be used that way.

http://vecg.cs.ucl.ac.uk/Projects/projects_fonts/projects_fonts.html