Skip to main content

The Center

CodexMono is The Brick - the fundamental unit that enables Monokinetics: unified Human + AI experience through predictable, trustable visual alignment.

Rendering Pipeline

+-----------------------------------------------------------------------------+
|                    MONOLEX TERMINAL RENDERING PIPELINE                       |
+-----------------------------------------------------------------------------+
|                                                                              |
|   +-----------------------------------------------------------------------+  |
|   |  PTY Daemon (Rust)                                                    |  |
|   |  Raw byte stream --- No interpretation --- Unix socket                |  |
|   +------------------------------------+----------------------------------+  |
|                                        |                                     |
|                                        v                                     |
|   +-----------------------------------------------------------------------+  |
|   |  Alacritty VTE Parser (Rust)                                          |  |
|   |  - Unicode width detection                                            |  |
|   |  - CJK characters flagged as wide (width=2)                           |  |
|   |  - Spacer cells for wide character placeholders                       |  |
|   +------------------------------------+----------------------------------+  |
|                                        |                                     |
|                                        v                                     |
|   +-----------------------------------------------------------------------+  |
|   |  Cell Converter                                                       |  |
|   |  Alacritty Cell ----> xterm.js Cell (width pre-encoded)               |  |
|   +------------------------------------+----------------------------------+  |
|                                        |                                     |
|                                        v                                     |
|   +-----------------------------------------------------------------------+  |
|   |  Tauri emit() to Frontend                                             |  |
|   |  JSON payload with pre-calculated widths                              |  |
|   +------------------------------------+----------------------------------+  |
|                                        |                                     |
|                                        v                                     |
|   +-----------------------------------------------------------------------+  |
|   |  Direct Buffer Injection                                              |  |
|   |  No intermediate parsing --- Maximum performance                      |  |
|   +------------------------------------+----------------------------------+  |
|                                        |                                     |
|                                        v                                     |
|   +-----------------------------------------------------------------------+  |
|   |  xterm.js Buffer + WebGL Renderer                                     |  |
|   |  CodexMono font --- 600 units per cell --- Perfect alignment          |  |
|   +-----------------------------------------------------------------------+  |
|                                                                              |
+------------------------------------------------------------------------------+

The No-Fallback Philosophy

+-----------------------------------------------------------------------------+
|                        THE NO-FALLBACK PHILOSOPHY                            |
+-----------------------------------------------------------------------------+
|                                                                              |
|   +-----------------------------+    +-----------------------------+         |
|   |    WITH FALLBACK (BROKEN)   |    |  WITHOUT FALLBACK (TRUST)   |         |
|   +-----------------------------+    +-----------------------------+         |
|   |                             |    |                             |         |
|   |  Font A: "x = "             |    |  CodexMono: "x = SIGMA y"   |         |
|   |  Font B: "SIGMA" (wrong!)   |    |            All 600 units    |         |
|   |  Font A: " y"               |    |            Perfect align    |         |
|   |                             |    |                             |         |
|   |  Result: x = SIGMA   y      |    |  Result: x = SIGMA y        |         |
|   |              ^^^^^          |    |          ^^^^^^^^^^^^       |         |
|   |          MISALIGNED         |    |          ALIGNED            |         |
|   +-----------------------------+    +-----------------------------+         |
|                                                                              |
+-----------------------------------------------------------------------------+

The Trust Equation

   Completeness
        |
        v
   No Fallback
        |
        v
   Consistent Width
        |
        v
   Perfect Alignment
        |
        v
   Visual Trust
        |
        v
   Shared Understanding
        |
        v
   MONOKINETICS

Character Coverage

+-----------------------------------------------------------------------------+
|                      CHARACTER COVERAGE BY CATEGORY                          |
+-----------------------------------------------------------------------------+
|                                                                              |
|   Category 1: Base Latin (inherited from JetBrains Mono)                     |
|   +-----------------------------------------------------------------------+  |
|   |  A-Z, a-z, 0-9, punctuation ----------> Fallback Risk: NONE           |  |
|   +-----------------------------------------------------------------------+  |
|                                                                              |
|   Category 2: Mathematical Notation (CodexMono added)                        |
|   +-----------------------------------------------------------------------+  |
|   |  Subscripts:   a e o x h k l m n p s t i r u v j                      |  |
|   |  Superscripts: 0 1 2 3 4 5 6 7 8 9 + - = ( ) i j m n                   |  |
|   |  ------------------------------------------------> Fallback Risk: NONE|  |
|   +-----------------------------------------------------------------------+  |
|                                                                              |
|   Category 3: Database Operators (CodexMono added)                           |
|   +-----------------------------------------------------------------------+  |
|   |  bowtie (natural join)  ltimes (left semijoin)  rtimes (right)        |  |
|   |  ------------------------------------------------> Fallback Risk: NONE|  |
|   +-----------------------------------------------------------------------+  |
|                                                                              |
|   Category 4: CJK (CodexMono-KR/EA variants)                                 |
|   +-----------------------------------------------------------------------+  |
|   |  Korean Hangul: 11,428 | Chinese Hanzi: 8,231 | Japanese Kana: 189    |  |
|   |  ------------------------------------------------> Fallback Risk: NONE|  |
|   +-----------------------------------------------------------------------+  |
|                                                                              |
+------------------------------------------------------------------------------+

