Shape-Aware ASCII Renderer
6D character matching with contrast enhancement for high-quality ASCII art. Based on Alex Harri's technique.
Proof model
ASCII characters have shape, not just brightness.
The renderer compares 6D character vectors so contours survive the translation into text.
Sample
Character cells are measured.
Vector
Six regions describe the shape.
Match
Contours choose the character.
Render
ASCII preserves edges.
Scene
Contrast Enhancement
Cell Size
Quality
How It Works
6D Shape Vectors
Each ASCII character is represented as a 6D vector capturing how it fills its cell. Six sampling circles in a staggered 2×3 grid measure density at different positions.
Nearest Neighbor Matching
For each cell in the image, we sample a 6D vector and find the character whose pre-computed shape vector is closest in Euclidean distance.
Global Contrast
Normalizes the sampling vector to [0,1], applies an exponent to crunch darker values, then denormalizes. Exaggerates shape differences for better character picks.
Directional Contrast
External sampling circles detect edges by reaching into neighboring cells. When a neighbor is lighter, it pushes the internal value down, sharpening boundaries.