~/charsets/binary · three steps

Image to binary ASCII art

A space, a zero, a one. The narrowest ramp Semaphore ships, and the only one that stops pretending to describe light. With three steps there is no gradient left to work with, so what survives is the shape of the subject spelled out in digits.

 01
semaphore --charset binary – □ ✕
[ how_the_ramp_works ]

Three steps means shape, not shade

The engine works the same way it does for every other charset — average each cell to one brightness value, then index a ramp. The difference is that this ramp has three entries, so two thirds of the tonal range collapses into a single digit.

01 average the cell

Identical to the other ramps: one perceptual luminance value per grid cell, weighted the way the eye weights red, green and blue (the Rec. 709 luma coefficients).

02 collapse to three

Shadows fall on the space, mid-tones on 0, highlights on 1. There is no fourth option, so every subtlety in between is rounded away.

03 read the outline

What is left is a boundary between lit and unlit regions. The eye reconstructs the subject from that edge, the way it reads a stencil or a shadow puppet.

Two consequences follow, and both are worth knowing before you blame the picture. Contrast is the control that matters most here, because it decides where the two thresholds land. And invert matters more than on any other charset: flipping it swaps which digit carries the subject and which carries the background, which changes the entire image rather than merely darkening it.

[ when_to_use_it ]

Pick binary when you want the machine look

choose binary

Code-rain posters, terminal splash screens, glitch art, badge and sticker art — anything meant to read as machine output rather than as drawing. Feed it a high-contrast source with clear separation between subject and background: a silhouette, a logo, a face against a plain wall. Both digits are plain 7-bit ASCII, so the result survives any font and any encoding.

choose something else

If the subject is carried by gradients rather than edges, three steps will throw it away — the detailed ramp has sixty-eight and braille resolves finer still. If you want solid graphic areas instead of digits, the standard ramp keeps a familiar ASCII texture with ten shades.

[ 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.

braille

Eight dots per character. The highest detail Semaphore can reach.

Two digits and a threshold.

Open the converter with the binary ramp preselected, then work the contrast and invert controls until the silhouette snaps into place. Your image bytes never leave the tab.

Open the binary ASCII converter