The Five Alignment Rules

+-----------------------------------------------------------------------------+
|                         THE FIVE ALIGNMENT RULES                             |
+-----------------------------------------------------------------------------+
|                                                                              |
|  RULE 1: Box Width Consistency                                               |
|  +-----------------------------------------------------------------------+   |
|  |  All lines within a box must have the same visual width                |   |
|  +-----------------------------------------------------------------------+   |
|                                                                              |
|  RULE 2: Missing Inner Border Detection                                      |
|  +-----------------------------------------------------------------------+   |
|  |  Inner box closing characters must be present                          |   |
|  +-----------------------------------------------------------------------+   |
|                                                                              |
|  RULE 3: Inner Position Consistency                                          |
|  +-----------------------------------------------------------------------+   |
|  |  Double-line border positions must be consistent across all lines      |   |
|  +-----------------------------------------------------------------------+   |
|                                                                              |
|  RULE 4: Inner Border Width                                                  |
|  +-----------------------------------------------------------------------+   |
|  |  Top and bottom borders of inner boxes must match in width             |   |
|  +-----------------------------------------------------------------------+   |
|                                                                              |
|  RULE 5: Flow Diagram Recognition                                            |
|  +-----------------------------------------------------------------------+   |
|  |  Flow lines are NOT inner box issues - mark as false positive          |   |
|  +-----------------------------------------------------------------------+   |
|                                                                              |
+------------------------------------------------------------------------------+

Width Calculation Flow

+-----------------------------------------------------------------------------+
|                     VISUAL WIDTH ALGORITHM                                   |
+-----------------------------------------------------------------------------+
|                                                                              |
|   START: width = 0                                                           |
|           |                                                                  |
|           v                                                                  |
|   +---------------+                                                          |
|   | Get character |                                                          |
|   +-------+-------+                                                          |
|           |                                                                  |
|           v                                                                  |
|   +------------------------+                                                 |
|   | Control character?     |----YES----> width += 0, continue                |
|   | (code < 32)            |                                                 |
|   +-----------+------------+                                                 |
|               | NO                                                           |
|               v                                                              |
|   +------------------------+                                                 |
|   | ASCII?                 |----YES----> width += 1, continue                |
|   | (code < 127)           |            (FAST PATH)                          |
|   +-----------+------------+                                                 |
|               | NO                                                           |
|               v                                                              |
|   +------------------------+                                                 |
|   | Combining mark?        |----YES----> width += 0, continue                |
|   | (diacritics)           |            (Zero-width)                         |
|   +-----------+------------+                                                 |
|               | NO                                                           |
|               v                                                              |
|   +------------------------+                                                 |
|   | Wide character?        |----YES----> width += 2, continue                |
|   | (CJK, emoji)           |            (Double-width)                       |
|   +-----------+------------+                                                 |
|               | NO                                                           |
|               v                                                              |
|   +---------------+                                                          |
|   | width += 1    |                                                          |
|   | (Default)     |                                                          |
|   +---------------+                                                          |
|                                                                              |
|   RETURN width                                                               |
|                                                                              |
+------------------------------------------------------------------------------+

Width Categories

+-----------------------------------------------------------------------------+
|                          WIDTH TABLE SUMMARY                                 |
+-----------------------------------------------------------------------------+
|                                                                              |
|   Zero-Width (Combining Marks)                                               |
|   +-----------------------------------------------------------------------+  |
|   |  - Diacritical Marks (accents, umlauts)                               |  |
|   |  - Hebrew combining marks                                              |  |
|   |  - Zero-width spaces (ZWSP, ZWNJ, ZWJ)                                 |  |
|   |  - Variation Selectors                                                 |  |
|   +-----------------------------------------------------------------------+  |
|                                                                              |
|   Single-Width (1 cell)                                                      |
|   +-----------------------------------------------------------------------+  |
|   |  - ASCII characters (A-Z, a-z, 0-9, symbols)                           |  |
|   |  - Latin extended                                                      |  |
|   |  - Most Unicode symbols                                                |  |
|   +-----------------------------------------------------------------------+  |
|                                                                              |
|   Double-Width (2 cells)                                                     |
|   +-----------------------------------------------------------------------+  |
|   |  - Hangul Jamo                                                         |  |
|   |  - Hiragana + Katakana                                                 |  |
|   |  - CJK Unified Ideographs (~22,000 chars)                              |  |
|   |  - Hangul Syllables (~11,000 chars)                                    |  |
|   |  - Fullwidth ASCII                                                     |  |
|   |  - Emoji and pictographs                                               |  |
|   +-----------------------------------------------------------------------+  |
|                                                                              |
+------------------------------------------------------------------------------+

