~/charsets/standard · ten shades

Image to ASCII with the standard ramp

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.

 .:-=+*#%@
semaphore --charset standard – □ ✕
[ how_the_ramp_works ]

How does the standard ramp map brightness to characters?

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.

standard ramp 10-step luminance mapping
step glyph luma range tonal role visual density description
0[space]0–10%shadow / backgroundZero ink coverage. Leaves background clear.
1.10–20%deep shadowSingle baseline dot. Subtle boundary accent.
2:20–30%soft shadowTwo stacked dots. Defines low-contrast contour lines.
3-30–40%low midtoneHorizontal dash. Bridges shadows toward central values.
4=40–50%mid midtoneDouble horizontal bar. Optical center of the 10-step ramp.
5+50–60%upper midtoneCross shape. Balanced horizontal and vertical density.
6*60–70%low highlightSix-point star. Textured transition into bright fields.
7#70–80%mid highlightFour-line hash grid. Solidifies facial structure and shape.
8%80–90%high highlightDense diagonal stroke with dual loops. High ink fill.
9@90–100%peak highlightHeaviest 7-bit glyph. Maximum optical mass in a monospace cell.
[ tuning_and_compatibility ]

Where the standard ramp excels

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.

optimal column widths

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.

contrast tuning

Because ten steps have wide tonal gaps, boosting contrast by +15 to +30 pushes indistinct midtones outward, yielding crisp edges and immediate visual readability.

[ faq ]

Standard ramp questions

Why use 10 characters instead of a 68-step detailed ramp?

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.

How does Semaphore calculate character luminance?

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.

How to paste standard ASCII art into GitHub README without breaking?

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.

Ten characters is all it takes.

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