Monday, 16 December 2013

The Way We Proceed With Malayalam ..

Well, with the successful releases for Lohit Gujarati & Lohit Devanagari, we have planned to move towards Malayalam . Since the news has been already announced regarding the development plan for Malayalam language, this post is specifically about the minute details that we had considered while starting & developing towards the way.

As we have achieved the basic goals for both Lohit Gujarati & Lohit-Devangari, which were set at the start of project,now we had set the improvement plan for malyalam as well, which involves the following things :
  • Following AGL. [1]
  • Supporting points provided in Unicode chapter 9 for Malayalam script.
  • Feature file separate for flexibility and reusability.
  • Complete cleanup of existing Open type tables
  • Supporting both "mlym" and "mlm2" open type specifications.
  • Thorough testing with Harfbuzz and Uniscribe (WinXp, W7 and W8).  
Present status of Project : 
Inspite of this basic goals ,I would like to depict the exact steps that we followed .

>>  The first task that we have started with Malayalam is to create test-file. This file is specifically for glyph-testing purpose & proper contextualization of glyph as well .
>>  The next thing We have moved to, is GSUB Cleanup so that we can start Malayalam development from very initial step while keeping an eye towards the basic moto.
>>  The Third task we have completed is about Glyph renaming. This step really helps for writing the GSUB rules, text rendering & glyph positioning sequence as well.
                 For this task i would like to elaborate, as we had previously discussed & concluded , its better to follow AGL. yet fontforge restricts us for lengthy glyph namings , for such glyphs , we had excluded the AGL specification rules.

>>  After the Glyph-renaming task, We had gone through Malayalam Typography specification, & started For OT rule writing task. Presently We are done with basic shaping forms (except for cjct feature)[2].

Upcoming Schedule :
  •  To finish up with the remaining Features in regards to OT rule writing. 
  •  Testing Activity

  you can have the updated project status & activities on Github [3] .so this the agenda that we had planned & following , thereby raising a step towards making the font more efficient, less redundant, & stable. Thanks.


Lohit Devanagari 2.93.0 release (lohit2 project)

After Lohit-Devangari 2.92.0 release, we are here with its next release. Thanks to all who gave feedback for our release. This release mainly focused for the fixes which makes Lohit more stable and usable.

 Fixes : 
  • Additions of 17 glyphs for U+093F (ि) and its variants (reph, anusvara).
  • Contextual chaining substitution to match additionally included matras
  • Fix for locl tables for Marathi and Nepali language.
  • Fix for self-intersecting glyph warning in number of shapes.
  • Testing across platform.

The rest of the minor fixes regarding the glyph contextualization, conjunct formation, ligature formation etc which were reported on github ,had efficiently resolved now . You can have a look over there [1].

 With this release , the updated lohit project page [2] is available for download.
 Installation tar ball link for Lohit is available at [3]. Your feedback is key asset for us so feel free to ask anything related Lohit-Devanagari issues [4]. 


Tuesday, 10 December 2013

Lohit Gujarati Beta Release

Hello all ... :) First of all, I wanted to thank all of the people who were actively involved in Lohit-gujarati testing. We had good response for the same .

Since its the time for beta release, i would like to mention the changes we dealt with. as far as Lohit-Gujarati alpha release was concerned, yet many changes were there that has to be resolved. For an example , we may consider the thing about matching the ivowel Matras with the character. Previously Lohit was working with the matras that was working properly with some of the glyphs. but for the others, Lohit needs to have inclusion of additional matras . So, in present release , we had particularly taken care for that. The next change is about the proper glyph contextualization for the conjuncts. The exact issues & changes can be viewed on GitHub [1].

To be more specific , The screenshots plays an important role for better understanding of the recent changes that were reflected (i.e changes regarding matras , conjucts contextualization etc).

 The screenshots on Linux platform with Notepad Application :

Before committing the changes :                  With Updated Font :     


All the images which are aligned to left are "before committing the changes", & those which are aligned to right are with "updated font".

Apart from this, We had tested the updated Lohit-Gujarati on  W8,  Win xp & W7 as well. The screenshot for the Glyph matras properly working on W8 platform :
The screenshot depicts the glyph rendering comparison with font shruti & Lohit-Gujarati .

