Jura Project

186 views
Skip to first unread message

Alexei Vanyashin

unread,
Jul 14, 2016, 7:15:18 PM7/14/16
to Google Fonts Discussions, Daniel Johnson
¶ #6. Sprint 1, week 3, July 14, 2016

From today, moving my log to a separate thread on Jura. 

1. Today:

After a short break on expansion projects, I am back to work on Jura.

Let's rewind back to my initial deck
During my first few days on the project, I mainly explored the technical part:
how many instanced can I generate using a single monoline master, combined with offsets filters.
The answer was — one master would suffice to generate instances for four existing weights.
To further expand into bolder weights, a bolder master would be necessary. 
So, for now I will focus on a single master, and later, if my time-box permits add extra weights.

During this exploration however, I missed an important design aspect. 
To remedy this, let's examine the origins of the project, and understand it's philosophy. 
Here is what original author Daniel wrote in regards to my first steps.
 
Hi, original creator of Jura font here.
It has occurred to me to mention one philosophical tidbit that guided me when I was first creating Jura. It all started with the Kayah Li range which I created for FreeMono (whose Latin range is a clone of Courier). Insofar as was possible, I tried to use curves copy/pasted from the glyphs in that range (though, because Kayah Li does not have full diagonal strokes, I could not use this idea throughout). This is particularly apparent in the upper right corner of "g" or the upper left corner of "p", and also explains the curved terminals on the "z". It also explains the rather sharpish corners of the tail of the "g" and the "y". I think the initial redesign as shown on slide 19 of the "Jura Redesign" deck loses some of that in the heavier weights.
As an aside, I believe if you compare the stroke width of my original Light weight, it should match FreeMono exactly.
 


Worth mentioning, Daniel states on the Jura project information page:


 I wanted to create a Roman alphabet using the same kinds of strokes and curves as the Kayah Li glyphs, and thus Jura was born.



Following the investigation, I have looked into Daniel's 'Kayah Li' in FreeMono, 

which is where Jura's typeface finds its roots.

I didn't find much coherency between the two scripts in this design. 

So I fully understand Daniel's intention to create a Latin that would 

better fit the Kayah Li part. 



Now, let's compare the two scripts in Jura.

Definitely, the Latin part is more congruent with Kayah Li. 

I have set sample text using the 'trademark' p-y-g-z glyphs as suggested, 

were features are most apparent:


What I do not yet understand is why Kayah Li is monolinear, 

while all other glyphs are not. 

I am unsure if this needs to be fixed in the redesign or ignored.

Also, the Latin appears much wider rhythmically. I will write this off to script-specifics,

and focus on the existing shapes. 


The graphical features of Jura are closely connected to the Kayah Li part, 

with an offset to the diagonal nature of some strokes, unique for this script. 

Another detail, Kayah Li lacks the roundness of Latin. 




And, here is my first concept in comparison with original Kayah Li:



I did miss the horizontal joining in /d.

Although I find the new proportions are a better match. 

The stroke weight difference should be ignored at this point. 


Summary.

My new design brief will be altered to include consistency with the Kayah Li design.


The stated goal of having the "same kinds of strokes and curves as the Kayah Li glyphsis achieved. 

To push this idea further, I suggest also harmonising rhythm and movement across the scripts. 


More information on Kayah Li


2. Tomorrow:

Explore several concepts to unify the rhythm across scripts. 





Alexei Vanyashin

unread,
Jul 14, 2016, 7:40:42 PM7/14/16
to Google Fonts Discussions
I have inspected some Kayah Li, aka Karenni fonts found on the omniglot website.
Generally all glyphs are monospaced, but three.

Noto Sans Kayah Li: all glyphs are monospaced, 

Latin, and Cyrillic are proportional


This clarifies my previous question on the width/proportions of Latin.


 

Alexei Vanyashin

unread,
Jul 15, 2016, 10:46:15 PM7/15/16
to Google Fonts Discussions
¶ #6. Sprint 1, week 3, July 15, 2016

