Srijika: OpenType-Layout-Reusing Font Restyling for Nine Indic Scripts
Organizations: Loopdesk Technologies LLP
Abstract
We present Srijika, a system for producing installable OpenType fonts for nine Brahmic scripts: Devanagari, Tamil, Bengali, Telugu, Kannada, Malayalam, Gujarati, Gurmukhi, and Odia. Rather than generating fonts from scratch, Srijika restyles glyph outlines from shaping-complete template fonts. It preserves the template's cmap and GSUB closure and its GPOS data under a documented metric policy, making every output a complete font by construction. This addresses a central challenge of Indic font generation: hundreds to thousands of conjuncts, half forms, and matra variants must remain mutually consistent under OpenType shaping. Srijika produces 66 TTFs: 57 curated presets and nine open-vocabulary showcase fonts. All pass the OpenType Sanitizer, while HarfBuzz and CoreText reproduce the template glyph-ID sequences on conjunct-heavy probes. A full-closure audit covering 80,915 glyphs and 54,812 anchors quantifies metric changes. Natural-language style selection uses Lipika, a retrieval index over approximately 650 open-license font families. A reference-conditioned latent diffusion model redraws template glyphs in the selected style, followed by content gating, harmonization, and shaped-cluster verification with fallback to template outlines. We evaluate against no-learning baselines. On diffusion-training-family-held-out SSIM gates, template copying outperforms generation on 50 of 56 faces. Style movement is measurable only with an internal same-model embedding whose training corpus includes the held-out families, so these results require caution. A learned baseline, independent style metric, and human study are outside this report's scope. Our contributions are the layout-reusing formulation and pipeline, its nine-script audit and benchmark, and a negative-results catalogue covering failed conditioning, objective choices, and data-hull limits of reference-guided restyling.
Figures & tables
| SSIM | Fam. Lipika closure | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Condition | Held-out family | Faces | Gen | Tpl | Morph | Geom | Gen | Geo | Morph |
| OOD (gen-v3.11) | Alkatra | 5 | 0.6377 | 0.6997 | 0.6922 | 0.7101 | 0.866 | 0.009 | 0.008 |
| Lohit Oriya | 1 | 0.7364 | 0.7619 | 0.7628 | 0.7325 | 0.034 | 0.020 | 0.003 | |
| condition macro | 0.6870 | 0.7308 | 0.7275 | 0.7213 | 0.450 | 0.014 | 0.002 | ||
| Genre (gen-v3.11b) | Noto Serif Oriya | 5 | 0.7689 | 0.7917 | 0.7903 | 0.7608 | 0.025 | 0.006 | 0.007 |
| Lohit Oriya | 1 | 0.7290 | 0.7619 | 0.7628 | 0.7325 | 0.026 | 0.020 | 0.003 | |
| v3.7 (donor) | v3.8 (+20k) | v3.8b (+30k) | v3.12 (+30k, wtd.) | |
|---|---|---|---|---|
| Devanagari | 0.7476 | 0.7458 | 0.7408 | 0.7408 |
| Tamil | 0.7570 | 0.7493 | 0.7532 | 0.7498 |
| Bengali | 0.7687 | 0.7558 | 0.7534 | 0.7587 |
| Telugu | 0.7691 | 0.7824 | 0.7790 | 0.7828 |
| Kannada | 0.6860 | 0.6714 | 0.6887 | 0.6803 |
| Malayalam | — | 0.7346 | 0.7401 | 0.7298 |
| Script | Fam. | Faces | SSIM | Fam. macro | Tpl. copy | Morph | Geom | Serving model |
|---|---|---|---|---|---|---|---|---|
| Devanagari | 3 | 12 | 0.7476 | 0.7371 | 0.7913 | 0.7919 | 0.7787 | gen-v3.7 |
| Tamil | 2 | 3 | 0.7570 | 0.7674 | 0.7598 | 0.7628 | 0.6918 | gen-v3.7 |
| Bengali | 2 | 4 | 0.7687 | 0.7694 | 0.7810 | 0.7781 | 0.7653 | gen-v3.7 |
| Telugu | 4 | 8 | 0.7691 | 0.7542 | 0.7797 | 0.7972 | 0.8356 | gen-v3.7 |
| Kannada | 2 | 11 | 0.6860 | 0.6980 | 0.7546 | 0.7545 | 0.7481 | gen-v3.7 |
| Malayalam | 4 | 7 | 0.7401 | 0.7397 | 0.7816 | 0.7820 | 0.7991 | gen-v3.8b |
| Lever | Attack surface | Mechanism | Deva | AlfaSlab fb |
|---|---|---|---|---|
| v3.6 baseline | — | — | 0.7445 | 54% |
| Aux content CE | objective | 0.553 † | — † | |
| Skeleton ch. (v4.0) | input cond. | (dead) | 0.7366 | 56% |
| + raster drop (v4.1) | input cond. | 0.7403 | 67% | |
| Multi-scale (v5.0) | decoder cond. | 0.7363 | 59% | |
| Weight aug (v5.1) | data (synth) | 0.7214 | 64% |
Appendix figures & tables3 assets
Supplementary material from the paper’s appendix.
Appendix
| SSIM | Lipika style | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Script | Held-out family | Faces | Gen | Tpl | Morph | Geom | ||||||
| Devanagari | Glegoo | 2 | 0.6953 | 0.7182 | 0.7133 | 0.7206 | 0.081 | 0.105 | 0.127 | 0.833 | 0.033 | 0.029 |
| Karma | 5 | 0.7553 | 0.8178 | 0.8181 | 0.7881 | 0.143 | 0.008 | 0.036 | 0.917 | 0.148 | 0.030 | |
| Khand | 5 | 0.7608 | 0.7940 | 0.7972 | 0.7925 | 0.134 | 0.070 | 0.074 | 0.898 | 0.077 | 0.005 | |
| Tamil | Karla Tamil Upright | 2 | 0.7361 | 0.7615 | 0.7644 | 0.6910 | 0.477 | 0.168 | 0.143 | 0.941 | 0.400 | 0.032 |
| Meera Inimai | 1 | 0.7988 | 0.7563 | 0.7594 | 0.6932 | 0.894 | 0.133 | 0.125 | 0.910 | 0.979 | 0.010 | |
| Script | Held-out face | SSIM | SSIM p25 | Tpl. SSIM | Morph | Style ratio |
|---|---|---|---|---|---|---|
| Devanagari | Glegoo Bold | 0.6699 | 0.6361 | 0.7057 | 0.6966 | 0.075 |
| Glegoo | 0.7206 | 0.6652 | 0.7308 | 0.7300 | 0.123 | |
| Karma Bold | 0.7273 | 0.6699 | 0.8109 | 0.8012 | 0.088 | |
| Karma Light | 0.7793 | 0.7367 | 0.8268 | 0.8337 | 0.273 | |
| Karma Medium | 0.7805 | 0.7434 | 0.8287 | 0.8304 | 0.163 | |
| Karma | 0.7549 | 0.7087 | 0.8124 | 0.8167 | 0.174 |
| Script | Held-out face | SSIM | SSIM p25 | Tpl. SSIM | Morph | Style ratio |
|---|---|---|---|---|---|---|
| Malayalam | Lohit Malayalam | 0.6996 | 0.6384 | 0.7304 | 0.7245 | 0.220 |
| RIT Panmana | 0.7657 | 0.7244 | 0.8150 | 0.8192 | 0.422 | |
| RIT TN Joy Bold | 0.7482 | 0.6912 | 0.8006 | 0.8011 | 0.410 | |
| RIT TN Joy ExtraBold | 0.7042 | 0.6500 | 0.7959 | 0.7939 | 0.277 | |
| RIT TN Joy | 0.7332 | 0.6997 | 0.7865 | 0.7892 | 0.424 | |
| RIT Uroob Italic | 0.7635 | 0.7154 | 0.7700 | 0.7718 | 0.087 |