BrailleGen documentation
BrailleGen turns text into physical braille assets. Translation uses liblouis (the same open-source engine behind NVDA, JAWS and BrailleBlaster) compiled to WebAssembly, so everything happens in your browser: nothing you type is sent anywhere, and once loaded the app works offline.
The workflow
- Type text. Each input line becomes its own braille line; long lines wrap at your “cells per line” setting.
- Pick a language and grade. Grade 1 is letter-for-letter (uncontracted); Grade 2 uses contractions and is what most braille readers read. 8-dot computer braille encodes capitals and symbols in a single cell using dots 7–8.
- Verify in the preview. The braille preview is real Unicode braille text — if you use a refreshable braille display, what you feel there is exactly what will be printed. The dot graphics next to it show the physical layout at the chosen dimensions.
- Export. STL for 3D printing, SVG for flat vector workflows, BRF for embossers, or plain braille text.
Dimensional presets
All values in millimetres. Sources: ADA 2010 §703.3.1, California CBC 11B-703.3.1, BANA/Library of Congress Specification 800, UKAAF B008 / Marburg Medium, ISO 17049, Perkins/RNIB jumbo geometry.
| Preset | Dot diameter | Dot height | Dot pitch | Cell pitch | Line pitch |
|---|---|---|---|---|---|
| ADA signage (US) | 1.5 | 0.7 | 2.4 | 6.2 | 10.1 |
| California CBC | 1.6 | 0.7 | 2.5 | 7.6 | 10.2 |
| BANA / LoC (paper feel) | 1.44 | 0.48 | 2.34 | 6.2 | 10.16 |
| Marburg / UKAAF | 1.6 | 0.5 | 2.5 | 6.0 | 10.0 |
| Jumbo (learning) | 1.6 | 0.8 | 3.1 | 9.4 | 15.0 |
The ADA and California presets bias dot height up to 0.7 mm because FDM 3D prints consistently measure below their designed height (a dot designed at 0.5 mm typically prints nearer 0.38 mm). If your printer is well calibrated and you need exact standard values, use Custom dimensions. Note that California Title 24 pins the ADA maxima — an ADA-mid-range sign is not automatically California-compliant; use the California preset for work in that state.
3D printing tips
- Print with 0.1–0.15 mm layers; the dome of a 0.7 mm dot is only a few layers tall.
- Research on tactile legibility found braille printed standing up (70–90°, using “Vertical export”) reads more smoothly, because layer lines then run around the dome rather than stepping across it.
- A 2 mm plate is rigid enough for labels; use thicker plates for signs that will be handled.
- “Dots only” (plate thickness 0) is useful for gluing braille onto an existing object.
- PETG and PLA both work; matte filaments hide layer lines under the fingertip slightly better.
SVG export — laser, swell paper, sign shops
- The file uses real millimetre units (width/height in mm with a matching viewBox), so Inkscape, Illustrator, LightBurn and similar import it at true scale — no 72/96 DPI guessing.
- Swell / microcapsule paper: print the filled dots in black and run the sheet through the fuser; the standard-compliant spacing is preserved.
- Raster-bead signage: enable “Drill centre marks” and drill at each cross with a 1/16″ (1.6 mm) bit, then press in raster beads.
- Back-side embossing: enable “Mirror” to emboss from the reverse of the sheet so the dots rise correctly on the front.
- The exported SVG carries its own
<title>and<desc>(including the braille string and dimensions), so the file itself is screen-reader-readable.
BRF export — embossers
BRF is the plain-text interchange format braille embossers and libraries use (North American Braille ASCII). BrailleGen writes 25 lines per page, terminates every page with a form feed, and honors your cells-per-line setting up to the conventional 40 — wider settings are re-translated at 40 for the file so lines wrap at word boundaries. BRF cannot represent dots 7–8; cells that use them are replaced with blank cells (with a warning), and the braille text (.txt) export is the lossless alternative.
Accessibility statement
- The interface targets WCAG 2.2 AA (with several AAA criteria met, including 7:1 body-text contrast in both themes).
- The braille preview is real text — never an image — so refreshable braille displays render it exactly.
- Everything is keyboard-operable; status changes are announced via live regions; focus is always visible.
- The app honors
prefers-reduced-motion,prefers-contrast, forced-colors (Windows High Contrast) and both color schemes. - Found a barrier? Please open an issue — accessibility reports are treated as bugs, not feature requests.
Offline & privacy
After the first visit the app is cached and runs without a connection (braille tables and the 3D engine are cached as you use them). There is no analytics, no tracking, and no server: translation and geometry run locally in WebAssembly.
Licensing & credits
- BrailleGen is free software under the GNU AGPL-3.0. This fork builds on BrailleGen 10B by Richhe01.
- liblouis 3.36.0 (LGPL-2.1-or-later) performs all braille translation; its translation tables are bundled unmodified.
- Open CASCADE Technology 8.0 (LGPL-2.1 with exception) builds the 3D geometry.
- The interface typeface is Atkinson Hyperlegible by the Braille Institute (SIL OFL).
- Full license text: LICENSE.md. Build instructions: README.