[Student-projects] Web interface for FontCompare and Harfbuzz rendering tests.

Mayank Jha mayank25080562 at gmail.com
Tue Mar 18 06:07:49 PDT 2014


Have updated my proposal, though it lacks exact details, as that would
simply imply copying stuff from the internet and pasting it. Have discussed
with Santhosh, waiting for his feedback.

 '''Name:''' Mayank Jha
 '''IRC Nicks:''' mjnovice,mapyth on freenode
 '''Email:''' mayank25080562 at gmail.com
 '''Blog:''' http://mjnovice.wordpress.com/


 '''Why do you want to work with the Swathanthra Malayalam Computing?'''
I wish to work with SMC because it is an organization which helps create
language tools, and helps in internationalization of content in Indian
languages, which is one of my central aims.

 '''Do you have any past involvement with the Swathanthra Malayalam
Computing or another open source project as a contributor?'''
I have developed FontCompare a font aesthetics analyzer, for Indic scripts.
Apart from that I have been a regular open source contributor.

 '''Did you participate with the past GSoC programs, if so which years,
which organizations?'''
I participated in GSoC 2013, developing FontCompare with Ankur India.

 '''Do you have other obligations between May and August ?'''
I have no commitments whatsoever between May and July. Once my college
reopens I would still be able to contribute 40 hours a week.

 '''Will you continue contributing/ supporting the Swathanthra Malayalam
Computing after the GSoC 2014 program, if yes, which area(s), you are
interested in?'''
I will certainly want to continue working with SMC after GSoC. I would like
to be a part of Fonts Improvement and Text Rendering in general.

 '''Why should we choose you over other applicants?'''
I am passionate about whatever I do. I strongly believe in the principles
of FOSS, and love contributing to the Open Source world, since I was
introduced to it. I am very keen about fonts since I believe it is the very
window or medium by which we read or infact do anything. I also possess
sound technical skills, required for the project.




 '''Short Description:'''
FontCompare was a tool developed for aesthetically, analysing the fonts of
Indic scripts primarily, and give them scores. However it is very basic and
naive in its current phase taking into the standard fonts, extracting their
standard properties and then comparing with them. I plan to add in advanced
features such as print preview of the text, compatibility with the various
glyph sets, such as the AGL etc. It also currently lacks support for other
Indian languages, hence it is planned to include languages like Malayalam,
Telugu, Tamil and Bengali with help from the people having the language
knowledge.

 '''Synopsis:'''
FontCompare currently provides very basic features of giving aesthetic
analysis on fonts. It is aimed to add in more advanced tests, such as
making the GPOS/GSUB testing more robust, adding multilingual support, for
Bengali, Malayalam, Telugu and Tamil. Also we would have a rendering
viewport where font devs can type and test the rendering results on the
fly, upto 500 characters.

 '''Implementation details:'''
To add in the GPOS/GSUB testing we would making a list of those features as
shown below, and add in to a sqlite database, then
Collecting of meta information would be done primarily from fontbook
written and compiled by santhosh thottingal, and by interacting with the
font developers, of the said languages. Compatibility with the various
platforms of the developing font, can be done by collecting the relevant
data for each glyph set, say the Adobe Glyph List, Windows Glyph Set etc.

For making the rendering viewport we can use a QPainter/QImage widget for
output, KTextEditor for input, and hb-view for rendering the fonts.
Language specific tests would be addd for Bengali, Malayalam, Telugu,
Tamil. using the data available from fontbook by Santhosh.
Overall the project aims at making the FontCompare feature complete and be
a really good tool in the hands of font developers, mkaing the task of
doing font forging a less daunting one, so that we have greater number of
Indic fonts gradually.


 '''Phases/milestones with dates:'''

------------:Community Bonding Period:----------

21 April - 28 April :  I am going to re-discuss my implementation plans
with the font developers community, incorporating in the suggestions
recieved, into the FontCompare application (if any).

29 April - May 11 : Researching the possibility of adding in more advanced
tests, to improve the font aesthetics analysis, and font compatibility
across varying platforms.

May 07 - May 14 : Collecting the meta-information about the glyphs and
demarcating them categorically into vowels, consonants, marks etc. for
languages, like Malayalam, Telugu etc., and also include GPOS/GSUB
completeness for a font.

