# TrueType & Variable Font Builder > Turn glyph outlines or a grid font into a verified TTF, including variable weight fonts. Paste a Lumina font project (glyph outlines with Light and Bold masters, kerning, ligatures) or a Grid Font Builder project and get an installable TrueType font. Variable fonts get fvar, gvar, avar, STAT and HVAR tables. The font is read back and every outline, character mapping, checksum and master is verified. Part of usefulweb.site (https://usefulweb.site/). Part of [Lumina](https://lumina.usefulweb.site/) (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://luminafontbuilder.usefulweb.site/ (interactive tool at https://luminafontbuilder.usefulweb.site/tool) - JSON API: POST https://luminafontbuilder.usefulweb.site/api/v1/calculate with a JSON object of inputs (schema: https://luminafontbuilder.usefulweb.site/api/v1/tool) - OpenAPI: https://luminafontbuilder.usefulweb.site/openapi.json - MCP (Streamable HTTP): https://luminafontbuilder.usefulweb.site/mcp - tool `lumina_font_builder` ## Inputs - source (textarea, required): Font project JSON (lumina-font or lumina-grid-font) - output (select): Font type - master (integer): Master for a static font (1 = first) - sample (text): Sample text for the preview - date (text): Creation date written into the font (optional, YYYY-MM-DD) ## Method - Glyph outlines use the UFO point model: line, cubic curve (two off-curve points), quadratic qcurve and off-curve points, closed contours, y up from the baseline. Cubic segments are split into the fewest quadratic pieces (up to 16) that stay within the curve tolerance in every master, measured at 31 points per piece; coordinates are then rounded to whole font units. - The writer produces sfnt 1.0 TrueType with head, hhea, maxp 1.0, OS/2 version 4, name, cmap formats 4 and 12, post 3.0, hmtx, glyf and loca, GDEF glyph classes, GPOS pair kerning (lookup type 2, format 1) and GSUB ligatures (lookup type 4). Table checksums and head.checkSumAdjustment follow the OpenType specification. A .notdef box is added when the project has none. - With two or more masters the font becomes variable: fvar axes and named instances, gvar deltas for every point plus the four phantom points (advance changes), HVAR advance deltas, GDEF item variations for kerning, STAT axis values and avar when an axis map is given. Every non-default master must sit at the minimum or maximum of one axis and must be point-compatible with the default master. - Grid Font Builder projects are traced: each brick contributes its edges, shared edges cancel, and the remaining edges are linked into merged contours (outer clockwise, counters counter-clockwise), with an 8 × 8 grid filling the em square above the baseline. - Verification parses the written file with Lumina's own reader: table and whole-font checksums, glyph count, every character mapping, every outline point, advances and side bearings, kerning pairs, ligatures, and for variable fonts every master and named instance through gvar, HVAR and kerning variations. Automated tests additionally load the fonts with FreeType (fontconfig) and Chrome. ## Limits - Fonts you build belong to you; add your own license text. The builder writes no hinting instructions, so small sizes on Windows can look softer than hinted fonts. WOFF2, CFF outlines, composite glyphs, mark positioning and contextual features are not written.