Shape-Aware ASCII Renderer
6D character matching with contrast enhancement for high-quality ASCII art. Based on Alex Harri's technique.
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.