[Project-ideas] GSoC idea for improving the aesthetic quality of Indian Scripts

Mayank Jha mayank25080562 at gmail.com
Wed Apr 24 08:44:21 PDT 2013


Posted it on the melange!


On Wed, Apr 24, 2013 at 1:53 PM, Mayank Jha <mayank25080562 at gmail.com>wrote:

> Final GSOC proposal draft.
>
> *Name:* Mayank Jha
>
>
>  *Email Address :* *mayank25080562 at gmail.com*
>
>
>  *Project Title: * To make a testing application for assessing the
> quality of Open Type fonts for Indic scripts.
>
>
>  *Synopsis: *
>
> I am personally interested in doing this project because, I have been
> using applications like MS Word, Photoshop, GIMP etc, throughout and
> require varied fonts with nice looks and appearance.
>
> However unfortunately whenever it came to Hindi my choices got narrowed to
> 3 or 4 fonts only as compared to at least 40-50 choices for the Roman
> script. Thus, making this tool would allow font developers to contribute
> more good quality Open Type fonts for Indic script. I am also willing to
> widen the scope so that the same could be done for fonts of other languages
> scripts .
>
>
>
>  *How is your Project going to benefit language Computing ?: *
>
> This project is going to benefit language computing by increasing the
> number of OpenType fonts available, in turn increasing its usage in
> mainstream.
>
>
>  *Any previous experience with GSoC or similar program ?*
>
> None. This would be my first experience with GSoC.
>
>
>  *Why would you like to do a project with us?*
>
> Trying to increase the number of Hindi fonts in mainstream is what I have
> wanted to do since long. I think this is an opportunity for me to do this,
> and hence I am eager to do this project with you.
>
>
>  *How many hours per week can you commit to the project?*
>
> I can devote 40 hours per week .
>
>
>  *Do you have other obligations between May and August ? Please note that
> we expect the Summer of Code to be a full time, 40 hour a week commitment*
>
> I have no other obligations during this summer and I would be able to
> commit the said amount of hours to the project.
>
>
>  *Are you comfortable with virtual communication using English as the
> primary language?*
>
> Yes.
>
>
>
>
>  *Implementation details of the project:*
>
>
>
>  I will be implementing the testing support for the Devanagri script.
> There exists a current application called fontQA but that runs only inside
> FontLabs, which is not freely available, therefore it is very difficult to
> try, modify and test it.
>
> Therefore I plan to make a script to start with based on the Font Forge
> framework. The idea of the script, would be extract the data from the font
> in the following fashion:
>
>
>  We would be analysing the font's shaping engine algorithm, as to how it
> actually parses the input from the user into glyphs by using the GPOS &
> GSUB methods, to achieve this we can use a standard text similar to “A
> quick brown fox jumps over the lazy dog.” which uses the characteristic
> properties unique to the type of font.
>
> Standard properties of a font can't be altered by the developer, while the
> dynamic properties are those which can be modified at developer's will.
>
>
>  I think the best way to test fonts based on these properties in the
> script would be from *classes*, one for standard properties and the other
> for dynamic properties, with appropriate methods built inside to check for
> the properties and their values.
>
>
>  Retrieving static properties would be easy, since most of them would be
> numerical values like font weight, point size etc.
>
> To check for the dynamic properties, one needs to look at when and how the
> actual shaping of the glyph takes place after the glyph buffer for the text
> has been created.
>
>
>  When a rendering engine handles a chunk of text (usually a syllable),
> the processing is divided into a set of predefined “features”, which are
> “applied” one after the other in a standardized way. What differentiates
> one font from the other in the manner in which these “features” are
> applied. We could implement this by making methods inside the class to
> check for these. How one must go about making these methods depends largely
> on the rendering engine used (I would be using Pango for my case) and the
> parameters which exhibit each instance of applying these features.
>
>
>  These “features” for Devanagri script are well described for the
> Uniscribe, W3C specifications!
>
>
>  The points kept in mind would be the OpenType specifications for the
> script, and will have scope for addition. These are again specified, at the
> unicode standards.
>
>
>
>
>
>
>
>  *Phases/milestones with dates:*
>
>
>  *May 27 - June 5*: I am going to interact with the developers about the
> better choices (if any ).
>
>
>  *June 5 – June 10 :* Get to understand the codebase of Font Forge
> scripting extension, make some scripts to get a feel as to how it works.
>
>
>  *June 10 – June 17: *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.
>
>
>  *June 18 – June 24 :* I would be making the first protoype of the
> script, including the methods for, basic standard properties of the script
> in my class .
>
>
>  *June 25 – July 7 :* I would be making the first protoype of the script,
> including the methods for, basic standard properties of the script in my
> class .
>
>
>  *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.
>
>
>  *July 15 – August 1 : *Research on the rule-sets to be used for better
> analysis of the fonts.
>
>
>  *July 15 – August 5:*Addition of the methods based on the rule-sets for
> testing the dynamic methods pertaining to the fonts.
>
>
>  *August 6 – August 15 *: * *Thorough testing of the script. Check
> whether the script can differentiate between any two fonts of the same
> script and resolve any discrepancy if any between the actual and expected
> results.
>
>
>  *August 15 – September 1 :* Documenting of the entire code, to enable
> other developers extend this by class inheritance for fonts of other
> scripts. Making the code look neater and ordered to enhance readability of
> the code.
>
>
>  September 2 – September 22 : Backup time for unexpected and unforeseen
> delays.
>
>
>  *September 23: *Pencils down
>
>
>  *September 23 – October 8 [after GSOC]: *The script will be sent to the
> Font Forge community and reviewed. Shortcomings if any would be taken care
> of. Efforts will be made for people with knowledge of other Indic scripts
> to contribute to it and include more testing rules and expand it.
>
>
>  *About Me:*
>
> I am Mayank Jha, a 2nd year undergraduate student pursuing Computer
> Science and Engineering at National Institute of Technology, Durgapur,
> India. I am a FOSS enthusiast, and contributor.
>
> I was introduced to the concept of Open Source an year ago by the GLUG
> (GNU/Linux Users' Group) of our college and since then Ive tried to
> actively associate with the same.
>
> My contributions to the open source world include making a plugin or geany
> to submit codes to SPOJ from the editor itself.
>
>
>  https://github.com/mjnovice/geany-plugins/tree/master/codesubmit
>
>
>
>  Ive also made a game using the pygame library called fierytower.
>
> http://www.pygame.org/project-fierytower-2496-.html
>
>
>  Apart from that Ive sent patches to rekonq, konversation, kate,
> plasma-desktop and trojita.
>
> I am skilled in C, C++, Qt, Python and HTML. I have the experience of
> building font forge from source and tried modifying a devanagri script font
> using it.
>
> I am hardworking and passionate about what I do,and am confident of
> devoting 40 hrs a week to my work. To avoid delays Ive kept some backup
> time. Even after the GSOC programme I would be closely associated with my
> testing script and answer to the queries of other developers so that they
> too can contribute in the languages they know well.
>
>
>  Coding, Youtubing, Eating, Sleeping, Movies, MJ music, - that pretty
> much sums up my life.
>
>
> Please point out any technical errors if any .
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ankur.org.in/pipermail/project-ideas-ankur.org.in/attachments/20130424/4bce1c6f/attachment-0003.htm>


More information about the Project-ideas mailing list