Today I mainly spent defining my process of working with the four weights.
I tested many ideas, including using Glyphs corner components
on the hairline master to unify all corner curves. 
But this idea failed since corner component are
technically hints, and once an offset filter is applied
on top of an outline with corner components, they are flattened, and ignored. 

So I took a different route. Is seems to work fine, allows expansion, and is time-efficient:
  1. Create a monoline master for a set of glyphs. As a guidance, the original version of Jura lies in the background. 
  2. Copy the monoline to SemiLight layer, and apply an offset value of 42. My monoline master is designed in such a way, that this step requires minimum corrections, if any. 
  3. Copy it to the SemiBold layer, and apply an offset value of 72. This step, however requires extra time to adjust the x-height of Bolder style.
Following these three simple steps I can recreate the two masters
required for existing four weights. Plus the monoline
layer can be used to generate a thinner style, and possibly a Bold.

The first glyphs I tried this workflow on were the Kayah Li.
Here is a video of my process.

The process of redrawing core Kayah Li glyphs served as a way to align with 
the tone of the typefaces, understand its rhythm, and proportions. 
In the future, this will allow me to make better design decisions across the whole font, 
reproducing what I have learned on a subconscious level. 

I am using the noodler plugin for offsetting and rounding corners in one go, 
and the pre-built curvature values. This is necessary 
to optically correct mathematically rounded corners.
To visualise the differences in curvature I am using the SpeedPunk plugin. 

This image shows how using the SpeedPunk plugin

can help in matching the curvature of outlines.


The original version shows more abrupt activity in the 

terminals. I tried to match the outlines as closely as possible, 

and harmonise the contours. 


The overlay of my new trace of Kayah Li shows minimal differences, 

since my goal was to match the original, and refine the outlines. 

There would be more significant changes in the Latin part. 




I squared out the 'o', as Dave suggested. This brought the font
closer to the Eurostile vein, and harmonised with Kayah Li. 

Top: earlier version with rounder o'; Bottom: corrected squared version.



By the end of the day, I completed 18 lowercase glyphs, and tested the results.

Some major design changes were made: ascender was raised, x-height
increased in the Semi-Bold style. This was done in response to Thomas', 
and Jacque's valuable input on my deck. 



The proportions were also tweaked in accord with the Kayah Li part. 
This is most apparent in the Semi-Bold version —
it is much more economical now. 

That's all for today.

Stay tuned for more updates next week,

Have a great weekend.

-a


Alexei Vanyashin

unread,
Jul 18, 2016, 8:59:55 PM7/18/16
to Google Fonts Discussions
¶ #6. Sprint 1, week 4, July 18, 2016

Today:

Last week I have developed design principles for key glyphs, which root from the Kayah Li design, and tested them on 18 lowercase characters. 

Jura is a perfectly modular typeface, meaning that most neighbour shapes can reuse common parts. Below I have collected neighbour shapes from the round group. The overlay on the left, in Russian typographic practises is referred to as 'polygram'[many lines; Poly – many, Greek γραμμῆς(grammēs) - line]. I am unsure what is the term in English. In this sense, a 'polygram' is a stencil, from which multiple letters can be created.



In accord with the said rule, I have unified key glyphs, that belong to the same poly-group. This resulted in adjustments of radiuses. One thing that was out of place: glyph /c in legacy version created an optical upward movement, because of the difference in corner radii. This was remedied in today's version.





So far, so good. This design principle was carried out throughout the whole lowercase set with some necessary corrections along the way.

The uppercase posed new questions on the model. Proportions in the legacy version weren't consistent with lowercase. I have unified them.


Applying the logic further, I started working on O C G. While designing /S I felt the urge to 'borrow' the top part from /C for better coherency. However the original version lacks such direct citations.



As a result of my experiment, /S is popping out in text, and creating spurts of diagonal movement in opposite directions. I will revisit this glyph tomorrow, and search for a systematic solution.

Here are more images from today's tests:

Legacy Jura:




Jura Development:





P.S. Thanks for the support on twitter! Stay tuned for more. 