So Gujarati is now updated with proper glyph rendering. yet any issues are there,  that you come across, just create new issue at [2], those are surely answered on GitHub . You can have the Lohit-Gujarati fontfile from [3].


Tuesday, 19 November 2013

Steps To Test Lohit Gujarati

Hi all , in regard to the blog previously written [1], many of people came to know that lohit gujarati testing activity. As we have reached to alpha release, i would like to note the steps for testing of gujarati in more details :

Installing fonts:

>> Fedora or other linux distro

1. Using graphics user interface
- open ttf using gnome-font-viewer or kfontview
- click on install fonts

2. Using terminal
- copy font to /~.local/share/fonts
- run $fc-cache
- open gedit, it should be listed now

>> Windows
1. Nicely documented on

One can have more details regarding the same on [2].

Steps to test 'test-gujarati' file :

  we had created test-gujarati file thereby covering all of the glyph in fontforge application & the glyphs that we tested additionally.

Here are the steps to test :

- Download test-gujarati file [3]
- Open this file with gedit or any other text editor
- Test to see the proper contextualization

You can test by copying all the glyphs from this file & to paste them on any other editor .

Your testing contribution means a lot for this project . You can have your feedback & issues as well, if any , on github [4].  The screenshots will be much more helpful for testing & fixing for issues as well .


Tuesday, 12 November 2013

Lohit Devanagari Test File Screenshot on Windows XP !!!

TestFile Screenshots :


Lohit 2 Devanagari Beta is out already[1]. This is screenshot during testing.

Testing Environment :
Windows 8, Application notepad
Uniscribe version number : 1.420.2600.2180
Source file:


Monday, 11 November 2013

Lohit Devanagari Test File Screenshot on Windows 8!!

TestFile Screenshots :

Lohit 2 Devanagari Beta is out already[1]. This is screenshot during testing.

Testing Environment :
Windows 8, Application notepad
Uniscribe version number : 6.2.9200.16384
Source file:


Thursday, 7 November 2013

South Indian Script - Kannada

Hi , as this is the next script in the series for south Asian scripts, it follows the same agenda as that of Devanagari . The Kannada script shares many features common to other Indic scripts but of course since this script is used to write the Kannada language, the scripts has different shapes of letters & different behaviour of conjunct consonants.

>>Principles of Kannada Script :

Like Devanagari & related scripts, the Kannada script employs a halant, which is also known as virama or vowel omission sign, U+0CCD ್ KANNADA SIGN VIRAMA. It has same purpose in forming dead consonants.

a. Vowel Letters :

Vowel letters are encoded atomically in Unicode, even if they can be analyzed visually as consisting of multiple parts. The script should be written so as the single code point should be used to represent in text, instead of writing the sequence of code points.

b. Consonant Conjuncts :

In Kannada, conjunct formation tends to be graphically regular using the following pattern :
  • The first consonant of the cluster is rendered with implicit vowel or different dependant vowel appearing as the terminal element of the cluster.
  • The remaining consonants appear in conjunct consonant glyph forms in phonetic order. They are generally depicted below or to the lower right of first consonant.

c. Special characters :

The Kannada two-part vowels actually consists of a nonspacing element above the consonant letter & one or more spacing elements to the right of the consonant letter. These two-length marks have no independent existence in Kannada writing system & do not play any part as independant codes in traditional collation order .

d. Kannada Letter LLLA :

U+0CDE KANNADA LETTER FA  ia actually an obsolete Kannada letter that is transliterated in Dravidian Scholarship as z, l or r. This form should have been named "LLLA" rather than "FA". so the name in the standard is simply a mistake. Collations should treat U+0CDE as following U+0CB3 KANNADA LETTER LLA.

>>Rendering Kannada :

The Kannada script employs CV order as it is employed by ISCII std& corresponds to the phonetic & keying order of textual data.
"Unlike Devanagari & some other Indian scripts, all of the dependant vowels in Kannada are depicted to the right of their consonant letters. Hence there is no need to reorder the elements in mapping from the logical store to presentation glyph rendering & vice versa."

a) Explicit virama (Halant) has same significance as in case of Devanagari

b) Consonant cluster involving RA :

