~/charsets/braille · 2×4 dot cells

Image to ASCII braille art

Braille turns each text cell into eight independently lit dots. That gives a photo more shape, edges and texture than a classic character ramp at the same width — still as copyable Unicode text, still converted entirely in your browser.

semaphore --charset braille --dither – □ ✕
[ how_braille_ascii_works ]

How does image to braille art work?

Unicode reserves 256 braille characters: every possible on/off pattern in a 2×4 dot cell. Semaphore samples eight luminance values, applies a threshold, and writes the matching code point. The full pipeline, with the engine's code and before/after figures, is written up in Unicode braille is an 8-pixel bitmap font.

01 sample 2×4

Each output character represents two source columns and four source rows, preserving small features without making the text grid wider.

02 dither luminance

Floyd–Steinberg dithering moves threshold error into nearby dots. Smooth shadows become intentional dot patterns instead of flat patches.

03 emit Unicode

The final output is plain text from the Unicode braille block. Copy it into terminals, READMEs, chat, source comments or a .txt file.

[ choose_a_charset ]

Braille detail or classic ASCII texture?

choose braille for detail

Portraits, landscapes and screenshots with fine edges benefit most. Start around 100–160 columns, keep dithering on, then raise contrast only if the subject looks washed out.

choose a ramp for compatibility

Classic .:-=+*#%@ art has the familiar ASCII look and survives environments whose fonts lack braille glyphs. Blocks suit low-resolution posters; binary suits graphic patterns; detailed keeps photographic tone inside ordinary text.

JetBrains Mono does not contain braille glyphs, so browsers use the operating system's monospace fallback for those cells. That is expected and keeps the text portable across modern platforms.

[ other_charsets ]

The other five charsets

standard

Ten steps of plain ASCII. The classic look, maximum portability.

detailed

Sixty-eight shades of punctuation and letters. The photographic ramp.

blocks

Four fills and a space. Reads as pixels rather than characters.

minimal

Five steps, wide apart. Built for tiny avatars and icons.

binary

A space, a zero, a one. The code-rain look.

Make the dots yours.

Open the converter, select braille, and tune the same live controls used to render the portrait above. Your image bytes never leave the tab.

Open the braille ASCII converter