summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorla-ninpre <aaoth@aaoth.xyz>2025-12-01 23:10:25 +0300
committerla-ninpre <aaoth@aaoth.xyz>2025-12-02 08:16:30 +0300
commitc388bf1701a4af8fd80e3167e4d33b5ff68b2554 (patch)
treedf1870ff13b0a90ec7aa1b9fbd870a9229f2ff0b
parent2723c5941ae7ab6a918971109c2ce434bb5e3830 (diff)
downloadaaothxyz-decadv-c388bf1701a4af8fd80e3167e4d33b5ff68b2554.tar.gz
aaothxyz-decadv-c388bf1701a4af8fd80e3167e4d33b5ff68b2554.zip
day 01: added ukarpangooth initial description, no images yet
-rw-r--r--decadv-2025.html15
-rw-r--r--ukarpanghooth.html123
2 files changed, 137 insertions, 1 deletions
diff --git a/decadv-2025.html b/decadv-2025.html
index 33bf9ae..f4538ad 100644
--- a/decadv-2025.html
+++ b/decadv-2025.html
@@ -24,7 +24,20 @@
<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>
diff --git a/ukarpanghooth.html b/ukarpanghooth.html
new file mode 100644
index 0000000..dfbefa2
--- /dev/null
+++ b/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> \ No newline at end of file