day 01: added ukarpangooth initial description, no images yet
la-ninpre aaoth@aaoth.xyz
Mon, 01 Dec 2025 23:10:25 +0300
2 files changed,
137 insertions(+),
1 deletions(-)
M
decadv-2025.html
→
decadv-2025.html
@@ -24,7 +24,20 @@ change this.</p>
<p>in particular, i want not only to document each writing system, but to make a computer font for each one.</p> <h2 id="log">the log</h2> - <p>nothing here yet, come back tomorrow.</p> + <h3>2025-12-01</h3> + <p>started working on <a href="ukarpanghooth.html">ukarpanghooth</a> description. couldn't do images today, sorry...</p> + <p>also came up with a rough scheme on how to make each font:</p> + <ol> + <li>draw each glyph and glyph variant (inkscape)</li> + <li>save glyphs as individual svg files</li> + <li>load glyphs (fontforge)</li> + <li>tweak position and size (fontforge)</li> + <li>export as ufo (fontforge)</li> + <li>add opentype fea</li> + <li>compile (fontmake/fontc)</li> + <li>test (browser, libreoffice, harfbuzz, pango), looping back to 1-7 as needed</li> + <li>verify metadata and upload</li> + </ol> </section> </body> </html>
A
ukarpanghooth.html
@@ -0,0 +1,123 @@
+<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>ukarpanghooth — aaoth.xyz</title> + <style> + html{background:#777} + body{margin:1em auto;max-width:850px;color:#000;background:#fff;padding:0.5em;border:4px solid #5aa} + a{color:#005;} + img{max-width:100%} + pre{overflow:scroll} + </style> +</head> +<body> + <section> + <h1>ukarpanghooth</h1> +<h2>overview</h2> + +<p>the first writing system i'm going to talk about is ukarpanghooth +(meaning 'angular cut', IPA: /ɤ.kaɾ.pan.ɡʱə.uːtʰ/). it was actually +my first attempt to create a writing system. it's main purpose was just +to be unreadable by others (steganography? security by obscurity?).</p> + +<h2>description</h2> + +<p>this is a simple alphabetic script based on latin alphabet. some +letter shapes are also influenced by runic scripts. the first version +(proto-ukarpangooth) was actually very similar to the latin alphabet, +so later it was modified, as an attempt to make it more unique and more +obscure. words are separated by a special symbol, so that sentences are +written together as one piece.</p> + +<!-- +<figure> +<img src="{}" alt=""/> +<figcaption> +proto-ukarpanghooth, ukarpanghooth, comparison with latin +</figcaption> +</figure> +--> + +<p>there is one interesting aspect about it is the order and direction in +which it is written. initially it was done the usual way (well... for +some), right-to-left, top-to-bottom. then i came up with something +creative, writing it in groups of four letters in a square (top-right, +bottom-right, bottom-left, top-left). if the number of letters in a +sentence isn't divisible by four, letters are stretched to fit into +square shape. there also instances of it written snake-shaped, turning +by 90 degrees after each word.</p> + +<!-- +<figure> +<img src="{}" alt=""/> +<figcaption> +example text, writing direction outline +</figcaption> +</figure> +--> + +<p>the name of the script suggests that one can cut it on something +(wood, stone, etc.), as only straight line segments are used.</p> + +<h2>usage</h2> + +<p>as mentioned before, script's main purpose was to hide some information +(i once used it to cheat on a test in a physics class :D). mainly i +wrote english text. some time later i used it to write my unfinished +conlang named aihnth (IPA: /a.ji.ən.tʰə/).</p> + +<p>the script has some ornamental potential, as its glyphs are pretty +simple and use only straight lines.</p> + +<!-- +<figure> +<img src="{}" alt=""/> +<figcaption> +st peter's cross with "hd un'nuhrthh fah'deelhrhu khotghu koth'h" written on it. +</figcaption> +</figure> +--> + +<h2>font</h2> + +<p>actually, at first, i didn't think that it would be possible +to replicate this script's peculiar writing order in a computer +font. however, after reading some specs, decompiling some fonts and +experiments i've found a way to do it.</p> + +<p>open-type features allow two things: substitution (GSUB) and position +(GSUB) of glyphs. basically, we need to have three versions of each +letter: full size, half size and quarter size. then we substitute runs +of four letters with four quarter sized ones, three letters with two +quarters and one half, and, finally, two letters with two halves. the +only thing left is to use contextual postitioning to move each component +where it needs to be.</p> + +<pre> +<code> +@full = [a b c]; # full-size letters +@half = [a.half b.half c.half]; # half-size letters +@qrtr = [a.qrtr b.qrtr c.qrtr]; # quarter-size letters + +# helper lookups +lookup full2qrtr { + sub @full by @qrtr; +} full2qrtr; +lookup full2half { + sub @full by @half; +}; + +# main substitution lookup +lookup charBlock { + sub @full' lookup full2qrtr @full' lookup full2qrtr @full' lookup full2qrtr @full' lookup full2qrtr; + sub @full' lookup full2qrtr @full' lookup full2qrtr @full lookup full2half; + sub @full' lookup full2half @full' lookup full2half; +} charBlock; +</code> +</pre> + + </section> +</body> +</html>