API & MCP

Everything a person can do on Pixel & Grid Font Maker, a program or AI agent can do with the same inputs and get the identical result.

HTTP API

Pixel & Grid Font Maker

Write each glyph as a small grid of # (ink) and . (empty), with 2–5 for diagonal half cells, any size up to 32 × 32 and with descender rows. Choose merged outlines, round dots or separate squares, proportional or monospace widths and letter spacing, and download a verified TrueType font. Lumina Glyph Lab edits the same text with a live preview.

Inputs of Pixel & Grid Font Maker
FieldTypeDefaultDescription
grid (required)textarea"A\n.###.\n#...#\n#...#\n#####\n#...#\n#...#\n#...#\n.....\n.....\n\nB\n####.\n#Glyph grids (a character on its own line, then rows of # and .; blank line between glyphs)
familyNametext"My Pixel Font"Font name
moduleselect (merged, dots, gap)"merged"Cell style
descenderinteger2Rows below the baseline
widthselect (proportional, monospace)"proportional"Glyph widths
spacingnumber1Letter spacing (cells)
sizenumber0.8Dot or square size (share of a cell, for dots and separate squares)
spacenumber0Space width (cells, 0 = automatic)
sampletext—Sample text for the preview
datetext—Creation date written into the font (optional, YYYY-MM-DD)

Example request

5 × 7 pixel font with descenders

curl -X POST https://luminagridfont.usefulweb.app/api/v1/calculate -H 'content-type: application/json' -d '{"grid":"A\n.###.\n#...#\n#...#\n#####\n#...#\n#...#\n#...#\n.....\n.....\n\nB\n####.\n#...#\n#...#\n####.\n#...#\n#...#\n####.\n.....\n.....\n\nC\n.###.\n#...#\n#....\n#....\n#....\n#...#\n.###.\n.....\n.....\n\nE\n#####\n#....\n#....\n####.\n#....\n#....\n#####\n.....\n.....\n\nH\n#...#\n#...#\n#...#\n#####\n#...#\n#...#\n#...#\n.....\n.....\n\nI\n###\n.#.\n.#.\n.#.\n.#.\n.#.\n###\n...\n...\n\nL\n#....\n#....\n#....\n#....\n#....\n#....\n#####\n.....\n.....\n\nO\n.###.\n#...#\n#...#\n#...#\n#...#\n#...#\n.###.\n.....\n.....\n\nP\n####.\n#...#\n#...#\n####.\n#....\n#....\n#....\n.....\n.....\n\nX\n#...#\n#...#\n.#.#.\n..#..\n.#.#.\n#...#\n#...#\n.....\n.....\n\ng\n.....\n.....\n.####\n#...#\n#...#\n#...#\n.####\n....#\n.###.\n\np\n.....\n.....\n####.\n#...#\n#...#\n#...#\n####.\n#....\n#....\n\ny\n.....\n.....\n#...#\n#...#\n#...#\n#...#\n.####\n....#\n.###.\n\n1\n.#.\n##.\n.#.\n.#.\n.#.\n.#.\n###\n...\n...\n\n2\n.###.\n#...#\n....#\n..##.\n.#...\n#....\n#####\n.....\n.....\n\n!\n#\n#\n#\n#\n#\n.\n#\n.\n.\n\n.\n.\n.\n.\n.\n.\n.\n#\n.\n.","familyName":"Starter Pixel","module":"merged","descender":2,"width":"proportional","spacing":1,"size":0.8,"space":0,"sample":"HELLO PIXEL gpy 12!","date":""}'

Every result contains

inputs (normalised, defaults applied), summary, result (validated against the published schema), units, assumptions, sources, warnings, computedAt and links.

MCP (Model Context Protocol)

{
  "mcpServers": {
    "lumina-grid-font": { "type": "http", "url": "https://luminagridfont.usefulweb.app/mcp" }
  }
}