Width Consistency Chain

+-----------------------------------------------------------------------------+
|                     WIDTH CONSISTENCY CHAIN                                  |
+-----------------------------------------------------------------------------+
|                                                                              |
|   Stage 1: Document Creation                                                 |
|   +-----------------------------------------------------------------------+  |
|   |  Calculate visual width using Unicode tables                          |  |
|   +------------------------------------+----------------------------------+  |
|                                        |                                     |
|                      Same tables as xterm.js                                 |
|                                        |                                     |
|                                        v                                     |
|   Stage 2: Alacritty VTE Parsing                                             |
|   +-----------------------------------------------------------------------+  |
|   |  Detect width using unicode_width crate                               |  |
|   +------------------------------------+----------------------------------+  |
|                                        |                                     |
|                     Width encoded in cell data                               |
|                                        |                                     |
|                                        v                                     |
|   Stage 3: xterm.js Rendering                                                |
|   +-----------------------------------------------------------------------+  |
|   |  Apply width from pre-calculated data                                 |  |
|   +------------------------------------+----------------------------------+  |
|                                        |                                     |
|                      Consistent = proper alignment                           |
|                                        |                                     |
|                                        v                                     |
|   Stage 4: CodexMono Font Rendering                                          |
|   +-----------------------------------------------------------------------+  |
|   |  CJK glyphs: 1200 units = 2 cells                                     |  |
|   |  ASCII glyphs: 600 units = 1 cell                                     |  |
|   |  Monospace alignment maintained                                       |  |
|   +-----------------------------------------------------------------------+  |
|                                                                              |
|   RESULT: ASCII boxes align perfectly!                                       |
|                                                                              |
+------------------------------------------------------------------------------+

Wide Character Handling

+-----------------------------------------------------------------------------+
|                   WIDE CHARACTER HANDLING                                    |
+-----------------------------------------------------------------------------+
|                                                                              |
|   Input: "A" + CJK character                                                 |
|                                                                              |
|   Step 1: Parse 'A'                                                          |
|   +---------------------------+                                              |
|   | Cell {                    |                                              |
|   |   character: 'A',         |                                              |
|   |   width: 1                |                                              |
|   | }                         |                                              |
|   +---------------------------+                                              |
|                                                                              |
|   Step 2: Parse CJK - width detected as 2                                    |
|   +---------------------------+   +---------------------------+              |
|   | Cell {                    |   | Cell {                    |              |
|   |   character: CJK,         |   |   character: ' ',         |              |
|   |   width: 2                |   |   width: 0 (spacer)       |              |
|   |   flag: WIDE_CHAR         |   |   flag: WIDE_CHAR_SPACER  |              |
|   | }                         |   | }                         |              |
|   +---------------------------+   +---------------------------+              |
|        Primary cell                   Spacer cell                            |
|        (content here)                 (placeholder)                          |
|                                                                              |
|   Result: 3 cells total                                                      |
|   +-----+-------------+-------+                                              |
|   | 'A' |   CJK       | spacer|                                              |
|   | w=1 |    w=2      |  w=0  |                                              |
|   +-----+-------------+-------+                                              |
|   col:0    col:1        col:2                                                |
|                                                                              |
+------------------------------------------------------------------------------+

Font Configuration