Dave Crossland

unread,
Jul 19, 2016, 1:31:26 PM7/19/16
to googlefonts-discuss
Thanks Alexei! This story telling is gold :) 

Alexei Vanyashin

unread,
Jul 19, 2016, 9:39:03 PM7/19/16
to Google Fonts Discussions, da...@lab6.com


On Tuesday, July 19, 2016 at 1:31:26 PM UTC-4, Dave Crossland wrote:
Thanks Alexei! This story telling is gold :) 


Thank you for the compliment, Dave!


¶ #6. Sprint 1, week 4, July 19, 2016

Yesterday I finished my day with some questions on the /S, /J, and /C. The general graphic idea needed some additions on how
to treat the uppercase. I tried several solutions, including scaling up the lowercase design up by 37%, and then condensing. 
Until I came up with a general design principle that would align all design solutions.

On-curve points should be equidistant from corners, and curvatures have exact same values. In case of an inktrap, an exception to this rule is possible. This is true for glyphs like n, a, b, d, p, etc.

Here is are illustration of this principle. 



And here is an example of this rule in practise. Not how the distances are both equal to '101'.





Later today Capitals received a lot of attention. There were inconsistencies in proportions, which I resolved. 




Figures were fully redrawn.

For disambiguation between zero and uppercase /O, I compressed the figure. This didn't seem sufficient, and I added a dot. In these types of modular fonts this is general practise, considering the constraints of letter shapes.



Parenthesis were added. I admit the braces { } might be too spiky. Ouch!


Just a few more glyphs, and I will complete the GF Latin Plus in no time:


One more treat for today, now that I have figures on board,
I can make cool type specimens on this page.




That's all. Come back tomorrow for more!
-a


 

Alexei Vanyashin

unread,
Jul 20, 2016, 7:38:21 PM7/20/16
to Google Fonts Discussions
¶ #6. Sprint 1, week 4, July 20, 2016

Today I completed the punctuation marks for both masters, and partially covered combining marks required for GF Latin Plus support. First I created the legacy accents (acute, breve, caron, cedilla, circumflex, dieresis, dotaccent, grave, hungarumlaut, macron, ogonek, ring, tilde). And then used mekkablue's Combining Mark Maker to generate combining accents for said glyphs. I noticed ogonek wasn't producing ogonekcomb, so I updated my local copy of the script. Which I will later push on git. 

Image: Punctuation marks in Jura Light, and SemiBold





All accents are vertically aligned to an imaginary line. 

Accents were made to accommodate Jura's squarish-style.

Image below: Ring accent. left: original; middle: a circle without optical corrections; 
right: final version, adapted to Jura's design principle




The accents that I made today allowed me to generate most of the GF Latin Plus set. 
Drawn glyphs will get more attention later. 
Big picture:











-a

Dave Crossland

unread,
Jul 20, 2016, 7:59:34 PM7/20/16
to googlefonts-discuss
Hi!

Nice job comrade :)

On 20 July 2016 at 19:38, Alexei Vanyashin <a...@cyreal.org> wrote:
used mekkablue's Combining Mark Maker to generate combining accents for said glyphs. I noticed ogonek wasn't producing ogonekcomb, so I updated my local copy of the script. Which I will later push on git. 

Please do make a Pull Request :)

The commabelow weight seems a little heavy, but this is all very promising :) 

Cheers,
Dave

Alexei Vanyashin

unread,
Jul 22, 2016, 10:05:36 AM7/22/16
to Google Fonts Discussions, da...@lab6.com
Hi!

Nice job comrade :)

Thanks Dave! 

On 20 July 2016 at 19:38, Alexei Vanyashin <a...@cyreal.org> wrote:
used mekkablue's Combining Mark Maker to generate combining accents for said glyphs. I noticed ogonek wasn't producing ogonekcomb, so I updated my local copy of the script. Which I will later push on git. 

Please do make a Pull Request :)

 
The commabelow weight seems a little heavy, but this is all very promising :) 

It does, thank you for spotting that! 
 