ra ರ  + halant ್  +  ka ಕ  ->  rka ರ್ಕ

ra ರ + zwj  ‍+ halant  ್  + ka ಕ  -> rka ರ‍್ಕ

ka ಕ + halant ್  + ra ರ  -> kra ಕ್ರ
c) Modifier Mark  Rules :

The Nukta is represented by a double-dot mark, U0CBC KANNADA SIGN NUKTA (..) . Two such modified consonants are used in Kannada Language : One representing the syllable za & one representing the syllable fa.

d) Avagraha Sign :

A spacing mark called U+0CBD KANNADA SIGN AVAGRAHA is used when rendering Sanskrit texts.

e) Punctuation : same as that of devanagari [1].


Wednesday, 6 November 2013

South Asian scripts - Gujarati

The Gujarati script is a north indian script closely relate to devanagari. It is most obviously distinguished from devanagari by not having a horizontal bar for its letterforms, the characteristics of the older Kaithi script to which the Gujarati is related. The Gujarati script is used to write the gujarati language of the gujarati state in India.

Vowel Letters :

vowel letters are encoded atomically in unicode, even if they can be analyzed visually as consisting of multiple parts. Following chart shows some of the the letters that can be analyzed, the single codepoint that should be used to represent them in text, and the sequence of codepoints resulting from analysis that should not be used .

For  Use   Do Not Use

આ    0A86   <OA85, OABE>
એ     0A8F   <0A85, 0AC7>
ઑ    0A91   <0A85, 0AC9>

Rendering Behavior :

For rendering of the Gujarati script, see the rules for rendering as specified in Devanagari [1]. like other Brahmic scripts in the Unicode Standard, Gujarati uses the virama to form conjunct characters. The virama is informally called khodo, which means "lame" in Gujarati. Many conjunct characters, as in devanagari, loose the vertical stroke ; there are also vertical conjuncts. U+0AB0 GUJARATI LETTER RA takes special forms when it combines with other consonants e.g. :

ક + ્ + ષ -> ક્ષ (ksa) 
ર + ્ + ક -> ર્ક (rka)
ક + ્ + ર -> ક્ર (kra)
ટ + ્ + ટ -> ટ્ટ (tta)

Punctuation :

Words in Gujarati are separated by spaces. danda & double danda marks as well as some other unified punctuation used with gujarati are found in the devanagari block.

This is about the unicode core specification information about the script Gujarati. as conformance to this , we have developed & written the OT Spec rules for Gujarati sucessfully with its alpha release. Also the Gujarati testing phase is already done with harfbuzz , windows xp ,windows 7, windows 8 . The bugs that we came across are reported & fixed on [2]. very soon we are  planning to have its beta release since some issues are yet to get fixed .

One can download the ttf file from [3].

Tuesday, 5 November 2013

South Asian Scripts I - Devanagari

Hi all . As am currently going through the book " Unicode Standard Version 6.1 Core Specification - Chapter 9", the upcoming blogs can be truely informative for the South Asian scripts namely Devanagari, Gujarati, Kannada & Malayalam. It may come in series format just like the present one is specifically for devanagari.

  • Background Information : 
As most of us know, the unicode standard provide programmers with a single universal character encoding & a vast amount of data about how characters functions.But as we are dealing with more complex scripts we have another standard to follow Indian Standard Code for Information Interchange (ISCII). Most of scripts of South Asia are derived from ancient Brahmi scripts and therefore share many structural characteristics. Implementation should ensure that adequate attention is given to the actual behaviour of those scripts.

  • About Devanagari :

  1. Standards :
The Devanagari block of unicode Std is based on ISCII-1988.

   2.  Encoding Principles :

The writing systems constitute cross between syllabic & alphabetic writing systems. The effective unit of these writing systems is the orthographic syllable, consisting of consonant & vowel (CV) core & optionally with a canonical structure of (((C)C)C)V.

    3.  Rendering Devanagari :

>>Rules For Rendering :

When nominal consonant preceeds a VIRAMA, it is considered to be a dead consonant . A consonant that does not precede VIRAMA is considered to be a live consonant .
                       TAn + VIRAMAn -> TAd
                       त      + ्              -> त्

