Repository accompanying the publication:
Kadner, F., Keller, Y., & Rothkopf, C. (2021, May). AdaptiFont: Increasing Individuals’ Reading Speed with a Generative Font Model and Bayesian Optimization. In Proceedings of the 2021 CHI Conference on Human Factors in Computing Systems (pp. 1-11).
What is provided • Truetype fonts • Linux installation • Morph fonts
The official GitHub repository for the paper on AdaptiFont: Increasing individuals’ reading speed with a generative fontmodel and Bayesian optimization
This Repositiory supplys additional material for the paper on AdaptiFont: Increasing individuals’ reading speed with a generative font model and Bayesian optimization. Provided are usable fonts in the truetype font (.ttf) format from the centroids of the best clusters for all subjects, as well as a script that you can use to combine your own fonts from the NMF components.
Subject | Truetype font | NMF components | How it looks |
---|---|---|---|
1 | subject1.ttf | 4.56, 5.32, 5.57 | |
2 | subject2.ttf | 5.5, 1.89, 3.66 | |
3 | subject3.ttf | 4.56, 4.1, 6.41 | |
4 | subject4.ttf | 4.32, 3.76, 5.32 | |
5 | subject5.ttf | 4.39, 2.44, 5.59 | |
6 | subject6.ttf | 5.80, 1.1, 1.86 | |
7 | subject7.ttf | 6.63, 1.59, 2.54 | |
8 | subject8.ttf | 5.37, 3.54, 3.56 | |
9 | subject9.ttf | 4.27, 3.5, 4.15 | |
10 | subject10.ttf | 5.63, 5.38, 1.3 | |
11 | subject11.ttf | 5.7, 3.02, 3.08 |
- Clone this repository
- Install python header files
sudo apt install python3.6-dev
(May be called differently based on your python3 version) - (Optional) Create a fresh python 3 virtualenv and activate it for example using
sudo apt install virtualenv
,virtualenv venv --python=python3
,. venv/bin/activate
. I used 3.6.9, but most python 3 versions should do. - Install python dependencies
pip install numpy pillow matplotlib fontTools
- Install fontforge from ppa
sudo add-apt-repository ppa:silnrsi/smith-py3
sudo apt-get update
sudo apt install python3-fontforge
- You may need to install libfontforge-dev
sudo apt install libfontforge-dev
- Restart your Terminal and you should be ready to go creating your own fonts.
There is a tutorial provided on how to create your own fonts in Creating_Fonts.ipynb. For that you will need jupyter and matplotlib pip install jupyter matplotlib
. You can also start creating fonts directly from terminal using the create_font.py script. From the repositorys root call for example python3 font_factory/create_font.py example --nmf_dims 1,5,8 --out_folder example_fonts
to create a font called example.ttf
in example_fonts/example
with the NMF component weights of 1,5 and 8 for the 3 dimensions respectively.