The writing system of the Culture, from the novels of Iain M. Banks
Marain is a constructed language designed by the Culture's artificial Minds — engineered from scratch to make egalitarian, non-hierarchical thinking the path of least resistance. Its writing system uses a 3×3 binary grid: each cell is filled or empty, producing 512 possible glyphs. The grid is orientation-invariant — there is no privileged reading direction.
This table shows every assigned symbol in the current marainkit specification: 32 phonemes (Banks' corrected table), 8 structurally invariant glyphs, 7 base-8 numerals, and operators and delimiters. Each row shows the glyph index, its inline SVG icon, how it renders in two reference fonts, its keyboard input, and its meaning.
github.com/marainkit/marain — spec, encoding decisions, phoneme inventory, and project rationale
32 phonemes (Banks, corrected) · 8 invariants · 7 numerals · sorted by index · Icon: squares renderer · Banks font by Tom Cully · Regular font by bianc0niglio · /ng/ → #286 · /th/ → #447
Key column: the keystroke(s) used to input this glyph directly. IME = no direct key — accessed via input method (type name or meaning to select).
| # | Name | Icon | Banks | Marain Regular | Key | Meaning(s) | Proposed by |
|---|---|---|---|---|---|---|---|
| 0 | "Empty" · *líng* · *nuul* | — | — | space | Silence · null · word space · zero | marainkit | |
| 1 | *yī* | — | — | 1 | Octal digit 1 | Banks (implied) | |
| 3 | *èr* | — | — | 2 | Octal digit 2 | marainkit | |
| 5 | *paa* | — | — | IME | Fear 😨 | zakalwe2040 | |
| 7 | *sān* | — | — | 3 | Octal digit 3 | marainkit | |
| 13 | *bay* | — | — | IME | Sadness 😢 | zakalwe2040 | |
| 15 | *sì* | — | — | 4 | Octal digit 4 | marainkit | |
| 16 | "Point" | — | — | Singularity · decimal point | marainkit | ||
| 21 | *gang* | — | — | IME | Affection 😘 | zakalwe2040 | |
| 31 | *wǔ* | — | — | 5 | Octal digit 5 | marainkit | |
| 45 | *buz* | — | — | IME | Overwhelmed 😭 | zakalwe2040 | |
| 62 | *pil* | — | — | IME | Fatigue 🥱 | zakalwe2040 | |
| 63 | *liù* | — | — | 6 | Octal digit 6 | marainkit | |
| 85 | *shaa* | — | — | IME | Laughter 🤣 | zakalwe2040 | |
| 87 | /tch/ | ĉ | — | Phoneme | Banks | ||
| 118 | /oh/ | o | i | o | Phoneme | Banks | |
| 121 | /w/ | w | h | w | Phoneme | Banks | |
| 127 | *qī* | — | — | 7 | Octal digit 7 | marainkit | |
| 143 | /ah/ | a | n | Phoneme | Banks | ||
| 149 | *ging* | — | — | IME | Sympathy 🥺 | zakalwe2040 | |
| 170 | "Diamond" | — | a | Danger · hazard | marainkit | ||
| 173 | /h/ | h | y | h | Phoneme | Banks | |
| 174 | /ch/ | c | — | Phoneme | Banks | ||
| 175 | *hub* | — | — | IME | Love 💛 | zakalwe2040 | |
| 181 | *shacha* | — | — | IME | Greetings · peace · hello · bye 🖖 | zakalwe2040 | |
| 186 | "Cross" | - | z | Alert · stop | marainkit | ||
| 187 | /l/ ⚠ 1 bit from #186 Cross | l | - | l | Phoneme | Banks | |
| 189 | /z/ | z | w | z | Phoneme | Banks | |
| 220 | *wun* | — | — | IME | Warmth 💕 | zakalwe2040 | |
| 221 | *zang* | — | — | IME | Surprise 😲 | zakalwe2040 | |
| 242 | /g/ | g | — | g | Phoneme | Banks | |
| 247 | /y/ | y | — | y | Phoneme | Banks | |
| 251 | /n/ | n | — | n | Phoneme | Banks | |
| 253 | *shuu* | — | — | IME | Infatuation 😍 | zakalwe2040 | |
| 266 | *samara* | — | — | IME | Fascination · logic understood 🤨 | zakalwe2040 | |
| 277 | *mar* | — | — | IME | Joy 😂 | zakalwe2040 | |
| 286 | /ng/ | ň | — | Phoneme | Banks | ||
| 305 | /uh/ | u | — | Phoneme | Banks | ||
| 307 | /ih/ | i | b | Phoneme | Banks | ||
| 309 | *hoo* | — | — | IME | Happiness 😊 | zakalwe2040 | |
| 317 | /t/ | t | — | t | Phoneme | Banks | |
| 319 | /f/ | f | — | f | Phoneme | Banks | |
| 325 | "Corners" | — | — | Boundary · perimeter · limit | marainkit | ||
| 334 | *fin* | — | — | IME | Anger 😡 | zakalwe2040 | |
| 338 | *yam* | — | — | IME | Hope 🙏 | zakalwe2040 | |
| 341 | "Checkerboard" | — | — | Noise · interference · maximum intensity | marainkit | ||
| 342 | /s/ | s | g | s | Phoneme | Banks | |
| 347 | /sh/ | q | — | Phoneme | Banks | ||
| 365 | *shii* | — | — | IME | Synchronicity 😉 | zakalwe2040 | |
| 367 | /v/ | v | r | v | Phoneme | Banks | |
| 371 | /oo/ | ó | — | Phoneme | Banks | ||
| 403 | /d/ | d | — | d | Phoneme | Banks | |
| 405 | *shai* | — | — | IME | Agreement 👍 | zakalwe2040 | |
| 431 | /je/ | j | — | Phoneme | Banks | ||
| 437 | *zing* | — | — | IME | Positivity ✨ | zakalwe2040 | |
| 444 | /k/ | k | — | k | Phoneme | Banks | |
| 447 | /th/ | x | — | Phoneme | Banks | ||
| 469 | /ll/ | ć | — | Phoneme | Banks | ||
| 477 | /ee/ | e | — | Phoneme | Banks | ||
| 483 | /eh/ | é | — | Phoneme | Banks | ||
| 484 | /m/ | b | — | m | Phoneme | Banks | |
| 489 | /p/ | p | — | p | Phoneme | Banks | |
| 490 | /ay/ | ý | — | a | Phoneme | Banks | |
| 495 | "Frame" | 0 | t | Enclosure · bracket · container | marainkit | ||
| 500 | /b/ | b | — | b | Phoneme | Banks | |
| 501 | *lang* | — | — | IME | Romance 🥰 | zakalwe2040 | |
| 509 | /r/ | r | — | r | Phoneme | Banks | |
| 511 | "Full" | — | — | Full stop · header · maximum · critical | marainkit |