May 15 - May 18 : Discuss and get an early feedback on the UI, of the
WYSIWIG font display unit.

------------:Coding Period Begins:-------------

May 19 - May 28 : Make changes to the UI and implement the basic, text
editor using QPainter for output and KTextEditor for the input, wherein the
user would type in the input, and the viewport would render the font.

May 29 - June 4 : Adding in support to judge the overall GSUB/GPOS
completeness, without relying on the fontforge plugin, making it more real,
than vague.

June 5 - June 19 : Converting the meta information about Devanagari, and
Malyalam, into quantifiable measures and adding them to the set of
standards. Adding support for CDAC fonts, with atleast 50+ fonts for each
language.

June 20 - June 23 : Testing for consistency and efficiency of the models
used. Check for consistency in coding style/conventions. Try and deploy to
test the interface developed so far.

June 24 - June 27 : Discussing with the mentors about the current
development, and getting their reviews/comments.

------------Mid term deliverables------------------
FontCompare would have GPOS/GSUB completeness in a more complete way,and
have support for Malayalam as well, with an attached rendering viewport.

June 28 - July 12 : Add, in support for making fontcompare a command line
tool.

July 13 - July 29 : Converting the meta information about Telugu, Tamil,
and Bengali into quantifiable measures and adding them to the set of
standards.

July 30 - August 1 : Getting reviews/feedbacks from font developer
community.

Deploying it and making any changes if required taking into account
performance and consistency.

August 2 - August 5 : Documenting the code. Testing the code for any
nitpicks if required.

August 5 - August 22 : Backup time for unforeseen delays.

------------------End term deliverables-------------------
FontCompare, with multilingual support and a rendering viewport with
multilingual support.

Post GSoC ----------> Maintain the fontforge plugin, and test out the tool
with font developers, taking in their feedback.

 '''About Me:'''
I am a FOSS enthusiast and a rabid open source contributor. I am currently
a 3rd yr undergraduate pursuing Computer Science at NIT, Durgapur, India .
I believe in the core principle of FOSS. Since I was introduced to the
warm, loving and inspiring world of Open Source I am in love with it, as
they offer great opportunity to both learn and teach.
I was a student for the Google Summer of Code 2013, with Ankur India and
developed a font-metric tool for Indic fonts which could differentiate
fonts on the basis of their aesthetic quality and allow font developers to
contribute more and better fonts.
I have regularly contributed patches to applications like Konversation,
Kate, Telepathy, Trojita, Rekonq. I also made a plugin for the Geany IDE,
which would allow people to submit their code online at SPOJ through the
editor.
I have also explored the Telepathy source code, and submitted few patches
too on the same.
I am skilled in C/C++, Qt, Python, HTML, JAVA, CSS and PHP.
I am very passionate and done to the task I take under, and I can devote 40
hours a week, to my work.
After GSoC I would continue and maintain my code and be a part of the font
developer community, helping and incorporating in new suggestions to my
tool.
Apart from remaining stuck to my laptop, I love to eat chocolates, listen
to Michael Jackson, sleeping and eating.

 '''Have you communicated with a potential mentor? If so, who?'''
I have communicated with Vasudev, and he was interested in mentoring this
project, alongwith Santhosh.
-- 
Mayank Jha



On Mon, Mar 17, 2014 at 10:09 PM, Mayank Jha <mayank25080562 at gmail.com>wrote:

> Have used the functions defined here, http://fontforge.org/python.html
>
>
> On Mon, Mar 17, 2014 at 10:06 PM, Mayank Jha <mayank25080562 at gmail.com>wrote:
>
>> Currently it uses good fonts as standards and compare them, with the font
>> being developed using the methods provided by the fontforge python
>> extension. The GPOS/GSUB is a bit vague at the moment, relying heavily on
>> the fontforge scripting extension, however other features like bearing,
>> stroke width, kerning, underline position, bold/itlaics weight is pretty
>> much well defined, using the methods provided by the scripting extension
>> provided by the fontforge application. As Santhosh told, that the web
>> interface is already built, so I am now focussing on improving the
>> fontCompare part, and the methods that it uses for achieving the same.
>>
>>
>> On Mon, Mar 17, 2014 at 9:58 PM, Rajeesh K Nambiar <
>> rajeeshknambiar at gmail.com> wrote:
>>
>>> On Mon, Mar 17, 2014 at 3:03 PM, Mayank Jha <mayank25080562 at gmail.com>
>>> wrote:
>>> > Standard set of parameters, refer to, Glyph Consistency, GPOS/GSUB
>>> > completeness, Appropriate bearing, Kerning , Weight in Bold, Italic and
>>> > Underline, Sentence similarity etc. These set of standards are
>>> currently
>>> > nothing but a set of paramters extracted from well known beautiful
>>> font, say
>>> > Lohit.ttf for Devanagri script. The exact details are given here.
>>>
>>> Read the document, but it lacks details. How is GPOS/GSUB completeness
>>> measured? Same goes with Bearing, Kerning also. Can you share more
>>> details?
>>>
>>> >
>>> > The need for a web interface is inevitable because a standalone testing
>>> > tool, does not give you real user feedbacks. This tool however would
>>> > integrate the user feedback as a metadata in the database which would
>>> be
>>> > used as information to test upon the aesthetics since it is a matter
>>> of both
>>> > subjective (user feedback) and objective (set of standards) concern.
>>> >
>>> > Yes Currently the tool, supports only Devanagari script, which I know
>>> very
>>> > well. Adding support for other scripts requires consultation with font
>>> > experts of other languages, so I could not add those.
>>> >
>>> > This web tool aims at being two-way medium between font users and font
>>> > developers unlike anything we have currently.
>>> >
>>> > However I did not get what you tried to say when you said "values
>>> provided
>>> > by the tool is trivial and obvious.".
>>> >
>>> > Cheers!
>>> >
>>> >
>>> > On Mon, Mar 17, 2014 at 6:59 PM, Santhosh Thottingal
>>> > <santhosh.thottingal at gmail.com> wrote:
>>> >>
>>> >> Hi Mayank,
>>> >>
>>> >>
>>> >>> Short Description:
>>> >>> I am wanting to make a web interface for a font aesthetics analyzer
>>> for
>>> >>> Indic scripts, FontCompare. FontCompare is a plugin for fontforge,
>>> which
>>> >>> provides assistance to the font developers in assessing the
>>> aesthetics of a
>>> >>> font, based on the standard set of parameters and their values.
>>> >>
>>> >>
>>> >> Could you please give more details about "standard set of
>>> parameters?".
>>> >> How it is collected? How much confidence we can have on those
>>> parameters?
>>> >> What is the script coverage?
>>> >>
>>> >>>
>>> >>> It uses the python scripting extension of fontforge. However it
>>> currently
>>> >>> it has very basic features implemented. I plan to add in advanced
>>> tests, and
>>> >>> also building a web interface for the same.
>>> >>
>>> >>
>>> >> Why you need a web interface if it works as fontforge plugin and also
>>> as
>>> >> standalone python application?
>>> >> If it is available as fontforge plugin, that is the best way to use
>>> it -
>>> >> close to the font developer tool.
>>> >>
>>> >>>
>>> >>> In general it would be a real help, and it would eliminate the
>>> dearth of
>>> >>> good quality open type fonts for Indic scripts, which was the main
>>> motive of
>>> >>> behind FontCompare. By making a web interface this would indirectly
>>> propel
>>> >>> the creation, of good quality stylish fonts for Indic scripts, which
>>> is
>>> >>> limited to 2-3 per language as of now!
>>> >>
>>> >>
>>> >> Depends on the answer to my first question :)
>>> >> I tried the application with multiple fonts and I get 0 as the score
>>> for
>>> >> Meera font. I Imagine Malayalam is not supported. I tried Lohit
>>> Bengali and
>>> >> some other fonts too. I get the following error
>>> >>
>>> >>  Traceback (most recent call last):
>>> >>   File "fontcompare", line 72, in BeginTest
>>> >>     self.TestFromFont()
>>> >>   File "fontcompare", line 174, in TestFromFont
>>> >>     score = gc.glyph_round_consistency(fontA, self.GetScript(),100)
>>> >>   File "/tmp/FontCompare/fc/GlyphConsistency.py", line 109, in
>>> >> glyph_round_consistency
>>> >>     return (set_round_score/float(total))*10
>>> >> ZeroDivisionError: float division by zero
>>> >>
>>> >> and
>>> >>
>>> >> Traceback (most recent call last):
>>> >>   File "fontcompare", line 72, in BeginTest
>>> >>     self.TestFromFont()
>>> >>   File "fontcompare", line 214, in TestFromFont
>>> >>     self.highresScoreBar.setValue(round(score/10))
>>> >> TypeError: unsupported operand type(s) for /: 'NoneType' and 'int'
>>> >>
>>> >>>
>>> >>> Synopsis:
>>> >>> The web interface would be having two main parts, one is the User
>>> >>> feedback area, and the other being the Font Developers testing area.
>>> The
>>> >>> interface would thus serve dual purpose, of conveying the feedback
>>> of the
>>> >>> font users to the font devs, and a testing platform for the font
>>> developers
>>> >>> to test out their fonts based on the set of standard tests performed
>>> by the
>>> >>> FontCompare application based on set of standards.
>>> >>
>>> >>
>>> >> So is this is going to be a web page where users can download, try
>>> some
>>> >> sample text with varying size, bold, italic variants etc? Something
>>> like
>>> >> google webfonts interface?
>>> >>
>>> >> Whether font developers prefer a web application for measuring the
>>> >> aesthetic parameters again depends on my answer to first question.
>>>  Talking
>>> >> about aesthetic parameters, being it a mix of subjective and
>>> measurable
>>> >> variables,  I would say the parameters are hardly match my
>>> expectations
>>> >> about a language I know relatively well - Malayalam. If a user is font
>>> >> designer with basic design knowledge, the values provided by the tool
>>> is
>>> >> trivial and obvious. The choice of some measures - like
>>> LBearing/RBearing,
>>> >> ascent/descent rations etc are very crucial and it is an informed
>>> choice by
>>> >> font developers.
>>> >>
>>> >> (I am not discouraging you here, but I am trying to set the
>>> expectations
>>> >> right and if possible try to help you to improve your ideas further.)
>>> >>
>>> >>
>>> >>>
>>> >>>
>>> >>> Implementation Details:
>>> >>> I would be using Django as the web framework, for making the web
>>> >>> interface alongwith JS/jQuery/BootstrapCSS for styling purpose.
>>> >>>
>>> >>> User feedback region:
>>> >>> This would allow the user to test out new fonts of any language with
>>> his
>>> >>> custom text. Since this would be difficult to do realtime, so we
>>> have to
>>> >>> render the text in the said font on the server side and then push it
>>> on the
>>> >>> client, this can be easily done with any fontrendering tool.
>>> Preferably
>>> >>> harfbuzz,
>>> >>
>>> >>
>>> >> There are lot of websites that does this using CSS3 webfont
>>> technology.
>>> >> There is even a bookmarklet tool that allows you to drag a font to
>>> any site
>>> >> and see that site with that font.(
>>> http://somadesign.ca/projects/fontfriend/)
>>> >>
>>> >> Silpa project plans to provide a webfont interface to choose indic
>>> fonts
>>> >> based on similar user experience. The old silpa application had this
>>> >> interface.
>>> >>
>>> >> Thanks
>>> >> Santhosh
>>> >>
>>> >>
>>> >>
>>>
>>>
>>>
>>> --
>>> Cheers,
>>> Rajeesh
>>> _______________________________________________
>>> Student-projects mailing list
>>> Student-projects at lists.smc.org.in
>>> http://lists.smc.org.in/listinfo.cgi/student-projects-smc.org.in
>>>
>>
>>
>>
>> --
>> Mayank Jha
>> http://mjnovice.wordpress.com/
>>
>
>
>
> --
> Mayank Jha
> http://mjnovice.wordpress.com/
>



-- 
Mayank Jha
http://mjnovice.wordpress.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.smc.org.in/pipermail/student-projects-smc.org.in/attachments/20140318/060afba9/attachment.html>


More information about the Student-projects mailing list