+-----------------------------------------------------------------------------+
|                       FONT STACK CONFIGURATION                               |
+-----------------------------------------------------------------------------+
|                                                                              |
|   Priority Order:                                                            |
|   +----------+------------------+---------+----------+                       |
|   | Priority | Font Name        | Type    | Size     |                       |
|   +----------+------------------+---------+----------+                       |
|   | 1 (best) | CodexMono Simple | Static  | 581KB    |                       |
|   | 2        | CodexMono        | Variable| 299KB    |                       |
|   | 3        | Consolas         | System  | System   |                       |
|   | 4        | Monaco           | System  | System   |                       |
|   | 5 (worst)| monospace        | Generic | System   |                       |
|   +----------+------------------+---------+----------+                       |
|                                                                              |
|   WHY NO FONT PICKER:                                                        |
|   +-----------------------------------------------------------------------+  |
|   |  Traditional: User picks font that breaks alignment                   |  |
|   |  Monolex:     CodexMono IS the font - Only size adjustable            |  |
|   |                                                                       |  |
|   |  Benefits:                                                            |  |
|   |  - Perfect alignment guaranteed                                       |  |
|   |  - AI output works as intended                                        |  |
|   |  - Zero font-related support issues                                   |  |
|   |  - "It just works"                                                    |  |
|   +-----------------------------------------------------------------------+  |
|                                                                              |
+------------------------------------------------------------------------------+

The Brick: 600 Units

+-----------------------------------------------------------------------------+
|                         CODEXMONO FONT METRICS                               |
+-----------------------------------------------------------------------------+
|                                                                              |
|   THE BRICK = 600 units                                                      |
|                                                                              |
|   +------------------+-------------+------------------------------------+    |
|   | Metric           | Value       | Notes                              |    |
|   +------------------+-------------+------------------------------------+    |
|   | Units per EM     | 1000        | Standard TrueType                  |    |
|   | Narrow Width     | 600 units   | THE BRICK                          |    |
|   | Wide Width       | 1200 units  | CJK (2x THE BRICK)                 |    |
|   | Ascender         | 800 units   | Above baseline                     |    |
|   | Descender        | 200 units   | Below baseline                     |    |
|   +------------------+-------------+------------------------------------+    |
|                                                                              |
|   PIXEL CALCULATIONS:                                                        |
|   +-------+-----------+------------+----------------------------------+      |
|   | Size  | Cell Width| Cell Height| Use Case                         |      |
|   +-------+-----------+------------+----------------------------------+      |
|   | 12px  | 7.2px     | 14.4px     | Dense display                    |      |
|   | 14px  | 8.4px     | 16.8px     | DEFAULT - balanced               |      |
|   | 16px  | 9.6px     | 19.2px     | Comfortable reading              |      |
|   | 18px  | 10.8px    | 21.6px     | Large display                    |      |
|   | 20px  | 12.0px    | 24.0px     | Accessibility                    |      |
|   +-------+-----------+------------+----------------------------------+      |
|                                                                              |
|   Changing font size does NOT break alignment!                               |
|   The 600:1200 ratio is preserved at any size.                               |
|                                                                              |
+------------------------------------------------------------------------------+

The Trust Contract

+-----------------------------------------------------------------------------+
|                    HUMAN + AI = SAME VISUAL REALITY                          |
+-----------------------------------------------------------------------------+
|                                                                              |
|   TRADITIONAL:                                                               |
|   +-------------------+            +-------------------+                     |
|   | Human sees:       |            | AI sees:          |                     |
|   | Visual pixels     |            | Parsed text       |                     |
|   | (rendered font)   |            | (UTF-8 bytes)     |                     |
|   +---------+---------+            +---------+---------+                     |
|             |                                |                               |
|             +----------+    +---------+------+                               |
|                        v    v                                                |
|                     MISMATCH!                                                |
|                                                                              |
|   MONOKINETICS:                                                              |
|   +-------------------+            +-------------------+                     |
|   | Human sees:       |    ===     | AI sees:          |                     |
|   | Atomic Frame      |            | Atomic Frame      |                     |
|   | (CodexMono grid)  |            | (same cell data)  |                     |
|   +---------+---------+            +---------+---------+                     |
|             |                                |                               |
|             +----------+    +---------+------+                               |
|                        v    v                                                |
|                    IDENTICAL!                                                |
|                                                                              |
|   Both see:                                                                  |
|   - Same character at same position                                          |
|   - Same width for every character                                           |
|   - Same alignment, same structure                                           |
|   - Trust established through CodexMono                                      |
|                                                                              |
+------------------------------------------------------------------------------+

Key Principles

The No-Fallback Promise: Every character you type will render with the same width. No surprises. No substitutions. No broken alignment. What you see is what exists - in this font, completely. Width detection is the invisible foundation of terminal alignment. CodexMono + VTE Parser + Atomic Rendering form a chain of trust where every character’s width is calculated once, encoded efficiently, and rendered predictably. CodexMono is not just the default font for Monolex. It IS the visual foundation that enables Monokinetics. Without CodexMono, there is no 600-unit brick. Without the brick, there is no predictable alignment. Without alignment, Human and AI cannot share the same visual reality. Five rules govern alignment; break one, break them all.