A collection of custom fonts, experimental font transformations, degradation sequences, visualization tools, and document-generation utilities built on FontTools.
The project explores the idea that typography can be treated as a dynamic process rather than a fixed object. Fonts become trajectories. Glyphs become evolving structures. Documents become experiments in legibility, decay, distortion, erosion, collapse, and transformation.
The repository contains:
- Original fonts
- Styled variants
- Experimental transformations
- Automated sequence generators
- Compound degradation models
- HTML preview tools
- LaTeX degradation-document generators
- Diagnostic and debugging utilities
pip install fonttoolsOptional:
pip install brotli
pip install lxmlFor LaTeX generation:
sudo apt install texlive-fullor at minimum:
sudo apt install texlive-luatexExamples:
Sga-Regular.ttf
Systada-Regular.ttf
NovaMonoStandardGalactic.ttf
Cheiro-Regular.ttf
Clypto-Regular.ttf
shapeform.ttf
dactyl.ttf
These serve as source material for transformations.
styled_fonts/
Contains manually generated style variants:
bold
italic
expand
condense
outline
shadow
experiments/static/
Contains one-off transformed fonts.
Examples:
jitter
wave
quantize
shear
collapse
droop
dropout
asc_evap
experiments/sequences/
Each directory contains a progressive transformation.
Example:
Sga-Regular_jitter_seq/
Sga-Regular_jitter_000.ttf
Sga-Regular_jitter_001.ttf
...
Sga-Regular_jitter_007.ttf
Sequence 000 is closest to the original.
Sequence 007 is the most transformed.
These are intended for animation, visualization, or document degradation experiments.
experiments/compound/
Contains multi-stage degradation models.
Examples:
full_decay
dissolution
wave_erosion
geological
These combine multiple transformations into a single progression.
Main generator:
python make_experiments.pyThis creates:
experiments/static/
experiments/sequences/
experiments/compound/
depending on configuration.
Generated fonts are normalized before saving to prevent coordinate overflow.
python check-glyphs.pyUsed to verify:
- Missing glyphs
- Broken contours
- Coordinate issues
- Encoding problems
Logs:
errors.log
detailed-errors.log
Common failure:
Value does not fit in format h
This means transformed coordinates exceeded the TrueType signed 16-bit range.
The generator should normalize coordinates before writing.
Generate a visual contact sheet:
python sample_sequence.py \
--fonts experiments/sequences/Sga-Regular_jitter_seq \
--out preview.htmlOpen:
firefox preview.htmlor
python -m http.serverthen visit:
http://localhost:8000
The repository includes:
make_degradation_doc.py
This converts a sequence of fonts into a progressively mutating document.
Example:
python make_degradation_doc.py \
--fonts experiments/sequences/Sga-Regular_jitter_seq \
--text source.txt \
--granularity paragraph \
--out outputEach paragraph receives a different font.
--granularity paragraphEach sentence receives a different font.
--granularity sentenceEach word receives a different font.
--granularity wordThis often creates striking degradation effects.
Fonts change every simulated page.
--granularity pageAfter generation:
cd output
lualatex main.texOutput:
main.pdf
The PDF gradually transitions through the font sequence.
Use:
full_decay
to simulate archival deterioration.
Use:
geological
to create slow structural mutation.
Use:
dropout
or
collapse
to model information loss.
Use:
wave
or
wave_erosion
to simulate transmission instability.
Potential applications include:
- Procedural typography
- Experimental publishing
- Visual cryptography
- Artificial writing systems
- Information decay studies
- Archival aesthetics
- Legibility experiments
- Computational paleography
- Dynamic manuscripts
- Generative art
Generate transformations:
python make_experiments.pyInspect sequences:
python sample_sequence.py \
--fonts experiments/sequences/Sga-Regular_jitter_seqGenerate a document:
python make_degradation_doc.py \
--fonts experiments/sequences/Sga-Regular_jitter_seq \
--text source.txtCompile:
cd output
lualatex main.texStudy the resulting progression from stable typography to transformed typography.
See:
LICENSE
for licensing information.