Skip to content
sundymePublic

About

Punctum: a free variable dot-matrix typeface. 5×7 dots, two axes: dot size and dot shape. 可变点阵字体

Topics

Resources

Stars

51 stars

Watchers

1 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

Repository files navigation

Punctum 字体网站首屏:PUNCTUM 七个字母由白色圆点组成,镜头下的点变大变方

Punctum 可变点阵字体

每个字母由 35 盏灯组成。 Punctum 是一款免费开源的可变点阵字体:5 × 7 点阵,两条轴分别控制点的大小和点的形状,从针孔 LED 到方块像素。

网站 · 下载 · 第一版页面 · 创作过程 · English


特点 Features

  • 一张连续的点阵。 点距 100 单位,字宽 600,行高 1000。相邻的字、上下的行,所有点都落在同一张网格上,排出来像一整块显示屏。
  • 真正的下伸部。 大写占 5 × 7,小写另有 2 行下伸部,g、j、p、q、y 不用压扁。
  • 两条可变轴,一个字体文件。 每个点在所有母版里都是同一条 16 个点的二次曲线,两条轴可以任意组合。
  • 108 个字符。 完整 ASCII,加上发车屏常用的 ° · • … × — ← ↑ → ↓ ♥ ■。
  • 18 个命名样式。 Thin 到 Black 九个字重,各有圆点和 Pixel 两种。

两条轴 Axes

轴 范围 默认 作用
wght 100–900 400 点的大小。100 像针孔 LED,900 时点与点相接
ROND 0–100 100 点的形状。100 是圆点,0 是方形像素,中间是“方圆”

Punctum 字重和点形的样张


使用 Usage

桌面: 下载 Punctum.zip,安装 Desktop/Punctum[ROND,wght].ttf 这一个文件就够了。不支持可变字体的软件,装 Desktop/Static/ 里的 10 个静态字重。

网页:

@font-face {
  font-family: "Punctum";
  src: url("Punctum-VF.woff2") format("woff2");
  font-weight: 100 900;
}

.display {
  font-family: "Punctum";
  font-variation-settings: "wght" 400, "ROND" 100;
  font-size: 60px;   /* 10px 的整数倍,点阵就会落在整像素上 */
  line-height: 1;    /* 上下行的点阵连成一片 */
}

影片 Films

三支短片,画面和声音都是代码生成的。点击图片播放。

网页演示片 35 LIGHTS Premiere
Specimen · 网页演示 · 1:06 35 Lights · 字体即乐谱 · 0:42 Premiere · WebGL2 点光 · 1:20

另有 92 秒的合剪 Launch 和 35 Lights 的三种社媒画幅(16:9、9:16、2:3)。五支影片的源码在 films/,1080p 原片在 Releases · films-2026-10。


第一版和最终版 Two pages

字体在第一天就基本定型了。样张页做了两版:第一版是一张连续打印纸,最终版把整页做成一块点阵屏,暗的点也画出来,文字像翻牌一样滚动到位。

左边是第一版样张页,绿白条纹打印纸;右边是最终版,黑底点阵屏

两版都在线上:第一版 · 最终版。从一句“你能不能设计一款 dot matrix 字体”到现在的完整过程,写在创作过程里。


从源码构建 Build

需要 Python 3 和 fontTools(pip install fonttools brotli)。

python3 src/build.py      # 字形 → fonts/ 里的可变字体、静态字重和 woff2
python3 site/build.py     # 字体 + 模板 → docs/ 里的网站
python3 tools/release.py  # 打包 dist/Punctum.zip

想改哪个字母,就改 src/glyphs.py 里用 # 和 . 画的点阵,再重新构建。

src/glyphs.py                  点阵源数据,108 个字符
src/build.py                   生成字体文件
src/specimen.template.html     最终版样张页模板
site/first.html                第一版样张页,保持 2026-10-03 的原样
site/build.py                  生成 docs/
docs/                          GitHub Pages 网站,含影片和图片
films/                         五支影片的源码(画面引擎、配乐脚本)
fonts/                         构建好的字体文件

先例与差异 Prior art

用点来组字是很老的想法,Punctum 不是第一款点阵字体,也不是第一款用轴来控制点的大小和形状的字体。下面是我们知道的近亲。

字体 作者 / 年份 共同点 不同之处
Doto Óliver Lalan · 2024 · OFL 可变点阵;wght 控制点的大小,ROND 控制点的圆和方 思路最接近。Punctum 用 5 × 9 网格(大写占 5 × 7),Doto 用 6 × 10;Punctum 的字形逐字写成,字体文件由本仓库脚本生成,没有使用 Doto 的任何文件
Powerhouse Punctum Vincent Chan · 2023 · Powerhouse 博物馆定制 同名;同样来自打孔卡和点阵打印机 两者互不相关

5 × 7 网格的自由度很小,许多大写字母难免与几十年来的 LCD 和打印机字库相似,这是这种网格的共同语汇。


许可 License

  • 字体:SIL Open Font License 1.1。可以免费用于任何项目,包括商业项目,也可以修改和再发布。
  • 代码和网站:MIT。

Punctum 由 Claude(Opus 5.5)为 sundyme 设计。

About

Punctum: a free variable dot-matrix typeface. 5×7 dots, two axes: dot size and dot shape. 可变点阵字体

Topics

Resources

Stars

51 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages