The Aksara Kawi app

The Aksara Kawi app is a prototype implementation of the Kawi script based on the Proposal to encode Kawi by Aditya Bayu Perdana and Ilham Nurwansah. It uses the characters now included in Unicode 15. The app includes a version of the font used in the proposal, Tantular Kawi designed by Aditya Bayu Perdana, reengineered based on Apple Advanced Typography, a technology that enables the creation of fonts for complex script that are not part of Unicode or not supported in OpenType implementations yet.

What is this prototype for?

A prototype lets us verify that a proposed encoding for a script actually works in practice, at least for the fundamental building blocks of a script implementation: a font and a keyboard. There have been a number of cases in the past where major issues in the encoding of a script were found long after they were encoded, and such issues are then much harder to correct.

With Unicode 15 now released, the original purpose of the app, to validate the encoding, has been accomplished. However, the iOS/iPadOS operating systems and text editing apps running on it have not been updated yet to fully support Kawi, and so we continue to make the prototype available to enable testing of these implementations.

Who can get this prototype?

Anyone who is interested in testing emerging implementations of Kawi and has access to an iPhone or iPad with iOS/iPadOS 13 or higher. The app is distributed through Apple’s TestFlight program, so you’ll need to get the TestFlight app as well. Please contact us through the form below and provide the email address through which you’d like to get your TestFlight invitation.

Can I use the app to write dissertations, tweets, messages?

In a very limited way. The Kawi script is now part of Unicode, but iOS/iPadOS and text editing apps don’t support it well yet. In particular, some applications, such as Apple’s Pages word processor, prevent the input of newly added Unicode characters until they’ve been updated to support them. If you’d like to publish Kawi text, the safest way is to use the Share feature in the Aksara Kawi app to create an image of your text, or export as a PDF document from the Notability app.

Why is the prototype only available on iPhone and iPad?

The font in the app is based on Apple Advanced Typography, which is only fully supported on Apple platforms. The more commonly used OpenType font technology hasn’t been updated to support Kawi yet. In addition, we happen to have experience in developing font and keyboard apps for iPhone and iPad.

What does the Tantular Kawi font look like?

Here’s a transcription of the Laguna copperplate inscription, written with the Aksara Kawi keyboard in the Pages app on an iPad, and converted to SVG with the GlyphShaper and GlyphPlotter tools.

Laguna copperplate inscription

How does the Tantular Kawi font in this app compare to other existing Kawi fonts?

Many other existing Kawi fonts use Balinese or Javanese code points. This means, while they can make text look like Kawi, software will treat the text as Balinese or Javanese, for example in search or text editing. Kawi and its encoding in Unicode differ from its successor scripts in some ways, e.g., in the set of vowels and punctuation characters, in its use of repha, and in the encoding of conjunct forms vs. visible virama. We hope that fonts based on the Kawi encoding in Unicode 15 will replace older fonts.

Is this AAT font compatible with one based on OpenType?

The font is designed to produce rendering results equivalent to one based on the OpenType Universal Shaping Engine. In particular, it requires the same sequence of characters within a cluster as the USE, and inserts dotted circles into clusters that the USE would find invalid. The expected character sequence within a cluster is documented in Unicode Technical Note 48 Implementing Kawi.

Why is Kawi text sometimes displayed incorrectly in the app?

You may notice that marks are incorrectly attached to bases (e.g., too far to the right), or that below-base conjuncts collide with other glyphs. Most of the time, this is caused by a bug in the iOS text component used, UITextView. This bug has been fixed in iOS 16. To see the text rendered correctly, either update to iOS 16 or install the font and the keyboard for other apps, and then use the Notability app.

How is the keyboard organized?

The keyboard has three layers:

keyboard layer 1
Consonants and dependent vowels
keyboard layer 2
Consonant conjunct forms, additional dependent vowels, and other marks
keyboard layer 3
Digits, punctuation, independent vowels, and the one conjunct form of an independent vowel

How does the keyboard work?

The keyboard expects characters in a generalized form of the encoding order. Marks within a cluster are automatically reordered to produce the order that the Universal Shaping Engine expects. For example, if the user types first -u, then -i (to get a cancellation mark), the keyboard reorders to -i-u. Or if the user types first -ng, then -u, the keyboard reorders to -u-ng.

The keys for conjunct forms input the sequence of subjoiner and consonant or independent vowel that represent the conjunct form. There’s no separate key for subjoiner. The delete key removes the complete sequence.

For repha, there are two distinct uses in Kawi. Normally, the character is used as an actual repha, that is the initial vowel-less ra of a cluster is written as a mark above the second consonant. In some late manuscripts, however, the character is used as a final consonant, like its modern cognates Balinese surang, Javanese layar, and Sundanese panglayar. In both cases, the character needs to be entered in the position that corresponds to its use as repha, before the base consonant of the cluster. Here’s the word hañjurniŋ with the key sequences necessary when using the repha character either as a repha in the third cluster or as a final consonant in the second cluster:

Input of repha

When the user types a repha, the keyboard appends a dotted circle as a placeholder. When the user follows up with a consonant, the keyboard replaces the dotted circle with the consonant. If the user types anything else, the dotted circle stays. When the delete key is used after typing the repha, it deletes both the dotted circle and the repha. If the user deletes a consonant that follows a repha, the keyboard re-inserts the dotted circle. If the user deletes a dotted circle that follows a repha, they’re both deleted.

All this magic only works correctly on current input. Once the user has moved to a new line, or moved the insertion point, the keyboard typically can’t see what’s being deleted, so it’s all up to the editor – which of course knows nothing about Kawi.

How do I make the font and the keyboard available to other apps?

To make the Tantular Kawi font available to other apps, go to the Font pane of the Aksara Kawi app, tap the “Tantular Kawi” button, and confirm the installation.

To make the keyboard available to other apps, go to the Keyboard pane of the Aksara Kawi app, and follow the instructions there.

Do all iOS apps work with this font and keyboard?

The Tantular Kawi font only becomes available in apps that let users choose fonts using an OS-provided font menu, including Pages, Keynote, Numbers, Notability, Affinity Designer, Photoshop, Clip Studio Paint. The keyboard can theoretically be used in other apps, but without a Kawi font available that’s not really useful.

The Notability app supports entering and displaying Kawi text quite well. Pages, Keynote, and Numbers unfortunately block all Kawi input. We haven’t tested other apps yet.

Other questions?