A new direction I’m exploring for DigitalKhatt:
Model how a calligrapher writes instead of drawing glyph outlines.
A parametric qalam follows a trajectory with a variable pen angle.
Different styles and weights can then emerge naturally by changing the qalam geometry.
Here is an experimental Old Madinah Mushaf with tajweed coloring.
It uses a constraint solver for automatic mark positioning and collision avoidance, alongside advanced Arabic justification.
This work is still under development and may contain errors.
github.com/DigitalKhatt/oldm…
A new version of the DigitalKhatt font based on Madinah Mushaf from 1441 Hijri is available at github.com/DigitalKhatt/madi… (not yet supported on Safari).
Here is a demo of the Mushaf using harfbuzzjs and a frontend justification: digitalkhatt.org/hb/newmedin….
I have started preparing documentation if anyone wants to design a new font or improve existing fonts using the Visual MetaFont tool.
github.com/DigitalKhatt/visu…
I continued working on character segmentation at github.com/DigitalKhatt/medi…. There are still many incorrectly segmented words, but for correct words, the character shapes resulting from a search are displayed in the order of their widths as for the final Yeh below.
A new demo using harfbuzzjs is available at digitalkhatt.org/hb/oldmedin….
Using HarfBuzz directly allows different features per character in the same run. The justification logic is now on the frontend, which makes it possible to study and implement different justification strategies.
DigitalKhatt is proud to announce funding from @tarteelAI to support full time development on DigitalKhatt, contributing to Tarteel's mission of increasing accessibility to the Quran globally.
We are excited by the accelerated progress & technology this collaboration will unlock!
I'm experimenting a new implementation using only standard WEB components (HTML, CSS, JavaScript) and OpenType.
We can now have search, copy, and interaction capabilities with improved justification.
This looks promising.
Here a simple implementation ex. : digitalkhatt.org/assets/exam…
I'm working on a new variable font of the old Uthman Taha' script which is used around the world in many masahifs such as the old Madina musha.
Here is an example of the last 4 pages: digitalkhatt.org/assets/exam….
I made a demo of DigitalKhatt on Android from which you can adapt it to your needs.
It is based on HarfBuzz, Skia and OpenType variable font instead of MetaPost. So I was able to license it under MIT to make it available for proprietary software as well.
github.com/DigitalKhatt/mush…
Here is the third page of Madinah Mushaf in SVG format with the tajweed colors (added manually for now) after automatic character segmentation of the vectorized file of the handwritten Madinah Mushaf. You can find the SVG file at digitalkhatt.org/assets/svg/…
I started to implement character segmentation. This is a long process because multiple characters can have multiple join shapes and types. The example below shows how the subword is segmented based on extrema and sharp turns and the result when applying tajweed colors.
You can find the Medina Mushaf Analyzer source code at github.com/DigitalKhatt/medi…. It was developed to help me design the DigitalKhatt variable font by determining the different letter widths and shapes. Below are examples of results obtained from the tool.
I found a vectorized file of the handwritten Madinah Mushaf at dm.qurancomplex.gov.sa/hafsd…. I associated it with the equivalent Unicode text so that I could infer certain font characteristics and justification rules. I'm still discovering but I think it's worth the effort.
I added the possibility to decrease the font size in case of line overflow (digitalkhatt.org). This allows to specify a larger font size and minimize excessive stretching and word spacing. An intermediate solution until more improvement in the font and justification rules.