{
  "schema_version": 1,
  "type": "skill",
  "slug": "noahs-dot-font",
  "title": "Noah's Dot Font",
  "brief": "Hand-drawn 5x9 dot-matrix bitmap font with 54 glyphs (A-Z, 0-9, symbols) and a 9x9 logo mark, for LED matrices, PCB silkscreen art, and pixel displays",
  "version": "1.0.0",
  "tags": [],
  "license": "MIT",
  "discovery_triggers": [
    "dot font",
    "noahs dot font",
    "noah's dot font",
    "pixel font",
    "bitmap font",
    "dot matrix font",
    "led matrix text",
    "led matrix font",
    "pcb silkscreen font",
    "5x9 font",
    "square dot font",
    "pixel text",
    "dot matrix text"
  ],
  "discovery_pitch": "Hand-drawn 5x9 dot-matrix bitmap font with 54 glyphs — render text as grids of equally-spaced squares for LED matrices, PCB silkscreen, or pixel displays.",
  "sample_prompts": [
    {
      "label": "Render text",
      "prompt": "Render 'HELLO WORLD' using Noah's Dot Font"
    },
    {
      "label": "Show font",
      "prompt": "Show me all the characters in Noah's Dot Font"
    },
    {
      "label": "LED matrix",
      "prompt": "Generate LED matrix art text using the dot font"
    },
    {
      "label": "Pixel text",
      "prompt": "Draw pixel text for my PCB silkscreen using the dot font"
    },
    {
      "label": "Logo",
      "prompt": "Show the Noah's Dot Font logo character"
    }
  ],
  "source_path": "SKILL.md",
  "readme": "# Noah's Dot Font\n\nA 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.\n\n## Font specification\n\n- **Standard glyphs:** 5 columns x 9 rows\n- **Logo glyph:** 9 columns x 9 rows\n- **Encoding:** 1 = filled dot, 0 = empty\n- **Average dots per letter (A-Z):** 19.2\n- **Total glyphs:** 54 (26 letters + 10 digits + 17 symbols + 1 logo)\n\n## How to use\n\nWhen rendering text in this font:\n- Draw each `1` in the bitmap as a filled square\n- Space dots equally (the gap between dots should be consistent)\n- Leave 1-2 dot widths between characters\n- Leave 3+ dot widths between words\n- The logo character renders at the same row height as standard glyphs but is nearly twice as wide (9 vs 5 columns)\n\n## Quick reference — all characters\n\nEncoding: `#` = filled dot, `.` = empty\n\n### Uppercase A-H\n\n```\n  A       B       C       D       E       F       G       H\n..#..   ####.   .###.   ####.   #####   #####   #####   #...#\n.#.#.   #...#   #...#   #...#   #....   #....   #...#   #...#\n#...#   #...#   #...#   #...#   #....   #....   #....   #...#\n#...#   #...#   #....   #...#   #....   #....   #....   #...#\n#####   ####.   #....   #...#   ####.   ####.   #.###   #####\n#...#   #...#   #....   #...#   #....   #....   #...#   #...#\n#...#   #...#   #...#   #...#   #....   #....   #...#   #...#\n#...#   #...#   #...#   #...#   #....   #....   #...#   #...#\n#...#   ####.   .###.   ####.   #####   #....   #####   #...#\n```\n\n### Uppercase I-P\n\n```\n  I       J       K       L       M       N       O       P\n#####   #####   #...#   #....   #...#   #...#   .###.   ####.\n..#..   ..#..   #..#.   #....   ##.##   ##..#   #...#   #...#\n..#..   ..#..   #.#..   #....   ##.##   ##..#   #...#   #...#\n..#..   ..#..   ##...   #....   #####   #.#.#   #...#   #...#\n..#..   ..#..   #....   #....   #.#.#   #.#.#   #...#   ####.\n..#..   ..#..   ##...   #....   #.#.#   #.#.#   #...#   #....\n..#..   ..#..   #.#..   #....   #...#   #..##   #...#   #....\n..#..   #.#..   #..#.   #....   #...#   #..##   #...#   #....\n#####   .#...   #...#   #####   #...#   #...#   .###.   #....\n```\n\n### Uppercase Q-Z\n\n```\n  Q       R       S       T       U       V       W       X\n.###.   ####.   .###.   #####   #...#   #...#   #...#   #...#\n#...#   #...#   #...#   ..#..   #...#   #...#   #...#   #...#\n#...#   #...#   #....   ..#..   #...#   #...#   #...#   .#.#.\n#...#   #...#   #....   ..#..   #...#   #...#   #.#.#   .#.#.\n#...#   ####.   .###.   ..#..   #...#   .#.#.   #.#.#   ..#..\n#...#   #.#..   ....#   ..#..   #...#   .#.#.   #####   .#.#.\n#.#.#   #..#.   ....#   ..#..   #...#   .#.#.   ##.##   .#.#.\n#..#.   #...#   #...#   ..#..   #...#   ..#..   ##.##   #...#\n.##.#   #...#   .###.   ..#..   .###.   ..#..   #...#   #...#\n\n  Y       Z\n#...#   #####\n#...#   ....#\n.#.#.   ...#.\n.#.#.   ...#.\n..#..   ..#..\n..#..   .#...\n..#..   .#...\n..#..   #....\n..#..   #####\n```\n\n### Numbers\n\n```\n  0       1       2       3       4       5       6       7       8       9\n#####   ..#..   .###.   .###.   ...#.   #####   .###.   #####   .###.   .###.\n#...#   .##..   #...#   #...#   ..##.   #....   #...#   ....#   #...#   #...#\n#...#   #.#..   ....#   ....#   .#.#.   #....   #....   ...#.   #...#   #...#\n#...#   ..#..   ....#   ....#   .#.#.   #....   #....   ...#.   #...#   #...#\n#...#   ..#..   ...#.   ..##.   #..#.   ####.   ####.   ..#..   .###.   .####\n#...#   ..#..   ..#..   ....#   #####   ....#   #...#   ..#..   #...#   ....#\n#...#   ..#..   .#...   ....#   ...#.   ....#   #...#   .#...   #...#   ....#\n#...#   ..#..   #....   #...#   ...#.   #...#   #...#   .#...   #...#   #...#\n#####   #####   #####   .###.   ...#.   .###.   .###.   #....   .###.   .###.\n```\n\n### Symbols\n\n```\n  !       ?       .       ,       :       -       +       /\n.##..   .###.   .....   .....   .....   .....   .....   ...#.\n.##..   #...#   .....   .....   .....   .....   .....   ...#.\n.##..   #...#   .....   .....   .....   .....   .....   ...#.\n.##..   ....#   .....   .....   .....   .....   ..#..   ..#..\n.##..   ...#.   .....   .....   .##..   .###.   .###.   ..#..\n.##..   .##..   .....   .....   .##..   .....   ..#..   ..#..\n.....   .....   .....   .....   .....   .....   .....   .#...\n.##..   .##..   .##..   ..#..   ..#..   .....   .....   .#...\n.##..   .##..   .##..   .#...   .#...   .....   .....   .#...\n\n  (       )       '       #       @       *       =     SPACE\n....#   #....   .#...   .#.#.   #####   .....   .....   .....\n...#.   .#...   .#...   .#.#.   #...#   .....   .....   .....\n...#.   .#...   .....   #####   #.###   .....   .....   .....\n..#..   ..#..   .....   .#.#.   #.#.#   .#.#.   .###.   .....\n..#..   ..#..   .....   .#.#.   #.#.#   ..#..   .....   .....\n..#..   ..#..   .....   .#.#.   #.#.#   .#.#.   .###.   .....\n...#.   .#...   .....   #####   #.###   .....   .....   .....\n...#.   .#...   .....   .#.#.   #....   .....   .....   .....\n....#   #....   .....   .#.#.   #####   .....   .....   .....\n```\n\n### Logo (9x9)\n\n```\n.........\n.....##..\n....####.\n....####.\n....###..\n.###.....\n####.....\n####.....\n.##......\n```\n\n## Programmatic data\n\nThe font is available as a JSON file (`font-export.json`) attached to this wiki page. Structure:\n\n```json\n{\n  \"_meta\": {\n    \"name\": \"Noah's Dot Font\",\n    \"grid\": { \"standard\": {\"width\": 5, \"height\": 9}, \"logo\": {\"width\": 9, \"height\": 9} }\n  },\n  \"glyphs\": {\n    \"A\": {\n      \"char\": \"A\",\n      \"width\": 5,\n      \"height\": 9,\n      \"dots\": 20,\n      \"type\": \"standard\",\n      \"bitmap\": [[0,0,1,0,0],[0,1,0,1,0],...],\n      \"visual\": [\"..#..\",\".#.#.\",\"#...#\",...]\n    },\n    ...\n  }\n}\n```\n\nTo 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.\n",
  "author": {
    "name": "Kyle Bergstedt",
    "email": "kyle@adom.inc"
  },
  "visibility": {
    "public": true
  },
  "hero": null,
  "metadata": {},
  "created_at": "2026-05-28T05:29:27.280Z",
  "updated_at": "2026-05-28T05:29:27.280Z",
  "sub_skills": [],
  "parent_app": null
}