FontPrism v0.1 · open source
FONTPRISMparametric font compiler

Aa

Endless font variations,
refracted from a single source.

⚠ Work in progress — not all features are implemented yet.

FontPrism logo
Discipline
Type design, code-driven
Format
TrueType (.ttf)
Inputs
Plain-text config files
License
Open source
01The premise

A font is code, not a collection of drawings.

Change the stroke once and the change ripples through every letter.

Most type is drawn glyph by glyph. FontPrism takes the opposite path: every letter is a recipe — a sequence of strokes, arcs, and serifs assembled from shared geometric primitives.

The recipe reads parameters from a plain-text config — stroke, cap_height, x_height, cap_style, advance_O, and dozens more. Adjust one value and the entire alphabet rebuilds in seconds, kerning and metrics adapting in step.

The current default is StickFigure — a deliberately minimal stroked face built from straight lines and circular arcs. It's a starting point, not the destination. New letterforms are written as code and become available as drop-in style options.

02StickFigure · the default cut
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789 .,:;!?&
144 / Aa Refracted
72 / Aa Quartz prism quietly bends light
36 / Aa A font is a function of its parameters; here, finally, the function is the artifact.
18 / Aa The default StickFigure cut is composed entirely of straight lines and segments of circles. Adjust a single number and the whole alphabet recomposes around it, the way a wave changes its shape when you change its frequency. Type, but parametric.
03Playground · drag to refract

Type something. Move a slider. Watch it bend.

⚠ Preview only — stroke, x-height, and B waistline are live; other parametric axes still illustrate planned behavior.

Endless font variations
size 120px
tracking 0
leading 1.05
parametric axes stroke, x-height, and B waistline are variable
stroke 70
x_height 520
b_waistline 350
# MyFont.txt
stroke      = 70
x_height    = 520
b_waistline = 350
cap_height  = 700
04A few preset shifts

One source. Hundreds of cuts.

b
Thinstroke = 10
b
Regularstroke = 70
b
Thickstroke = 120
x
Short x-heightx_height = 440
x
Regular x-heightx_height = 520
x
Tall x-heightx_height = 590
B
Low B waistb_waistline = 280
B
Regular B waistb_waistline = 350
B
High B waistb_waistline = 430
05Where it sits

A small, stubborn lineage of parametric type.

"A font of type is a function of its parameters."

The idea that letterforms should be described by formulas rather than hand-drawn outlines is older than the desktop computer, and has never quite become the mainstream. FontPrism is a small entry in that tradition.

  • 1977
    Metafont · Donald Knuth
    Letters as pen strokes parameterized by weight, slant, and shape. The original argument that a font is a program.
  • 1986
    Intellifont · Compugraphic / HP
    Outlines synthesized at print time from a small parametric description. The unsung commercial cousin.
  • 1991
    Multiple Master · Adobe
    Two-axis interpolation between master designs. The seed of today's variable fonts.
  • 2016
    OpenType Variations
    Variable axes ship in every modern OS — but the masters are still drawn by hand.
  • today
    FontPrism
    A pragmatic Python build pipeline: text-file parameters, plug-in glyph recipes, ttf out the other end.
06Get the source

Read the code. Tweak a parameter. Build a font.

FontPrism is a Python project. It runs in Docker, reads plain-text configs, and writes a .ttf. That's the whole loop.

Inputs
Plain-text config · CLI flags · Python API
Outputs
TrueType (.ttf) · TTX dump · numbered build artifacts
Runtime
Python · fontTools · Docker (recommended)
Status
v0.1 — single cut, growing toolkit