all repos — aaothxyz-decadv @ c9b619a49e55d517783f562e2c13e095571a036f

aaoth.xyz website, but new.

ukarpanghooth.html (view raw)

  1<!doctype html>
  2<html lang="en">
  3<head>
  4	<meta charset="utf-8">
  5	<meta name="viewport" content="width=device-width, initial-scale=1.0">
  6	<title>ukarpanghooth — aaoth.xyz</title>
  7	<link href="style.css" rel="stylesheet"/>
  8</head>
  9<body>
 10	<nav>
 11		<ul>
 12			<li><a href="/">home</a></li>
 13		</ul>
 14	</nav>
 15<article>
 16<h1>ukarpanghooth</h1>
 17<h2>overview</h2>
 18<div class="win">
 19<p>the first writing system i'm going to talk about is ukarpanghooth
 20(meaning 'angular cut', <span class="nobreak">IPA: /ɤ.kaɾ.pan.ɡʱə.uːtʰ/</span>). it was actually
 21my first attempt to create a writing system. it's main purpose was just
 22to be unreadable by others (steganography? security by obscurity?).</p>
 23</div>
 24<h2>description</h2>
 25<div class="win">
 26<p>this is a simple alphabetic script based on latin alphabet. some
 27letter shapes are also influenced by runic scripts. the first version
 28(proto-ukarpangooth) was actually very similar to the latin alphabet,
 29so later it was modified, as an attempt to make it more unique and more
 30obscure. words are separated by a special symbol, so that sentences are
 31written together as one piece.</p>
 32
 33<figure>
 34<img src="ukarpanghooth-1.svg" alt="chart with three columns"/>
 35<figcaption>
 36correspondence between latin, proto-ukarpanghooth (abbreviated on the picture)
 37and ukarpanghooth. some intermediate letter forms are also shown.
 38numeral for digit zero is shown with an asterisk because it is not known
 39if the corresponding glyph was used as a zero in numbers.
 40</figcaption>
 41</figure>
 42
 43<p>there is one interesting aspect about it is the order and direction in
 44which it is written. initially it was done the usual way (well... for
 45some), right-to-left, top-to-bottom. then i came up with something
 46creative, writing it in groups of four letters in a square (top-right,
 47bottom-right, bottom-left, top-left). if the number of letters in a
 48sentence isn't divisible by four, letters are stretched to fit into
 49square shape. there also instances of it written snake-shaped, turning
 50by 90 degrees after each word.</p>
 51
 52<figure>
 53<img src="ukarpanghooth-2.svg" alt="two pieces of example text written differently"/>
 54<figcaption>
 55"example text in ukarpanghooth" written conventional way (on the left),
 56and maze-shaped (on the right). the latter writing direction was historically the first.
 57</figcaption>
 58</figure>
 59
 60<p>the name of the script suggests that one can cut it on something
 61(wood, stone, etc.), as only straight line segments are used.</p>
 62</div>
 63<h2>usage</h2>
 64<div class="win">
 65<p>as mentioned before, script's main purpose was to hide some information
 66(i once used it to cheat on a test in a physics class :D). mainly i
 67wrote english text. some time later i used it to write my unfinished
 68conlang named aihnth (<span class="nobreak">IPA: /a.ji.ən.tʰə/</span>).</p>
 69
 70<p>the script has some ornamental potential, as its glyphs are pretty
 71simple and use only straight lines.</p>
 72
 73<!--
 74<figure>
 75<img src="{}" alt=""/>
 76<figcaption>
 77st peter's cross with "hd un'nuhrthh fah'deelhrhu khotghu koth'h" written on it.
 78</figcaption>
 79</figure>
 80-->
 81</div>
 82<h2>font</h2>
 83<div class="win">
 84<p>actually, at first, i didn't think that it would be possible
 85to replicate this script's peculiar writing order in a computer
 86font. however, after reading some specs, decompiling some fonts and
 87experiments i've found a way to do it.</p>
 88
 89<p>open-type features allow two things: substitution (GSUB) and position
 90(GSUB) of glyphs. basically, we need to have three versions of each
 91letter: full size, half size and quarter size. then we substitute runs
 92of four letters with four quarter sized ones, three letters with two
 93quarters and one half, and, finally, two letters with two halves. the
 94only thing left is to use contextual postitioning to move each component
 95where it needs to be.</p>
 96
 97<pre>
 98<code>
 99@full = [a b c]; # full-size letters
100@half = [a.half b.half c.half]; # half-size letters
101@qrtr = [a.qrtr b.qrtr c.qrtr]; # quarter-size letters
102
103# helper lookups
104lookup full2qrtr {
105	sub @full by @qrtr;
106} full2qrtr;
107lookup full2half {
108	sub @full by @half;
109};
110
111# main substitution lookup
112lookup charBlock {
113	sub @full' lookup full2qrtr @full' lookup full2qrtr @full' lookup full2qrtr @full' lookup full2qrtr;
114	sub @full' lookup full2qrtr @full' lookup full2qrtr @full lookup full2half;
115	sub @full' lookup full2half @full' lookup full2half;
116} charBlock;
117</code>
118</pre>
119</div>
120</article>
121</body>
122</html>