alien-script-generator icon indicating copy to clipboard operation
alien-script-generator copied to clipboard

Procedurally generated front for alien languages

Procedurally generated fonts for alien languages

This project is a proof of concept to generate "fonts" for alien languages (e.g. for a sci-fi game).

Each font consists of the glyph images for 26 letters, 10 digits and a few punctuation characters.

Obviously alien languages would probably not follow these rules, this is an arbitrary decision to make them easy to compare visually. The algorithm could easily create hundreds of letters. Together with a (probably n-gram based) procedural sequence of these letters very different looking alien languages could be generated.

The following examples are automatically generated with the first 9 random seeds.

Each example has fairly consistent rules used to generate the glyphs for this language. The rules for digits vary slightly from the rules for letters. Punctuation glyphs are much simpler than normal letters but still follow similar construction rules. Operator glyphs are a bit more complex than punctuation glyphs. Three types of symmetrical brackets are available.

Have a look at the Lorem Ipsum links for each example. They show the two classical texts to show simple fonts: "The quick brown fox" and "Lorem ipsum". See whether you can spot the two numbers in the text (hint: they are surrounded by symmetrical brackets).

Each glyph is guaranteed to be distinct from all the other glyphs in the same font by pre-rendering and comparing pixel-wise during construction of the font. Unfortunately this can still produce visually very similar glyphs to us humans, but rest assured - the aliens have much more accurate visual perception and laugh at our problems to read their language.

Enhancement Ideas

  • variable width glyph (proportional instead of monospaced fonts)
  • add rule for closed loops
  • add rule to avoid crossing lines
  • add rule to prefer going forward
  • add probability to move next stroke in the same (similar) direction
  • recursive construction of glyphs (similar to Korean, Devanagari)
  • optionally create upper/lower case variants of letters
  • diacritic glyphs
  • support subsets (e.g. vowels) to follow separate rules (e.g. to be diacritics)
  • create TTF font
  • generate example fonts for "reference" rulesets (e.g. latin-looking glyphs) to verify quality of rules

Examples

Example 1

Link to Lorem Ipsum.

Letters

a b c d e f g h i j k l m n o p q r s t u v w x y z

Digits

0 1 2 3 4 5 6 7 8 9

Punctuation

point comma colon semicolon exclamation question plus minus mult div equal open_square_bracket close_square_bracket open_round_bracket close_round_bracket open_curly_bracket close_curly_bracket

Example 2

Link to Lorem Ipsum.

Letters

a b c d e f g h i j k l m n o p q r s t u v w x y z

Digits

0 1 2 3 4 5 6 7 8 9

Punctuation

point comma colon semicolon exclamation question plus minus mult div equal open_square_bracket close_square_bracket open_round_bracket close_round_bracket open_curly_bracket close_curly_bracket

Example 3

Link to Lorem Ipsum.

Letters

a b c d e f g h i j k l m n o p q r s t u v w x y z

Digits

0 1 2 3 4 5 6 7 8 9

Punctuation

point comma colon semicolon exclamation question plus minus mult div equal open_square_bracket close_square_bracket open_round_bracket close_round_bracket open_curly_bracket close_curly_bracket

Example 4

Link to Lorem Ipsum.

Letters

a b c d e f g h i j k l m n o p q r s t u v w x y z

Digits

0 1 2 3 4 5 6 7 8 9

Punctuation

point comma colon semicolon exclamation question plus minus mult div equal open_square_bracket close_square_bracket open_round_bracket close_round_bracket open_curly_bracket close_curly_bracket

Example 5

Link to Lorem Ipsum.

Letters

a b c d e f g h i j k l m n o p q r s t u v w x y z

Digits

0 1 2 3 4 5 6 7 8 9

Punctuation

point comma colon semicolon exclamation question plus minus mult div equal open_square_bracket close_square_bracket open_round_bracket close_round_bracket open_curly_bracket close_curly_bracket

Example 6

Link to Lorem Ipsum.

Letters

a b c d e f g h i j k l m n o p q r s t u v w x y z

Digits

0 1 2 3 4 5 6 7 8 9

Punctuation

point comma colon semicolon exclamation question plus minus mult div equal open_square_bracket close_square_bracket open_round_bracket close_round_bracket open_curly_bracket close_curly_bracket

Example 7

Link to Lorem Ipsum.

Letters

a b c d e f g h i j k l m n o p q r s t u v w x y z

Digits

0 1 2 3 4 5 6 7 8 9

Punctuation

point comma colon semicolon exclamation question plus minus mult div equal open_square_bracket close_square_bracket open_round_bracket close_round_bracket open_curly_bracket close_curly_bracket

Example 8

Link to Lorem Ipsum.

Letters

a b c d e f g h i j k l m n o p q r s t u v w x y z

Digits

0 1 2 3 4 5 6 7 8 9

Punctuation

point comma colon semicolon exclamation question plus minus mult div equal open_square_bracket close_square_bracket open_round_bracket close_round_bracket open_curly_bracket close_curly_bracket

Example 9

Link to Lorem Ipsum.

Letters

a b c d e f g h i j k l m n o p q r s t u v w x y z

Digits

0 1 2 3 4 5 6 7 8 9

Punctuation

point comma colon semicolon exclamation question plus minus mult div equal open_square_bracket close_square_bracket open_round_bracket close_round_bracket open_curly_bracket close_curly_bracket