Apps Part of Lumina

Pixel & Grid Font Maker

Type pixel letters as # and . grids and get an installable TTF font: merged, dotted or tiled.

More options

Try an example: · ·

More about this tool

How it works

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.

  • 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).

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.

Sources

Part of Lumina

  • Lumina Photo editor & image toolkit

    Bring out what you saw. A free photo studio, right in your browser.

    Open Lumina

Related tools

How to use the Pixel & Grid Font Maker

Type pixel letters as grids of # and . and get an installable TTF font with merged outlines, round dots or separate squares.

What it is for

Pixel fonts give games, retro posters, badges and dot-matrix displays their look. Drawing them in a font editor is slow; typing them as small text grids is fast. Each glyph is its character on one line followed by rows of # for ink and . for empty cells, and a blank line separates glyphs. The tool turns the grids into a TrueType font you can install or use on a website.

It also suits the diagonal "brick" style: 2, 3, 4 and 5 are half cells cut along a diagonal (top-left, top-right, bottom-right and bottom-left filled), the same tiles as Lumina's Grid Font Builder. Lumina's Type Lab → Glyph Lab edits the same text with a live preview.

Worked example

We typed a tiny 4 × 5 font with H, I and Ä (written as U+00C4 on the first line) and chose Separate squares, Monospace, Letter spacing 0.5 and Dot or square size 0.7.

  • TinyFive-Regular.ttf, 1332 bytes, 3 glyphs on a 4 × 5 grid.
  • Cell size: 140 font units — the five rows above the baseline fill the cap height of 700 units.
  • Every glyph is 630 units wide: four columns of 140 plus half a cell of spacing on each side.
  • The H has 12 ink cells and therefore 12 separate squares; every read-back check passed.

The first built-in example, a 5 × 7 alphabet with two descender rows, gives 100-unit cells; in Merged cells style the I becomes one outline and g, p, y hang 200 units below the baseline.

How to read the result

  • Glyphs lists each character with its glyph name, the number of ink cells, the number of outlines and the advance width.
  • Contours shows the cell style at work: merged cells join touching cells into one outline, while dots and separate squares give one contour per cell (up to 64 per glyph).
  • Read-back checks confirm that the written file maps every character and reproduces every outline.
  • Download the font project opens in Lumina Font Foundry, where you can add kerning, more glyphs or a Bold master.

Tips and common mistakes

  • Every glyph needs the same number of rows. Shorter rows are padded with empty cells on the right, but a missing row is an error ("Every glyph needs the same number of rows").
  • Keep empty rows as . — a row of spaces looks like a blank line and splits the glyph.
  • Rows below the baseline sets the descender. With 9 rows and 2 below the baseline, row 7 sits on the baseline.
  • Proportional trims empty columns at both sides of each glyph; Monospace keeps the full grid width, which suits terminals and scoreboards.
  • Without a space glyph, the space is half the grid height wide (or the full grid in monospace).
  • Pixel fonts look sharpest at sizes that are whole multiples of the cell size on screen.

FAQ

Can I use characters outside the keyboard?

Yes. Write U+00C4 or U+20AC on the glyph's first line instead of the character itself, or space for the space.

What do dots look like up close?

Each dot is an eight-point quadratic curve; its implied on-curve points lie exactly on a circle with the chosen diameter, so dots stay round at any size.

Is there kerning?

No kerning or ligatures are generated; pixel fonts are usually spaced by the grid. Add pairs in Font Foundry if you need them.

Can I convert my Grid Font Builder project?

Yes. In Glyph Lab, Import Grid Font Builder draft turns your 8 × 8 brick font into this text format, triangles included.

Guide last updated:

For scripts and AI agents

  • JSON API: POST https://luminagridfont.usefulweb.app/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://luminagridfont.usefulweb.app/mcp · tool name lumina_grid_font
Example request
curl -s -X POST https://luminagridfont.usefulweb.app/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{…see OpenAPI examples…}'
Feedback · ideas & bug reports welcome