skill / noahs-dot-font
!

Not installable via adompkg

This skill has no published release. adompkg install kyle/noahs-dot-font will not work until a maintainer publishes a tarball with install.sh and uninstall.sh.

See the publishing docs for the package.json schema and tarball layout required to ship this skill.

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.