Propose a change
Name Last commit message Last updated
dot-font-hero.png Migrate asset from Helium wiki 1mo ago
font-data.json Migrate asset from Helium wiki 1mo ago
font-export.json Migrate asset from Helium wiki 1mo ago
font-visual.txt Migrate asset from Helium wiki 1mo ago
install.sh Add adompkg installer files 1mo ago
package.json Add adompkg installer files 1mo ago
page.json Remove internal identifiers from page.json 11d ago
README.md Initial commit: skill/noahs-dot-font 1mo ago
SKILL.md Add adompkg installer files 1mo ago
uninstall.sh Add adompkg installer files 1mo ago

Noah's Dot Font

A hand-drawn 5x9 dot-matrix bitmap font with 54 glyphs (A-Z, 0-9, symbols, and a 9x9 logo mark). Each character is a grid of equally-spaced square dots. Designed for LED matrices, PCB silkscreen art, pixel displays, and decorative rendering.

Font specification

  • Standard glyphs: 5 columns x 9 rows
  • Logo glyph: 9 columns x 9 rows
  • Encoding: 1 = filled dot, 0 = empty
  • Average dots per letter (A-Z): 19.2
  • Total glyphs: 54 (26 letters + 10 digits + 17 symbols + 1 logo)

How to use

When rendering text in this font:

  • Draw each 1 in the bitmap as a filled square
  • Space dots equally (the gap between dots should be consistent)
  • Leave 1-2 dot widths between characters
  • Leave 3+ dot widths between words
  • The logo character renders at the same row height as standard glyphs but is nearly twice as wide (9 vs 5 columns)

Quick reference — all characters

Encoding: # = filled dot, . = empty

Uppercase A-H

  A       B       C       D       E       F       G       H
..#..   ####.   .###.   ####.   #####   #####   #####   #...#
.#.#.   #...#   #...#   #...#   #....   #....   #...#   #...#
#...#   #...#   #...#   #...#   #....   #....   #....   #...#
#...#   #...#   #....   #...#   #....   #....   #....   #...#
#####   ####.   #....   #...#   ####.   ####.   #.###   #####
#...#   #...#   #....   #...#   #....   #....   #...#   #...#
#...#   #...#   #...#   #...#   #....   #....   #...#   #...#
#...#   #...#   #...#   #...#   #....   #....   #...#   #...#
#...#   ####.   .###.   ####.   #####   #....   #####   #...#

Uppercase I-P

  I       J       K       L       M       N       O       P
#####   #####   #...#   #....   #...#   #...#   .###.   ####.
..#..   ..#..   #..#.   #....   ##.##   ##..#   #...#   #...#
..#..   ..#..   #.#..   #....   ##.##   ##..#   #...#   #...#
..#..   ..#..   ##...   #....   #####   #.#.#   #...#   #...#
..#..   ..#..   #....   #....   #.#.#   #.#.#   #...#   ####.
..#..   ..#..   ##...   #....   #.#.#   #.#.#   #...#   #....
..#..   ..#..   #.#..   #....   #...#   #..##   #...#   #....
..#..   #.#..   #..#.   #....   #...#   #..##   #...#   #....
#####   .#...   #...#   #####   #...#   #...#   .###.   #....

Uppercase Q-Z

  Q       R       S       T       U       V       W       X
.###.   ####.   .###.   #####   #...#   #...#   #...#   #...#
#...#   #...#   #...#   ..#..   #...#   #...#   #...#   #...#
#...#   #...#   #....   ..#..   #...#   #...#   #...#   .#.#.
#...#   #...#   #....   ..#..   #...#   #...#   #.#.#   .#.#.
#...#   ####.   .###.   ..#..   #...#   .#.#.   #.#.#   ..#..
#...#   #.#..   ....#   ..#..   #...#   .#.#.   #####   .#.#.
#.#.#   #..#.   ....#   ..#..   #...#   .#.#.   ##.##   .#.#.
#..#.   #...#   #...#   ..#..   #...#   ..#..   ##.##   #...#
.##.#   #...#   .###.   ..#..   .###.   ..#..   #...#   #...#

  Y       Z
#...#   #####
#...#   ....#
.#.#.   ...#.
.#.#.   ...#.
..#..   ..#..
..#..   .#...
..#..   .#...
..#..   #....
..#..   #####

Numbers

  0       1       2       3       4       5       6       7       8       9
#####   ..#..   .###.   .###.   ...#.   #####   .###.   #####   .###.   .###.
#...#   .##..   #...#   #...#   ..##.   #....   #...#   ....#   #...#   #...#
#...#   #.#..   ....#   ....#   .#.#.   #....   #....   ...#.   #...#   #...#
#...#   ..#..   ....#   ....#   .#.#.   #....   #....   ...#.   #...#   #...#
#...#   ..#..   ...#.   ..##.   #..#.   ####.   ####.   ..#..   .###.   .####
#...#   ..#..   ..#..   ....#   #####   ....#   #...#   ..#..   #...#   ....#
#...#   ..#..   .#...   ....#   ...#.   ....#   #...#   .#...   #...#   ....#
#...#   ..#..   #....   #...#   ...#.   #...#   #...#   .#...   #...#   #...#
#####   #####   #####   .###.   ...#.   .###.   .###.   #....   .###.   .###.

Symbols

  !       ?       .       ,       :       -       +       /
.##..   .###.   .....   .....   .....   .....   .....   ...#.
.##..   #...#   .....   .....   .....   .....   .....   ...#.
.##..   #...#   .....   .....   .....   .....   .....   ...#.
.##..   ....#   .....   .....   .....   .....   ..#..   ..#..
.##..   ...#.   .....   .....   .##..   .###.   .###.   ..#..
.##..   .##..   .....   .....   .##..   .....   ..#..   ..#..
.....   .....   .....   .....   .....   .....   .....   .#...
.##..   .##..   .##..   ..#..   ..#..   .....   .....   .#...
.##..   .##..   .##..   .#...   .#...   .....   .....   .#...

  (       )       '       #       @       *       =     SPACE
....#   #....   .#...   .#.#.   #####   .....   .....   .....
...#.   .#...   .#...   .#.#.   #...#   .....   .....   .....
...#.   .#...   .....   #####   #.###   .....   .....   .....
..#..   ..#..   .....   .#.#.   #.#.#   .#.#.   .###.   .....
..#..   ..#..   .....   .#.#.   #.#.#   ..#..   .....   .....
..#..   ..#..   .....   .#.#.   #.#.#   .#.#.   .###.   .....
...#.   .#...   .....   #####   #.###   .....   .....   .....
...#.   .#...   .....   .#.#.   #....   .....   .....   .....
....#   #....   .....   .#.#.   #####   .....   .....   .....

Logo (9x9)

.........
.....##..
....####.
....####.
....###..
.###.....
####.....
####.....
.##......

Programmatic data

The font is available as a JSON file (font-export.json) attached to this wiki page. Structure:

{
  "_meta": {
    "name": "Noah's Dot Font",
    "grid": { "standard": {"width": 5, "height": 9}, "logo": {"width": 9, "height": 9} }
  },
  "glyphs": {
    "A": {
      "char": "A",
      "width": 5,
      "height": 9,
      "dots": 20,
      "type": "standard",
      "bitmap": [[0,0,1,0,0],[0,1,0,1,0],...],
      "visual": ["..#..",".#.#.","#...#",...]
    },
    ...
  }
}

To render a string: for each character, look up glyphs[char].bitmap, iterate rows top-to-bottom, columns left-to-right, and draw a filled square at each 1 position.