History of Hipertipo nuclear fonts
23 August 2021
- Background & motivation
- Jornalistica Roman & Italic
- Mechanica Mono
- Jornalistica Sans
- Note about font names
Background & motivation
During the last decade or more, I’ve been working on and off on set of nuclear fonts1 of my own design. Most of the typefaces in this collection grew out of earlier experiments in designing bitmap font styles – investigating how much stylistic differentiation is possible in the low-res grid, and how to achieve it – so the resulting shapes are naturally well suited to the coarseness of the screen. On top of that, all typefaces in this group were built from the start as flexible interpolation systems containing at least weight and width axes, allowing for fine adjustments at specific pixel sizes.
The primary motivation for this work was developing my type design skills and learning more about font production tools and workflows – the fonts evolved together with my tools and served as a real-world test case. I rarely worked as a (typo)graphic designer during this period, so I had no urge to make the fonts usable for real work; this allowed me to keep the font collection as a large construction site for very long.
I’ve enjoyed working on the different typefaces in parallel, and still do, alternating between them, transferring lessons from one to the other, comparing solutions, making certain aspects match while making others more distinctive. I also like not to work on them for longer periods of time, and come back later with a fresh look and renewed interest. This is different from a publication-oriented approach, in which projects are pushed sequentially through a production line until their release (and oblivion).
My interest for this set of fonts was renewed in 2019-2020, as I was able to convert all of them into variable fonts. Most of the conversions were straightforward, and a few special cases2 required custom tools and preparation steps. While previous implementations could only simulate continuity through a series of instances, the variable fonts make the real thing available right here in the browser, with a familiar CSS API. For someone who had been working around the limitations of static fonts for many years, this was very exciting.
Below are some notes about the origins of each typeface, as far as I can remember. The typefaces are listed in chronological order, from the oldest to the most recent ones. All typefaces are still in development.
Mechanica started as the outline version of Elementar, a family of bitmap fonts with simplified connections and open apertures. These traits were carried over and refined in Mechanica, first on paper and later in the font editor.
Initially built on a grid, the design slowly distanced itself from Elementar and embraced the freedom of the bezier world, gaining finer details such as overshoots, a greater variation in glyph widths, and a subtle thick-thin stroke contrast. Glyphs with slanted strokes took on more natural shapes, and figures became more distinctive too. In 2013 I had some help from Flora de Carvalho, who made the first drawings for the uppercase during a brief apprenticeship in Amsterdam.
I’ve always had mixed feelings about this design. It used to have a more pronounced kind of contrast, with a stroke tension similar to Gerard Unger’s Argo (or, more likely, inspired by it). I ended up dropping the angled stroke contrast in 2019, in favor of a simpler geometry which produced better rendering in text sizes on the screen, and which brought the design closer to Elementar and constructed sans-serif typefaces (such as DIN and Isonorm).
When I started drawing what would become Mechanica, there were not that many well-known mainstream typefaces in this category: Dax, Prokyon, and maybe Skia are the ones that come to mind.3 However, letters with this style of simplified construction were present in the typographic landscape through logos and lettering, often with futuristic or technological connotations. And most of all, such simplified letterforms were present in the interfaces of low-resolution screens everywhere, from TVs to mobile phones. Since then, we have seen a boom of new typefaces in this style, and the consolidation of its own genre: the spurlesss sans-serif. It has been amusing to see new releases appear, compare them to my own efforts, ask myself if it was worth to continue, and decide to go ahead. I learned that, even in such a minimalistic genre, the results will be sufficiently different if you draw your own from scratch without looking at other peoples’s work.
The italic was created rather quickly in 2019, first by slanting the upright styles, then making the rounds rounder and the horizontal stroke endings straight. This design gives the italic a quirky feeling, which contrasts with the upright and squarier roman style. Alternate cursive characters were added to complete the transformation from roman to italic.
Quantica started as an experiment with the scaleable, vector-based approach to creating screen fonts (the “Verdana method”4), after some years working exclusively with bitmap fonts. The project began as my graduation work at Type&Media, where I presented only a TrueType-hinted regular style, along with the bitmap fonts used to create it. After my presentation, Gerard Unger – who was the external examiner that year – told me privately that Quantica was “a very nice sans-serif” (I think he wanted to cheer me up, and he did); I thanked him, and mentioned that it was hard to keep the apertures that open, to which he simply nodded, as if saying “I know”.
I continued to work on the typeface after my graduation, adding width and weight axes (using Superpolator) and expanding the character set. This was my ‘most finished’ typeface for a long time, and a few friends have asked to use it in real-world projects – which in turn motivated me to add missing characters and improve the fonts.
The italic styles were created sometime between 2007 and 2014 (I don’t recall exactly), based on the slanted roman, with optical corrections and a more cursive construction. During a trip to The Netherlands in 2018, I converted the typeface into a variable font, and added a contrast axis to introduce a subtle stroke modulation for text and display styles. I also made the italic and the roman styles compatible and interpolatable through a slant axis, with alternate cursive glyphs accessible through OpenType features.
Synthetica was originally drawn as the italic counterpart of Quantica. However, the mood of the design was too different, and it didn’t really fit the roman – so I decided to continue it as a separate typeface. Synthetica’s Roman was designed from the Italic, by backslanting the glyphs and drawing alternate roman shapes.
Designing the lighter weights for this typeface was a challenge, as there is no more space for the counters to grow. I finally had a breakthrough when I decided to allow the arches and bowls to break, essentially turning the lighter weights into a stencil design. When converting the typeface into a variable font several years later, this would require custom glyph substitution rules to create (the illusion of) continuity between the lighter weights (stencil) and darker ones (solid).
The drawings and the designspace of this typeface changed considerably over the years. The original italic design got lost during the process, so the current italics were re-generated from the roman. Around 2018 or 2019, I made the character widths the same across weights. I like the Italic Light Condensed in particular, and have been using it on a personal project for some time now.
Synthetica challenges established typeface classification categories, blending elements from humanistic sans-serif and geometrically constructed fonts. I’ve been aware of a few other existing typefaces with similar forms – notably Quadraat Italic by Fred Smeijers, Calcite by Akira Kobaiashi, Primary by Martin Wenzel – and tried to keep a respectful distance to all of them.
Publica’s origin story is a bit different from all the other typefaces in this collection. While all others were drawn by me entirely from scratch, Publica started from an existing open-source font family – Liberation Sans – which was customized for use in the visual identity of a public university5. I’ve continued to work on the fonts over the years, and made the design my own. The ultra-black and ultra-light weight extremes of the university fonts were reduced to match the range of other families. The character set was also pruned, with removal of small caps and reduced language support. It is easier to make deep changes when the fonts are small.
The italics were rebuilt later by slanting and adapting the roman. After the typeface was converted into a variable font, a contrast axis was added to adjust variations in stroke thickness, opening room for a new series of display styles. With grotesks being such a useful and popular genre among graphic designers, several people have asked to use Publica in editorial projects, and this motivated me to try and complete the fonts. It is useful to have it in the catalog as a sort of non-typeface (the absence of a design), and I find it fitting that it was created out of something generic and public.
Jornalistica Roman & Italic
Jornalistica has a rather diffuse development history. I had only drawn sans-serif typefaces, and wanted to have a serif font in my repertoire. I remember sketching some lettershapes on paper during a trip to Amsterdam in 2008, and digitizing these drawings once I arrived back in Rio de Janeiro. I didn’t touch this design for a long time after that, and when I finally came back to it, I changed it completely. I think this happened more than once. The shapes were a lot pointier overall, with triangular serifs and very sharp stroke endings. I got help from Álvaro Franca with the roman uppercase in 2013, during an apprenticeship period in Amsterdam, but somehow I can’t remember what we discussed about it then.
Jornalistica Italic had two separate beginnings. The first sketch was of a more garamondish italic, with hook-shaped instrokes and outstrokes. As previously with Synthetica, I liked the letterforms, but they didn’t really match the existing roman very well – I knew I had to start again. The opportunity presented itself in early 2015, when Álvaro came to Cunha for another apprenticeship week: I asked him to sketch a new, more fournieresque italic for Jornalistica’s roman. This is the version I picked up one or two years later, and expanded into a full set of weight and width masters.
From this point on, the roman and italic styles were developed side by side. A contrast axis was added to both, preparing the ground for the creation of display styles and optical sizes. After yet another break, both typefaces were converted into variable fonts. I got excited (maybe too much) and added a slant axis to the italic, which required me to create an upright version for each source in the designspace. And on top of that, in both Roman and Italic, I’ve decided to add two special axes for controlling the height/depth of ascenders/descenders, and the size of the capitals, which required creating yet more sources – only in this case the process could be automated to some extent.
After all these years, the typeface has yet to be put to use in a real-world project. All individual parameters for fine micro-typographic control are now in place, and the work of defining the ideal values for each size remains to be done. In a way it feels like the fun is just about to start, and I look forward to it.
Mechanica Mono is a relatively recent development. After many years using EMono 13 (a 13px bitmap font) as my default coding font, I wanted to switch to a scalable monowidth typeface. Of all my designs, Mechanica was the one most suitable to serve as the base for a monospace font. Mechanica Mono was drawn in a weekend or two by adapting the proportional lettershapes of Mechanica. I have been using it as my default coding font since then – in fact, I’m using it right now to write this text in my code editor. For me, it works very well.
Jornalistica Sans was created rather quickly by chopping off the serifs of Jornalistica Roman and Italic – a very obvious and predictable thing to do. Not so obvious and predictable was the idea to make the roman and the cursive italic compatible and interpolatable, opening a whole new territory of ‘semi-italic’ styles between the two.
While quick to create, this unpretentious typeface made the Jornalistica family a lot more versatile as whole, and added a valuable typographic flavor – humanistic sans-serif – which was not yet available in my catalog.
Pneumatica’s lettershapes have been developing slowly in napkin sketches for many years: an ultra black extended sans with hairline counters and rounded stroke endings; fun and eye-catching, and also very easy and quick to draw. I remember demonstrating this ‘drawing inwards’ technique in my type design workshops several years ago.
The digital version was created on a rainy weekend, originally for use in a signage project which has not (yet) materialized. I liked the result, and found that it filled a gap in the font collection – a non-classical grotesk with some humour and punch, and which took some ideas from Synthetica into a different direction – so I’ve decided to include it in the set at the last minute. A few weeks after, a slant axis and cursive alternates were added to produce the italic styles.
Calligraphica has a unique story within this collection. Its lettershapes are, in their essence, of a different nature: they exist primarily as skeletons (open contours), with the glyph outlines being calculated (by code) and/or drawn (by the hand) in relation to them. The skeleton fonts which serve as the basis for Calligraphica used to belong to a separate group of fonts which I called StrokeFonts. The origin of these skeleton fonts goes back to my calligraphy exercises at Type&Media, and early beta testing of Kalliculator, a pen-simulation tool developed by my colleague Frederik Berlaen.
These unfinished skeleton alphabets were left untouched for a couple of years, until I rediscovered and improved them to show during a workshop as an illustration of different construction models. This must have been around 2007-08. There were several different skeleton types: interrupted, connected and flowing; upright and slanted; with and without serifs; constructed and organic; etc. I drew only the lowercase (often not even complete), and printed word samples directly from the UFO glyphs by applying a stroke width to the open contours.
A few years later, Kalliculator was no longer available, and I had become more skilled at programming. I was experimenting with different ways to generate lettershapes with code, and used the old calligraphic skeletons to explore a rudimentary pen simulation tool. This must have been around 2011-12. The main attraction then was being able to calculate a color gradient along the path, while the pen width and angle were all fixed. In more capable pen-simulation tools like Kalliculator or MetaFont, however, the pen width and angle could be different at specific points along the path, and the stroke was calculated by interpolating steps between these points – this was beyond my programming skills at the time.
More years passed, and the tools got better. Frederik released the Outliner extension for RoboFont in 2016, which could calculate a uniform stroke around open or closed contours. The output of this tool was much better than what FontLab Studio could do at the time: clean bezier point structures with nice overlaps, as we usually draw them manually. This tool made the skeleton alphabets much more useful, since it was now possible to build real fonts directly from them. The fact that Outliner was open-source was also very exciting, since it allowed me to plug it into some of my own tools and experiments.
While working on the RoboFont 3 documentation, I became more familiar with RoboFont’s internal APIs and good practices for building tools. In particular, I learned how to use representations to improve performance of tools which need to display and update information on the screen; and I learned how to use unique identifiers to attach data to individual points. With those last pieces, I was finally able to build a proper pen-simulation tool in RoboFont (named StrokeSetter) which could set pen width, height and angle individually at each point along the skeleton path. Or, in other words, I could now finally go beyond just translation to simulate rotation and expansion of the pen too.
A complete pen simulation tool for type designers should be able to simulate pen strokes (preview them on the screen), and also generate pen strokes as proper beziers for fonts (with separated contours, smooth curves, proper point placement, self-overlapping shapes, etc). Outliner and Kalliculator can do both.6 My simple StrokeSetter tool can simulate the pen fairly well, but can only generate very dirty contours with lots of redundant points, which require manual editing to become usable in a font. Still, even with this limitation, the tool has been very useful in my type design work.
The current Calligraphica variable typeface was created sometime in 2019, for use together with vector illustrations in a similar style – open contours with a monoline stroke and rounded line caps. I used the Cursive Interrupted Sans-Serif Slanted skeleton to create Light and Black sources using the Outliner code, and produced a first variable font with a simple weight axis. I’ve been using the font since then to make photocopied leaflets, and have been improving and expanding the design little by little. A width axis was added, initially using the same skeleton with a horizontal compression factor. This led to too many compromises, and in the next round I switched to using a separate skeleton for each source, so I could adapt the skeleton glyphs for each style7. Next to the variable monoline version, I’ve also started producing a high-contrast version using the StrokeSetter tool and additional manual work. This has not yet been integrated into the variable font because the point structures don’t match.
The most recent development is a Roman version based on the Roman Interrupted Sans-Serif Upright skeleton from the old StrokeFonts set. The two variable fonts are currently being used in combination as the text typeface in a small brochure series. I look forward to adding the contrast axis soon.
Note about font names
I wish I could come up with better names for all typefaces. I’ve tried many ideas during the years, drawing inspiration from various places – from minerals to plants, from constellations to landmarks, from personal names to alphanumeric codes. I always end up going back to the current names, which were never really intended as the final ones, just as temporary working names. They work because they are somewhat descriptive of each typeface, and they form a kind of group or system of similar-sounding names. They may not all be unique enough though – in which case, I can add a foundry prefix for disambiguation.
Nuclear fonts means exactly that: essential fonts which form the core of a growing collection. It is also a nod to the term “core fonts”, as in the core web fonts from the early days of the internet. ↑
Specifically, the extenders and capitals axes in Jornalistica Roman and Italic, and the lighter range of Synthetica’s weight axis. ↑
As far as I know, Verdana was created first as a series of bitmap fonts in different sizes; the bitmaps were scaled to the same size and superimposed; and only then the outlines were created around it. ↑
This is also mentioned in the Kalliculator research paper:
Finally, a difference is created when the weight is altered from regular to black. Most of these weight problems can be solved by adapting the skeleton or the angle of the pen, but it is recommended to adjust the skeleton. A black broad nib pen has a different skeleton from the regular weight, because it has a higher contrast. When creating a black based on the skeleton of a regular, the contrast remains at the correct spots, but the end result does not have the same sharpness. But when the weights are going to an extreme there is at a certain point to much black. In order to solve this problem with a qualitative outcome, the skeleton has to be changed.