If ra+virama precedes a consonant , then it is replaced by superscript nonspacing mark "repha".
                       RAd + KAl -> KAl + RAsup
                       र्      +  क   ->  क    + र्          -> र्क

If the "repha" is to be applied to a dead consonant & that dead consonant is combined with another consonant to form a conjunct , then the mark will be applied to the conjunct ligature form as a whole .

                       RAd + JAd+ NYAn -> J.NYAn +RAsup
                       र्      + ज्    + ञ        ->  ज्ञ         +र्        -> र्ज्ञ
If the "repha" is to be applied to a dead consonant that is subsequently replaced by its half-consonant form, then the mark will get applied to the base of consonant cluster.
                       RAd + GAd + GHAl -> GAh + GHAl + RAsup
                       र्      +  ग्      +  घ       ->  ग्     +  घ         +   र्        -> र्ग्घ

In conformance with ISCII std , the half-consonat form is represented as eyelash-RA . This form of RA is commonly used in writing Marathi .
                      RRAn + VIRAMAn + YAn -> RRAh
                      ऱ         + ्              +  य      ->  ऱ्य

                      RAd + ZWJ + YAn-> RAh
                      र्      +  ‍       +  य    ->  ऱ्य
Except for dead consonant RA, when a dead consonant precedes the live consonant RA,then dead consonant is replaced with its nominal form, and RA is replaced by subscript RAsub, which applies to nominal form.
                       TTHAd + RAl -> TTHAn + RAsub
                        ठ्          + र     ->  ठ          + ्र          -> ठ्र

For certain consonants, the mark RAsub may graphically combine with the consonant to form a conjuncts.
                       PHAd + RAl -> PHAn + RAsub
                       फ्        + र     ->  फ          + ्र          -> फ्र

If a dead consonant (other than RAd) precedes RAd, then the substitution of RA for RAsub is performed ; however, the VIRAMA that formed RAd remains to form a dead consonant conjuct form.
                       TAd + RAd -> TAn + RAsub + VIRAMAn -> T.RAd
                        त्     + र      ->  त     + ्र         + ्              -> त्र ्

The nukta sign, which modifies a consonant  form, is attached to that consonant in rendering. If the consonant represents a dead consonant, then NUKTA should precede VIRAMA .
                       KAn + NUKTAn + VIRAMAn -> QAd
                       क     + ़             + ्              ->  क़्         

Other Modifying marks , in particular bindus , apply to the orthographic syllable as a whole. The bindus should follow any vowel signs. The relative placement of these marks is horizontal rather than vertical; the horizontal rendering order may vary according to typographic concerns.
                        KAn + AAvs + CANDRABINDUn
                        क     + ा      + ँ               ->  काँ      

If a dead consonant immediately precedes another dead consonant or a live consonant, then the first dead consonant may join the subsequent element to form a two-part conjunct.
                        JAd + NYAl ->  J.NYAn
                        ज्    +  ञ       ->  ज्ञ          

                        TTAd + TTHAl -> TT.TTHAn
                         ट्       + ठ          ->  ट्ठ        

A conjunct ligature form can itself behave as a dead consonant & enter into further, more complex ligatures. A conjunct ligature form can also produce a half-form.
                       SAd + TAd + RAn -> SAd + T.RAn -> S.T.RAn
                        स्    +  त्     + र      ->  स्     +  त्र         -> स्त्र

If a nominal consonant or conjunct ligature form precedes RAsub as a result of the application of rule R6, then the consonant or ligature form may join with RAsub to form a multi-part conjunct ligature.
                        KAn + RAsub -> K.RAn
                        क     + ्र          -> क्र        

In some cases, other combining marks will combine with a base consonant, either attaching at a nonstandard location or changing shape. In minimal rendering there are only two cases : RA live with Uvowelsign or UUvowelsign.
                       RAl + Uvs -> RUn
                        र    +  ु    -> रु         

When the dependant vowel Ivs is used to override the inherent vowel of a syllable, it is always written to the extreme left of the orthographic syllable.
                       TAd + RAl + lvs -> T.RAn + lvs -> lvs + T.RAd
                        त्     + र     + ि  ->  त्र        +  ि  -> त्रि

