01 type Session = {
02 id: string;
03 active: boolean;
04 };
05
06 const result = await deploy({
07 id: "LD-042", active: true,
08 }); // input -> output
Code has
a voice.
A technical companion to Ludic Sans for interfaces, terminals, data, diagrams, and everything that needs to line up without going quiet.
const future = await agent.build("type");
01 / Cell discipline
Every character gets the same room.
Different silhouettes, identical advances. The grid stays intact from a whisper to a warning.
000000000000000000000000
iiiiiiiiiiiiiiiiiiiiiiii
WWWWWWWWWWWWWWWWWWWWWWWW
Mi.0O1lI|{}[]()<>/\!?@#
02 / Identity
Designed for the characters that cause mistakes.
Ambiguity is tested in context, where a glyph has to work—not in an isolated alphabet poster.
AMBIGUITY MATRIX / DEFAULT
| Probe | Glyphs | Identifier |
|---|---|---|
| Zero / O | 0 O Ø | O0_AUTH_08 |
| One / line | 1 l I | | llI1_PIPE |
| Brackets | { } [ ] ( ) | map[key_01] |
| Marks | . , : ; ' ` | v1.10::next |
| Operators | - = ~ < > | a != b -> c |
IDENTIFIER STRESS / 14PX
request_0O1lI_2026
API_KEY="Il10O0-ff"
release/v3.2.0-rc.01
sha256:7f0a1c9e42bd
192.168.001.010:4173
03 / Working languages
One rhythm across the stack.
Four syntax densities expose punctuation, indentation, numerals, casing, and optional coding ligatures.
01 {
02 "family": "Ludic Mono",
03 "axes": ["wght", "slnt", "opsz"],
04 "fixedPitch": true,
05 "build": 20260711,
06 "probe": "0O1lI"
07 }
01 #!/usr/bin/env zsh
02 set -euo pipefail
03
04 bun run build && bun run check
05 git status --short
06 printf '%-12s %08d\n' "done" 42
07 # source -> variable.woff2
01 SELECT
02 account_id,
03 annual_value,
04 renewal_date
05 FROM accounts
06 WHERE status != 'paused'
07 AND annual_value >= 10000
08 ORDER BY renewal_date;
04 / Terminal graphics
Lines meet. Blocks hold.
Complete box drawing and block elements keep dashboards, CLIs, and text diagrams continuous.
┌────────────────────┬──────────┐
│ JOB │ STATUS │
├────────────────────┼──────────┤
│ build_variable_042 │ ███████░ │
│ subset_latin_core │ ▓▓▓▓▒░░░ │
│ deploy_production │ ████████ │
└────────────────────┴──────────┘
▁▂▃▄▅▆▇█
█▉▊▋▌▍▎▏
░▒▓█▓▒░
▖▗▘▙▚▛▜▝▞▟
05 / Variable proofs
Three axes. One fixed rhythm.
Weight carries hierarchy, slant signals motion, and optical size adjusts the drawing without changing the voice.
Weight / wght
100 ship --dry-run
200 ship --dry-run
300 ship --dry-run
400 ship --dry-run
500 ship --dry-run
600 ship --dry-run
700 ship --dry-run
800 ship --dry-run
900 ship --dry-run
Slant / slnt
0° await response
−4° await response
−8° await response
−12° await response
Optical size / opsz
09 data_pipeline_01
16 data_pipeline_01
48 data_pipeline_01
96 data_pipeline_01
06 / Interface sizes
Read it where software actually lives.
Small sizes are shown at literal CSS pixels on both sides of the theme.
11px GET /v1/accounts/0O1lI · 200 OK · 42ms
12px build_042 completed with 0 warnings
14px const status = response.ok;
16px Deploy ready for review →
11px GET /v1/accounts/0O1lI · 200 OK · 42ms
12px build_042 completed with 0 warnings
14px const status = response.ok;
16px Deploy ready for review →
07 / Product language
Identifiers travel, too.
Precomposed accents, combining marks, Vietnamese, Russian, and Ukrainian appear in code-like contexts.
VI / Vietnamese
người_dùng = "Nguyễn Ánh";
đồng_bộ(trạng_thái);
phiên_bản_đầu = 2026;
tài_khoản.đã_xác_minh
RU / Russian
пользователь_01
синхронизация = готово;
версия_сборки_042
статус != "ошибка"
UK / Ukrainian
користувач_їжак
синхронізація = готова;
версія_збірки_042
стан != "помилка"