Check The GitHub Repository

Sugar Font Editor Activity

Kids Make Fonts

Refined Proposal and Timeline


By Yash Agarwal (GSoC Student)

Eli, Dave and I decided to move forwards with an Activity for the Sugar Desktop (in Python) because it has many more users today than Sugarizer. Using Python allows me to take advantage of the libraries that Trufont uses.

This font editor Activity is planned to include the following features and follow the Sugar Human Interface Guidelines:

1: Font Manager

Related pages:

2: A glyph drawing interface

Similar to the one found proposed by Mark Simonson and available in FontForge and Glyphs: edit several glyph outlines side by side, allowing to draw and space them in the same window.

Image of Glyph Editing Interface

3: A Testing interface


I have divided the project into measurable milestones, with 12 weeks at 40 hours a week becoming 6 milestones of 2 weeks each:

Milestone 1: Font Manager

I will use the Sugar Human Interface Guidelines to build basic GUI functionality like Toolbar(s), Navbar , Work Space, etc.

The entire activity will be made as a Sugar Activity in Python.

Image of Activity Interface

(Image source)

1.0 Activate/Deactivate: Build an interactive grid display for showing all fonts in the system, a button to activate/deactivate them, and allow the user to create ‘collections’ within the library (like playlists in a music player)

1.1 Scan for .otf/.ttf type font files in the filesystem and add them to the library

1.2 Import/Export: open files using python and defcon and export/generate .otf and .ttf files with fontmake

1.3 Complete documentation and organising code if needed according to sugar labs Activity Teams mentioned specification


Image of Complete Font display

Milestone 2: Glyph Editor Basic Version

2.0 Build the glyph picker class, to select which glyphs to edit

2.1 Build the glyph class and the methods required for manipulating it

2.2 Implement PostScript bezier outline editing feature which will be similar to the Glyph editor currently found in Trufont

Image of Glyph Editing Interface

Milestone 3: Metrics Integrated Glyph Editing View

3.0 A view as mentioned above which allow us to adjust spacing while in glyph edit mode

3.1 Testing Stage/Paragraph View

3.2 This module will only show a text box in which the written text is rendered in the font currently being edited/created

3.3 There will not be any editing option in this module- this is just to get a visual feedback of the font in question

3.4 This module will also contain predefined text templates eg. “the quick brown fox jumps over the lazy dog” and a export image button to save a image of the rendered font

Milestone 4: Glyph Editor with Added Functionality 1 + Packaging

4.0 Implement spiro spline curve fitting as can be done with inkscape

4.1 Get the code integrated in the main sugar distribution

Milestone 5: Glyph Editor with Added Functionality 2

5.0 Implement curve offsetting that will be used in skeleton based glyph design

Milestone 6: Glyph Editor with Added Functionality 3

6.0 To be decided