The presence of an explicit virama blocks this reordering, and the dependant vowel is rendered after the rightmost such explicit virama.
                       TAd + ZWNJ + RAl + lvs -> TAd + lvs + RAl
                       त्     + ‌           + र     + ि  ->  त् रि

These sixteen rules for rendering of devanagari strengthen devanagari script . & also i would like to mention the currently progressing lohit devanagari on github [1] supports all of these rules & rendering principles as well .


Sunday, 27 October 2013

Started To Work For Lohit Kannada

With the successful fixing for the bugs reported on GitHub for Lohit Devanagari & also with on going testing activity for Lohit Gujarati , Lohit Kannada has started to ignite. As Already specified in the mail by Mr. Pravin Satpute, The Lohit Kannada will going to focus on the following tasks specifically :
    1. Following AGL while renaming lohit-gujarati
    2. Feature file separate as done in lohit-devanagari
    3. Supporting "knda" and "knd2" Opent type tag
    4. Thorough testing with Harfbuzz and Uniscribe (will test with
Windows XP as well to make sure webfonts will render correctly everywhere)

The tasks that are already been completed regarding Lohit Kannada  are :

   1. GSUB Cleanup
   2. Glyph renaming
   3. Test file creation (in process)

The actual OT rule writing for Lohit Kannada will be starting very soon . so that the rendering of glyph with proper contextualization can be achieved.Development is going on [1]repo. Once get ready for alpha, will merge it main lohit repo.

Sunday, 20 October 2013

Lohit Gujarati is on testing phase

Hi all, This post is about status of work that we are working on . with the alpha release of Lohit Devanagari , very soon will move towards the beta release for the same . meanwhile the work on lohit gujarati is in progress .

Currrent status for Lohit Gujarati :

1) Generated Test File
2) Done with OT rules writing for all of the form features[1]
3) Created Glyph-naming file thereby covering all of the glyphs
4) Tested on harfbuzz

With the successful completion on above listed tags . We have reached at the testing phase .
Harfbuzz testing is much successful  than on windows .

also I would like to mention about utrrs testing. We came across the test case 581 & 586 , there we found that we can have some improvements over there (possibility for inclusion of the glyph for DA HALANT GA & DA HALANT BHA )  so we had reported about the same to the utrrs [2].

Further thing remained is about fixing of some contextualization issues at windows xp .We will surely work particularly on that. For any deatils feel free to contact [3][4].

2. (test case no 581,586)

Sunday, 6 October 2013

Lohit Devanagari Alpha Release

As most of us were waiting for the news of lohit devanagari release , I would like to mention the lohit devanagari alpha version has been released on 3rd sept  & sucessfully reached to meet the goals previously described [1][2].

     The main task that the project has gone through are :

  • Rewritting of all GSUB rules from scratch.
  • Support for both deva and dev2 script tag
  • Gone through testing on Harfbuzz as well with Uniscribe with expected results :)
  • GPOS tables intact.
  • Effectiveness and efficiency [3]  (sfd file size is down by 28K and Binary file side is down by 4K)

Glyph naming part is also one of the important thing in the project . The discussion  regarding the same can be viewed at [4]. At the end we come to the solution to follow AGL specification with the help of some script that will convert the naming to the unicode specifications. Also the testing was main part , during which we had gone through  many bug fixes.Though this is an alpha release , little bug are yet to be fixed so if you came across it feel free to contact [5].

Here are the steps to download  :

Steps for Linux :

Installing font (.ttf) file:
   You can install .ttf font files by copying them to ~/.fonts directory.
   Then execute fc-cache command and then relogin to use that font.

Steps for Windows :
    You can just copy the .ttf file from [6]. copy it to windows/fonts/ folder .
and you are ready to use rather test it :) .

Basic motivation behind the project  was existing open type specification is not providing sufficient information for Indian script and font developer need to create guess work while writing Open type tables. So we want to have one specific guidelines for Indic scripts.

This alpha release will be much more useful for fixing of bugs , if any , thereby giving a step towards beta release.

3. Effective means it should work on all supported platform perfectly and efficient means compact and clear rule

Sunday, 29 September 2013

HTML 5 Tour @ Pune