¶ #6. Sprint 1, week 4, July 21, 2016

Thursday was devoted to accent marks and various drawn glyphs. I adjusted the commaaccent as Dave suggested. The older version was built from a comma without necessary compensations. It is now scaled down to fit with the overall weight(color).


In a case of a modular typeface like Jura I tried to go with as few accent variants as possible. However some custom accents were built for this set: narrow macron and tilde, wider uppercase alternates for circumflex, and its derivatives. 

The narrow tilde is used for itilde, and also for Vietnamese circumflex+tilde combinations. The latter case requires both accent to match in widths.



New drawn glyphs were added to both masters. For complex design decisions(like accents) my strategy is to work on both masters simultaneously. 
This helps testing and unifying the design concept from the outset, and eliminates redundant reworking of the first master to accommodate changes in a new master. 






 Here are the Vietnamese glyphs:


Completed glyphs in Light:



Remaining glyphs in GF Latin Plus:








Daniel Johnson

unread,
Jul 22, 2016, 10:48:58 AM7/22/16
to Google Fonts Discussions
I notice that the bottom of the bowl of the lowercase g is not horizontal where it meets the stem, unlike the letters p, q, d, b. I'm guessing this is a design decision rather than an oversight?

Alexei Vanyashin

unread,
Jul 22, 2016, 11:35:39 AM7/22/16
to Google Fonts Discussions
On Friday, July 22, 2016 at 10:48:58 AM UTC-4, Daniel Johnson wrote:
I notice that the bottom of the bowl of the lowercase g is not horizontal where it meets the stem, unlike the letters p, q, d, b. I'm guessing this is a design decision rather than an oversight?

Daniel, 

> unlike the letters p, q, d, b. 
Actually /b isn't horizontal, and /g is close to /d, but not identical. So there are 3 different design solutions which ideally need to be unified in accord with the Eurostile vein.  

I tried to systematise and unify this. Lowercase /g has an upward nod, which I took as a suggestion 
to tie it closer with b, u, y. 

Glyphs p, q, d follow a different convention, this is kept. 




Here is a diagram of curve treatment for this letter group. The red curves are needed for adding extra white to the conjunction with the stem (i.e. compensation for an inktrap). 





 

Daniel Johnson

unread,
Jul 22, 2016, 1:39:54 PM7/22/16
to Google Fonts Discussions
Thanks for the explanation!

Alexei Vanyashin

unread,
Jul 22, 2016, 11:10:59 PM7/22/16
to Google Fonts Discussions
¶ #6. Sprint 1, week 4, July 22, 2016 

Here are some of the glyphs I worked on today:


I also researched a possible alternate /g, which is closer to the original version. 



Here is my overall progress. I will soon complete the GF Latin Plus,

and start working on the Semi-Bold master. 





Along the way I found that some glyphs should be added to GF Latin Plus to enable auto-generation in Glyphs App. 


Among others, this list includes: Dz, dz, DZ to generate DŽ,Dž,dž. These combining glyphs: strokeshortcomb, strokelongcomb, slashshortcomb produce Ð, ł, ø, 


I also edited my local copy of GlyphsData.xml to build composite glyphs quicker. Example: Eng is decomposed as N + g. After completion I will share my finalised GlyphsData file. 


For some glyphs I don't include decomposition rules, but instead use shorthand commands for creating them, like


IJ+acutecomb.case=IJacute ij+acutecomb=ijacute 


This creates the Dutch localized variant for IJ acute from the IJ.



Questions: Is the deprecated ʼn (napostrophe) required in our encoding for legacy compatibility?

I couldn't find a glyph that uses 'commaaccentcomb.alt' in GF Latin Plus. Perhaps we should remove it. 



Daniel Johnson

unread,
Jul 23, 2016, 1:31:03 PM7/23/16
to Google Fonts Discussions
I would imagine that "kra" should also be eligible for removal, since its only use was old Greenlandic orthography. I always just copied-by-reference from the Cyrillic к.

Alexei Vanyashin

