The Mid-Term Report.

Proposal and the progress till midterm :

May 27 – June 5
: I am going to interact with the developers about the better choices (if any ).
What was done–> Upon discussion and some research I found that the fontforge would be the most feasible to build upon as it provides with a python scripting extension, with easy to understand library. It could also be downloaded separately in debian and redhat linux distros.
It was also decided that to testing the quality of the GPOS/GSUB tables of the fonts it would be better to focus on the aesthetics of the font alone. As the font rendering engines like HarfBuzz, already do those testing.

June 6 – June 9
:Get to understand the codebase of Font Forge scripting extension, make some scripts to get a feel as to how it works.

What was done–> I tried out the various functions of the the 5-6 main classes, to know what functions they performed.
June 10 – June 12: Read the documentation for GSUB and GPOS tables, make scripts for modifying the fonts using them and have a better understanding for how it works.

What was done–> I read the GPOS and GSUB methods and tried to understand what they actually mean, and ensured whether, they affect the beauty of the font. I concluded that since they are mere, methods for constructs, I could not comment on how the font would look by merely looking at these tables alone.

June 13 – June 17Research on the sets of pangrams for the scripts.

What was done–> Upon researching I got these basic panagrams,!msg/chithakar/Nkec6GZEZ1k/-rjRz6lJA4QJ, although these contain only the basic chracters and constructs.

 June 18 – June 24 :I would be making the first protoype of the script, including the methods for, basic properties like weight, height etc. of the script in my class .

What was done–> I thought upon what classes would be used to make the testing application. I tried and tested a lot of examples and analysed the shortcomings and benefits of each before finalising my choice.
June 24 – July 8: I would be making the first protoype of the script, including the methods for, GPOS features of the script in my class.

What was done–> As stated earlier the GPOS methods were not of much help as far as extracting the data for making comparision went, so the only brute-force technique was bitmap comparision. So, i implemented my basic methods of the class responsible for bitmap comparision, using the PIL library.

July 8 – July 14 : Testing the class with the basic methods throroughly to avoid any crashes or bugs. See if the basic model of the script works as intended.

What was done–> Upon the advice of my mentor, I made a separate branch which used abstract replica of font or mockfont objects to perform the testing. The reasons for my choice was to make the user burden free of downloading the standard fonts as well,by using mockfonts I would be using only the set of standard characteristics, and the typeaces, and ignore, the GPOS/GUSB methods necessary for making the constructs, but unnecessary for doing the actual comparision.

Also I think, that by using mockfonts, I would be violating lesser copyrights, so it could enable my tool to test fonts against fonts with restrictive licensing.
 July 15 – August 2: Addition of the methods to check consistency of basic GSUB methods for Mandatory Presentation Forms by use of pangrams pertaining to the fonts.

What is being done–> Research is on for better panagrams, and as far as method goes, nothing much is to be done, as I again would be using bitmap comparision for achieving the same. Also I have decided to use the utlity hb-view provided with the harfbuzz font rendering engine, for the pupose of being able to compare standard docs and panagrams, which would cover the advanced discretionary tests. I have already made some progress with it, currently I am working on make it testable on travis.

mid-term deliverables
deliverables: The script would be now capable of handling GPOS features and GSUB features for Mandatory Presentation forms.

As of now in the present state the application meets the demands for the midterm deliverables.
Also my progress can be tracked on my blog and github repo, though there might be some inconsistency in the time at which it was done :P, as there were some unavoidable circumstances, so I shuffled the schedule a bit.

My github repo, .


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s