7-bit universal safety
Every glyph resides within classic US-ASCII (hex 0x20 to 0x7E). It renders without distortion across serial consoles, legacy VT100 terminals, commit messages, and plain-text emails.
The character set most people picture when they hear ASCII art: ten glyphs running from empty space to a solid at-sign. It is the safest output Semaphore produces — every character is plain 7-bit ASCII, so it survives any font, any terminal and any code review comment.
.:-=+*#%@
rendering standard portrait…
The ramp is the ten characters .:-=+*#%@, ordered by ink. Each cell is one Rec. 709 luma value, and that value picks one of the ten: a dark cell is a space, a mid-tone lands on = or +, a highlight on % or @. All ten are 7-bit ASCII.
Start at 100–140 columns. Below that the ten steps still read, and the mid-tones hold if you raise contrast. The full comparison of all six charsets is on the home page.
| step | glyph | luma range | tonal role | visual density description |
|---|---|---|---|---|
| 0 | [space] | 0–10% | shadow / background | Zero ink coverage. Leaves background clear. |
| 1 | . | 10–20% | deep shadow | Single baseline dot. Subtle boundary accent. |
| 2 | : | 20–30% | soft shadow | Two stacked dots. Defines low-contrast contour lines. |
| 3 | - | 30–40% | low midtone | Horizontal dash. Bridges shadows toward central values. |
| 4 | = | 40–50% | mid midtone | Double horizontal bar. Optical center of the 10-step ramp. |
| 5 | + | 50–60% | upper midtone | Cross shape. Balanced horizontal and vertical density. |
| 6 | * | 60–70% | low highlight | Six-point star. Textured transition into bright fields. |
| 7 | # | 70–80% | mid highlight | Four-line hash grid. Solidifies facial structure and shape. |
| 8 | % | 80–90% | high highlight | Dense diagonal stroke with dual loops. High ink fill. |
| 9 | @ | 90–100% | peak highlight | Heaviest 7-bit glyph. Maximum optical mass in a monospace cell. |
Every glyph resides within classic US-ASCII (hex 0x20 to 0x7E). It renders without distortion across serial consoles, legacy VT100 terminals, commit messages, and plain-text emails.
Use 100–140 columns for full-width desktop terminals. For mobile screens or GitHub README code blocks, keep the output within 60–72 columns to prevent horizontal scrolling.
Because ten steps have wide tonal gaps, boosting contrast by +15 to +30 pushes indistinct midtones outward, yielding crisp edges and immediate visual readability.
The 10-step ramp prioritizes legibility and portability. At narrower widths (under 80 columns), subtle steps in a 68-character ramp blur together into visual noise. The standard ramp keeps each step visually distinct.
The engine samples canvas pixel data using standard Rec. 709 luma weights (Y = 0.2126*R + 0.7152*G + 0.0722*B), matching human perception of green, red, and blue brightness.
Always place the copied text inside a fenced code block opened with ```text. Standard Markdown collapses multiple consecutive spaces outside code blocks, which would destroy the spacing that forms the picture.
Open the converter with the standard ramp preselected, drop a photo, and tune columns and contrast live. Your image bytes never leave the tab.
Open the standard ASCII converter