unread,
Jul 25, 2016, 11:12:31 PM7/25/16
to Google Fonts Discussions
On Saturday, July 23, 2016 at 1:31:03 PM UTC-4, Daniel Johnson wrote:
I would imagine that "kra" should also be eligible for removal, since its only use was old Greenlandic orthography.

Daniel, 
We were considering the /kra question during our meetings, and decided to keep it for pre-1973 orthography support. I have seen many requests to support pre-1945 Bulgarian orthography, so I can imagine people may still be using kra as well. 
 
I always just copied-by-reference from the Cyrillic к.

My method is chopping the bar from k, this may require some rebalancing. The Cyrillic ka in certain design cases may have a different form (i.e. in a historical didone face).

¶ #6. Sprint 1, week 5, July 25, 2016  

Today I completed the full GF Latin Plus set for Light. Here are the glyphs I worked on:


Here is the full set:


Comparing to the original Latin set, some glyphs were added:


Jura Legacy:


Jura Development:


Now it's time to do some tests. 



Jura Legacy:


Jura Development:



Jura Legacy:



Jura Development:



I am hoping my goal of retaining the original character of Jura, and improving its rhythm and legibility is achieved. The new result is much more lengthy due to increased spacing and reworked glyph proportions. 


Tomorrow I will do more tests, and continue working on the Semi-Bold master towards completing GF Latin Plus.


-a









Nhung Nguyen

unread,
Jul 26, 2016, 3:56:11 AM7/26/16
to Google Fonts Discussions
Excellent job Alexei, I'm impressed! You did a really good job at Vietnamese. At first I don't really like the typeface, but now I'm in love with it :)

Although I have a suggestion: Is it your intention to make the horn a little bit bolder? If not I think its weight should be keep the same as stem weight, or it might look weird at display size.

I'm looking forward to the reworked version to be completed!

Khaled Hosny

unread,
Jul 26, 2016, 9:35:07 AM7/26/16
to googlefon...@googlegroups.com
On Mon, Jul 25, 2016 at 08:12:31PM -0700, Alexei Vanyashin wrote:
> Here is the full set:
>
> <https://lh3.googleusercontent.com/-WhCXekR4TUs/V5bRRV1isVI/AAAAAAAAQSQ/DJYLdbzI9AQ3PPDc_Rego18s5zenlODiQCLcB/s1600/Jura%2BLight.png>

Įį do not look right.

Regards,
Khaled

Alexei Vanyashin

unread,
Jul 26, 2016, 4:57:30 PM7/26/16
to Google Fonts Discussions, khale...@eglug.org
Excellent job Alexei, I'm impressed! You did a really good job at Vietnamese. At first I don't really like the typeface, but now I'm in love with it :)
Although I have a suggestion: Is it your intention to make the horn a little bit bolder?

Nhung, thank you for the compliment!
I kept the drawing of the horn constrained to the squarish modularity, and used an optical trick to make it flick more. 
 
If not I think its weight should be keep the same as stem weight, or it might look weird at display size.

This is very useful information, thank you. I have reworked it as you suggested. 
 
I'm looking forward to the reworked version to be completed!

Here is the updated version. Does this look right?







Įį do not look right.

Khaled, thank you for spotting this, 

I reworked all ogoneks. This involved splitting into two alternate designs. 

 


Alexei Vanyashin

unread,
Jul 26, 2016, 6:53:05 PM7/26/16
to Google Fonts Discussions
¶ #6. Sprint 1, week 5, July 26, 2016  

Today I have been working on Uppercase in the SemiBold master. I discovered a better method for generating this master: with the remove overlap option off.

Step 1. Rework the monoline master for light according to the dimensions, and guidelines of SemiBold.


Step 2. Apply Noodler plugin with the remove overlap option unchecked.


Step 3.  Remove the unnecessary circles that this filter generates. 


This produces a much cleaner result, and eliminates the need for a post-filter cleanup, as in my previous method. Today I have completed basic uppercase glyphs, and compared their metrics with the Light master using the Autopsy plugin. 



