 Okay. Good morning, everyone. My name is Ed Drager. I'm going to talk today about Harry Poonchai designing a Unicode compliant Titan font. What is Titan? Titan is a an Indic script of Southeast Asia that features predominantly rounded letterforms and has traditionally been written on palm leaves, palm leaf manuscripts. It's the script is very closely related to modern Burmese, the old Maan script, and all of these scripts are derived from the Palawa script, which itself is ultimately derived from the Brahmi script of the Indian subcontinent. For centuries throughout the northern regions of Southeast Asia in the Xishuangbanna region of Yunnan in China in the Chan state of Myanmar around the city of Tiandong, in parts of Laos, and in the Lanna region of Qingma, of northern Thailand around the cities of Qingma and Lampoon, the Titan script has been used extensively to write, to preserve important cultural and religious texts. And today Titan remains the only script used by the Taike in people of the Chan state in Myanmar. In the other regions in both Thailand Laos and in China other scripts are now predominant. So for example as we know in Thailand central Thai script is used and Laos, of course the modern Laos script is used. But nevertheless in Buddhist monasteries throughout the region Buddhist novitiate monks still are learning to read and write Titan, so it's very much a living script. And in the digital era that we now live in I think there was a renewed interest in preserving the cultural heritage of the past and educating the youth of the new generation. And so naturally we see as you would of course expect the development of online resources for Titan and Titan culture and and here are just a few examples. There's three you know screenshots of three websites shown here. Digital Library of Laos manuscripts, the Lanna manuscripts site at the École Française d'Extrême Réant in Paris. That middle one I want to point out in particular that was that's done in collaboration with the Princess Maha-Dakri Sirenton Anthropology Center in Bangkok. And it's an important one because I actually refer to that website quite often so that I would have access to some palm leaf manuscripts written in Taitang so I could do my research in developing this font. And the third one in front here is from Facebook There's a Lanna Institute at Chiang Mai Ratchapap University and some of the photographs later in the presentation actually come from this Facebook page, and I'm indebted to them because I'm not currently in Thailand, so you know I wouldn't have access to all these resources. I'm actually in fact if I was in Thailand I still wouldn't necessarily have access to the physical copies of Lanna manuscripts, unless I ran all over the place. So having all this stuff in a digital world is really convenient. But what's missing? Well Unicode Taitang fonts and Taitang input methods actually work are missing. So if you go to the École Française website and you can search for documents, Taitang documents using either English, Latin script or central Thai script, but not Taitang. So that's sort of like, can you imagine going to a library here in Germany and going to the card catalog and not being able to search the title of your book in Latin? I mean that's a problem, right? So so clearly more work is required before Taitang really becomes available online, but it's not just an online problem. There are currently books being published in Thailand and an example is shown here on the left using inferior digital fonts. So on the left is a word circled in red and below the base consonant there are two symbols that are just right on top of one another because no one really thought enough or didn't work on the font long enough to to think about what's going to happen with the interaction of these symbols that occur below a base consonant. On the right is my attempt in the Haripunshai font to address those kinds of issues and I'm not saying that's easy because you have to really think about what combinations of symbols occur, which means you have to know the language pretty well and that's that's not always easy to do. So one solution we've seen in Thailand and elsewhere are, you know, this is a Taitang primer. Guess what? It's a handwritten manuscript. Because if you write, if you reproduce a handwritten manuscript, there are no limitations, right? It's just, it doesn't look quite as pretty, but there's no limitations in terms of shaping of your text. Okay, so in this environment then I decided to try my hand at creating a Taitang font. Haripunshai is the old name for the city of Lampoon and that's where the name comes from. If we think about it, the materials and the tools that we use to create letters influence the shape of those letters. So if we were designing a Latin font, for example, ultimately, serifs are an artifact of inscribing capital Latin letters in monumental stone. So if I was designing a Latin font, let's say a traditional Latin font, I might want to drive inspiration from Trajan's column, which is shown here, right? Likewise, if I'm going to design a Taitang font, now Taitang doesn't have much of a typographic tradition. So if I were to design a Latin font, I could, I could probably skip Trajan's column and I could just say, no, let me look at what people have done since 300 AD, you know, and and I could derive inspiration from that as well. But with Taitang, there's not much of a typographic tradition. So it's been really important to look at the manuscript tradition. Let's look at how that works because we're, as Westerners, we may not be very familiar with palm leaves. This I'm going to go very quickly. You cut these leaves from these giant palm trees in the genus Corifa and the leaves are trimmed and boiled in a herbal mixture that has some insecticidal properties because there's a lot of bugs in Southeast Asia. Trimmed, boom, there you go. Dried leaves ready to write on. And here are the stylai that have needle tips that are used to inscribe the letters. Here's a monk in Thailand. This is from a contest, a Taitang sort of writing contest for novitiate monks held in Chiang Mai. I think it was in November of last year. Another photograph, just close up. These are from the Chiang Mai Ratchapap Facebook website. And here you can see up close, but you can't see the letters yet because there's no ink. So the final stage is to wipe the leaves down with ink. So that's how it works. Finish folio. These are some great photographs. And here you go. And then here you can see there's holes punched in the leaves and then they're strung together. So that's what the manuscripts look like. And that's what we're using for inspiration to create a font. Now that's a great idea to go look at manuscripts, but you've got a lot of problems here. In the pre-modern era there wasn't as much communication between regions. So you had, of course, development of regional variation. Here's just one letter form. This is a sub-drawn letter and not from manuscripts from three different cities in three different areas where the script is used. And you see this, it looks really different. I mean basic idea here is you're going to take your pen and you're going to kind of like draw a little loop and go to the right. But it depends how big is the loop and how much, or not to the right to the left, how much you go to left. So in the end I decided on sort of the Chiang Mai style, which is the one at the bottom. Okay, Taitao is written very differently than from Latin. You have base constants as surrounded by sub-drawn consonants, turn marks, and vowel signs. Like some other scripts, index scripts, things are, base constants are generally written from left to right, but not always. Mi do ra. So in the Unicode model then Unicode consortium chose a phonetic model similar to like what was done for Devanagari. So you would type pa and then ra to get the word pa, which means Lord. But that's what Unicode wants you to do. But people in Thailand and they want to do it the other way around. They want to do visual ordering, because that's how you write it. They want to write ra first and then pa. So there's an input method issue here. And Okay, let's go on. Unicode also assigned a code point 1860 to call Sogot, which allows you to type a sub-drawn consonant, which is a consonant that appears below another base consonant. In general, you see here the ngat at the end of this word ra-kang appears below the ka. But it looks like just a sort of smaller, slightly more compact version. But sometimes the letters completely change shape like the ma here. Now what's complicated is 1-2-5 there, it may appear in this changed form as shown in this slide, but not always. Sometimes it just looks like the regular little ma, but in a smaller version. So there's a lot of complexity here. Val signs can appear anywhere around a base consonant if they appear like the vowel a, which is shown before the gat here. Then you need support from a shaping engine such as harfbuzz. This is also true for the medial rat that we saw earlier. You really need support from a shaping engine like harfbuzz. And basically, I designed my font to work with harfbuzz. Does everyone know? How many people know when I'm harfbuzz? Yeah, okay, great. Okay, so putting all these things together, I circled a word here in the manuscript. It's sort of the word Buddha with all the honorifics. So it's pra-kut-ta-tau, and you can see a gloss in Latin on the right of the slide that sort of shows you the complexity here. But like anything else, you can learn to read and write this. It's not a problem really. Okay, now let's look at what I did. I mean, I wish I should have done something smart like use metopilator, but I didn't. Okay, so I used the escape And the script, this font is not generally not modulated. The thickness of the strokes remains consistent except for the head with the little red circle and the tail sometimes narrow. So basically I did worked out my bezier curves in inkscape like you see in black here. And then for the tail, that was originally just a bezier curve, not an outline. Then I can inkscape, convert that to an outline, narrow it down to make the tail. That purple tail is useful for not only this letter a dot, but also like another consonant a knot and some of the other consonants. So then I could combine these, create the union set of these pieces and I could get some glyphs. And another thing I like to inkscape is I could make a transparent or colored copy of a glyph and use that as a template to create additional glyphs. So in the end, I actually didn't do that much work on paper at all. You know, because that would have been another option, right? Do some work on paper and bring that in as a background image. But I actually didn't do it that way. I just did it straight up on my digital canvas. Yeah, and here's another example where in inkscape I could create similar glyphs at the same time. So I've got 1A6D and two different possible versions of 1A3F in the sub-joined or dependent form, along with in purple some finished glyphs, so I can look side-by-side and just see how everything looked. So this is like the artist in me just like playing around on the digital canvas. So I mean this work great except when you create the union set of an outline in inkscape you get more points on the outline than you actually want and then when I inputted the stuff into font forge I get warnings that my points were too close together, so that's something I didn't like at all. It really bummed me out, but what can I do about it? Live with it. Okay, anyway, I had an online code repository. I could keep different versions of all these different SVG files. It was great. I brought the work into font forge. Dave Croslin has a little web page on his what's it called? I forget the name of his website. It's in the speaker notes. That shows you how you can import your SVGs into font forge. I guess a lot of people here probably know how to do that. Okay anchor points, obviously with all these How much time do I have? Okay, yeah, obviously with all these symbols that go around, I need a lot of anchor points. So originally I had a small set of anchor points, but then I said no, no, I need more flexibility, more control. So I created a set of 10, I think 10 or 12, 10 anchor points. So then initially in font forge I chose a few base letters such as the cop shown here and in the graphical user user interface position my anchor points and then used within font forge made sure that everything looked correct when I placed symbols around it. And then this is where open source is nice. The font forge spline font spline database is just a text file. Thank God. So I was able to go out to you know my command line in VIM basically copy and paste my list of anchor points from that base constant of cop to all of its sort of cousin consonants that look sort of the same. And then go back into the graphical user interface and say okay, this is almost right, but not quite and do little tweaks, but you know not have to do everything in the graphical user interface. Thank God. Because I'm really a lot of a I'm sort of a command line person unless I'm drawing on paper then I then I'm an art person. Correct shaping. So finally I have two platforms to work with basically half buzz includes the tool called HP dash view and Then half buzz is now included in Firefox or the nightly build version of Firefox called Aurora and I use that and then I have There's a sort of online multi lingual Editor that I created called key curry It's at my website unifont.org slash key curry that I use for typing stuff. So finally by December I had some time around the holidays I was working on this font a lot and I get good shaping, you know, correct shaping correct layout. No problems But then the day after Christmas The dreaded dotted circle if any of you have ever worked with complex Scripts like Arabic or Indic scripts, you'll know this is terrible. So I was like, ah, what am I doing? What's gone wrong? Did I do something wrong? I read an email to the harpist mailing list and I said, you know Can we saw him please give me a hint about Is something changed in half buzz? Did I do something wrong with my font? Please help me. I got an email back from Martin Hoskin He wrote the answer is simple, but insidious The normalization for tie-tom is broken I have tried very hard to get the Unicode technical committee to fix this but They refuse Based on stability principles. They're like, no, we know it's wrong, but we can't change it because we have a stability policy So that was not good news But then Jonathan Q who does a lot of work for Mozilla came up with a very simple patch For half buzz which changes the combining class of the so caught character 1 0 6 0 so that it has a lower priority than the tone marks or the vowel signs That preceded so you don't get the random reordering that was calling causing the data circle So thank you Jonathan Q This is how work gets fixed in the open source world And I think an interesting story that we're seeing here if you think about it is there's this chicken and egg problem where On the one hand the developers of half buzz like bed that as for wood and Jonathan Q and these other guys are of course They're including code in half buzz to provide correct shaping for tie-tom and other Indic and Indic drive scripts, but until you have an actual Unicode font to play with And that's where like Harry Kunshai comes into play You don't know whether it's gonna really work or not So then so then I'm designing a font and I don't know if my font is gonna work either Until I play around with it in half, but so it's very much a chicken and egg problem But in the open source world, you know, we get things done in a very short time if you think about it This was like just December. So by February Aurora which is the nightly build of Firefox already had the patch included so boom everything works Okay, so then I'm basically done with my talk. Do I have any time left or not? No some pretty pictures So while Lauren comes up to the front we have time for maybe one question what would Have you ever considered comparing your phone to Georgian Question for you have you ever considered comparing your phone to Georgian funds? Like on the surface of the tight time looks very similar to Georgian But that was the answer he had Okay