# Pixel & Grid Font Maker > Type pixel letters as # and . grids and get an installable TTF font: merged, dotted or tiled. 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. Part of usefulweb.app (https://usefulweb.app/). Part of [Lumina](https://lumina.usefulweb.app/) (ownerApp: lumina). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://luminagridfont.usefulweb.app/ (interactive tool at https://luminagridfont.usefulweb.app/tool) - JSON API: POST https://luminagridfont.usefulweb.app/api/v1/calculate with a JSON object of inputs (schema: https://luminagridfont.usefulweb.app/api/v1/tool) - OpenAPI: https://luminagridfont.usefulweb.app/openapi.json - MCP (Streamable HTTP): https://luminagridfont.usefulweb.app/mcp - tool `lumina_grid_font` ## Inputs - grid (textarea, required): Glyph grids (a character on its own line, then rows of # and .; blank line between glyphs) - familyName (text): Font name - module (select): Cell style - descender (integer): Rows below the baseline - width (select): Glyph widths - spacing (number): Letter spacing (cells) - size (number): Dot or square size (share of a cell, for dots and separate squares) - space (number): Space width (cells, 0 = automatic) - sample (text): Sample text for the preview - date (text): Creation date written into the font (optional, YYYY-MM-DD) ## Method - Each glyph block starts with its character (or U+XXXX, or space) followed by equal-height rows. # 1 X @ █ are full cells, . 0 _ and spaces are empty, 2–5 are half cells cut along a diagonal (2 top-left, 3 top-right, 4 bottom-right, 5 bottom-left; the Grid Font Builder tiles). Short rows are padded with empty cells. - The rows above the baseline fill the cap height: one cell is round(700 / rows above the baseline) font units at 1000 units per em. Merged cells are traced into combined outlines (shared edges cancel, touching corners stay separate loops); dots are eight-point quadratic B-spline circles; separate squares are inset by half the remaining gap. - Proportional widths trim empty columns at both sides; monospace keeps the whole grid. Letter spacing adds half the chosen cells on each side. Without a space glyph the space is half the grid height wide (or the full grid in monospace). - The font is written and read back by the Lumina TrueType writer (same checks as the lumina-font-builder tool). ## Limits - Pixel fonts look crisp when the font size is a multiple of the cell size on screen. The fonts have no hinting or embedded bitmaps; kerning and ligatures are not generated.