Full PDF here.



Finally, here are some tests comparing the two masters:

Nhung Nguyen

unread,
Jul 26, 2016, 10:44:33 PM7/26/16
to Google Fonts Discussions
I think it looks good now :)

Dave Crossland

unread,
Jul 26, 2016, 11:45:30 PM7/26/16
to googlefonts-discuss
Awesome work Alexei!

Alexei Vanyashin

unread,
Jul 27, 2016, 7:49:51 PM7/27/16
to Google Fonts Discussions, da...@lab6.com
Thanks Dave, and Nhung!

¶ #6. Sprint 1, week 5, July 27, 2016

I am very glad that Daniel has been following along throughout the whole process, and is happy about the progress.




Today I completed most of SemiBold. Some few currency symbols will serve as a desert for tomorrow.



Since the masters are compatible, I generated an in-between Regular. Here it is:


Light Master




Regular, Interpolation



SemiBold Master



I find that generating another instance between these two masters would only be useful for backwards compatibility reasons. Otherwise the difference in weights would be so insignificant, that I doubt it is viable idea. 


More posters of Bold




Today was the first time I used Glyph's `fix compatibility` function. I couldn't figure out how it works intuitively, so I looked it up in the handbook. It's works like a Rubik's cube: one must drag the images until they properly align. 



Before:


After: Jackpot!


Finally, I unveiled a hidden gem inside the noodler plugin: it draws kittens on top of accents. So, I filed an issue for this.



The prerequisites for this magic to happen is a combining breve of this kind or similar.



It's author, @mekkablue claims responsibility for this carefully planted eastern egg.



I had an urge to add kittens and and other rare pokemons to the whole Jura charset. But on a second thought, this probably signals it's time to sign off for today. 

-a 

Alexei Vanyashin

unread,
Jul 29, 2016, 12:52:38 AM7/29/16
to Google Fonts Discussions
¶ Sprint 1, week 5, July 28, 2016

1. Thursday:

Finished work on Semi-Bold (drawing part).
Assigned kerning classes, and made a script for automating it. 

Put together a promo PDF.





Updated Jura webspecimen. It showcases four existing styles, plus one extrapolated Bold style. 





Some OT features work in web, some not. Need to recheck on Friday. 





2. Friday:
Kern the two masters, re-generate the styles. Fix any upcoming bugs(already spotted some in interpolation). Copy non-Latin glyphs from legacy to new version. Ship.  

I will get back to adjust the Cyrillic in Jura later.

-a



 

Alexei Vanyashin

unread,
Jul 29, 2016, 11:30:53 PM7/29/16
to Google Fonts Discussions
Sprint 1, week 5, July 29, 2016

Today I was doing bug fixing and nitpicking. Oftentimes in my workflow these procedures were done simultaneously with kerning. However it isn't a sane idea to switch back and forth between kerning and drawing. So the plan today was to invest more time in spacing, and then kern the font without going back. Interpolation problems in some glyphs were resolved. The issues I mentioned yesterday are all working properly now:


The font inspector script was a great helper for refining metrics.



I hope this time investment will pay off, and make kerning a lesser hassle. 


I didn't manage to complete kerning, so I will do it tomorrow. 

-a


Alexei Vanyashin

unread,
Jul 31, 2016, 12:23:07 AM7/31/16
to Google Fonts Discussions
I have completed kerning, mastered, exported and ran fontbakery checks on theTTFs with the following results. Also see attached file. All TTFs pass ot-sanitiser. 

However after renaming fontbakery .fix files to .tts they no longer pass ot-sanitiser, and generate this: WARNING: name: name records are not sorted.

The results of my work can be checked on Jura's minisite, and in the project PDF.

Jura fully supports the GF Latin Plus range. An additional Bold weight was added. Greek, Cyrillic, and Kayah Li glyphs were not touched, and are kept from the legacy version for compatibility. Cyrillic will be addressed later in the coming weeks. 

...the end of part one


Jura-fb-output.txt
Reply all
Reply to author
Forward
0 new messages