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

Santhosh Thottingal santhosh.thottingal at gmail.com
Mon Mar 17 06:29:14 PDT 2014


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.smc.org.in/pipermail/student-projects-smc.org.in/attachments/20140317/1e064845/attachment.html>


More information about the Student-projects mailing list