Hii all . This blog is all about html 5 tour .The World Wide Web Consortium (W3C) India Office had organized an HTML5 Tour in India from 17 - 25 September 2013 [1]. The Eminent technology leader & expert from the World Wide Web Consortium imparted training on HTML5 and W3C's Open Web Platform to developers, students and other academies.

The Tour was scheduled across India's 5 metropolis cities - New Delhi, Bangalore, Hyderabad, Kolkata and Pune . The topics discussed during this tour was different at different places. The tour held @ pune was on 25th Sept. & it was more concerned about technology and the concepts regarding web development(mainly focussed on WebRTC ).

The Programme had started by the inauguration function (which had involved offering bouquets to the dignitaries on dias & lighting lamp etc.) followed by the welcome session by Dr.Raiomond Doctor, advisor CDAC, GIST. The prefatory remarks regarding the html 5 was shortly explained
by Mr. Michael Smith, W3C HTML activity lead, which had made the audience more curious about the WebRTC session.

The Global initiatives of W3C were very nicely explained in true perspective and also the key note addressed by Prof. Rajat Moona
was very much useful. The most interesting part of the programme was the WebRTC (Web Real Time Communication) which had made the people to brought their attention with soul and mind  [2]. The session started by Mr. Michael Smith was really very interesting . It was all about the WebRTC concept. This concept of WebRTC involved the new way to use the web to connect with other people, including real-time video chat and video conference.

He had explained the limitation of current RTC, core WebRTC technologies. He showed various examples and demos' on the apps that uses the HTML5 functionality [3]. He also made live video chat and video conference for which the getusermedia call is important & also he had shared the link for the same [5]. I should not forget to mention about the Ascii-Camera [6]. He also said that the HTML 5 is going to be launched as [7].

Mr. Amitesh Madhur had focussed his talk on coding section & IP address issue needed for WebRTC installation as well. He had explained about the NAT traversal & also about the protocol such as ICE, STUN, TURN etc. The installation for the respective protocol setting is different for different OS.

Mr. M. D. Kulkarni had talked about the multilingualism and HTML5 followed by the short presentation about the W3C activities . The programme has reached to end by the open panel discussion & the vote of thanks as well.

It was really very nice to attend the session held there. The information that the Michael had given was really very useful. Thanks to the W3C , CDAC team, & of course, I wont forget to include RED HAT. :)

7. http://www.html.o (yet not launched)

Thursday, 12 September 2013

" Few Steps Back From Lohit Devanagari Alpha Release "

being at the end of this week & also with the completion of testing phase , i would like to say its just couple of days for the release of lohit devanagari alpha release.

As of know , we had completed OT rule writing ,glyph testing on harfbuzz as well as windows platform . still some minor tasks are there to attempt so as soon as we attend them, Lohit devanagari will be ready for its alpha release. .

Tuesday, 10 September 2013

" To Write Efficient And Effective Open Type Specification For Indian Script Fonts "


                            As we know, Lohit is a font family designed to cover Indic scripts and released by Red Hat. The Lohit fonts currently cover 11 languages: Assamese, Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Oriya, Punjabi, Tamil, Telugu.
                             I am currently working on Lohit Fonts[3]. So this blog is specifically for the things on which I am working.

1) Glyph Renaming :

                     Previously there were no proper glyph names assigned to the glyphs in the fontforge application (rather they were not that user  friendly i.e. not in user readable format. They contained the combination of unicodes from which that glyph or letter has been formed ) But now the task of glyph renaming has been done which can be one of the important thing for writing of rules.Previously there wasnt any file maintained for the glyphs & its typos' but now it is available in the file named "testdeva" on the link provided [3].

             We are sure this will help in reusability of OT tables

2) GSUB rule rewriting :

                    As of earlier the task of GSUB rule writing is already been written but there were many issues that need to be handled. Presently the rules for Basic Shaping forms (like "nukt,rphf,pref,blwf,half,vatu ") & Presentation forms(i.e pres,abvs,blws,psts,haln etc) has been completed.
As in reference for the information about the feature the link can be useful[4]

  Basic motivation behind this was existing open type specification is not providing sufficient information for Indian script and font developer need to create guess work while writing Open type tables. So we want to have one specific guidelines for Indic scripts.

        So basically we can add and update this standard while rewriting open type tables of Lohit.

for any details feel free to contact.