Summary
Add optional dithering modes to the title-screen Braille renderer so ray-traced title scenes can trade harsh thresholded dots for more stable tone and smoother gradients.
Why
The current Braille title renderer maps traced or cached 2x4 subpixel samples directly into Unicode Braille dots. That is deterministic and fast, but it can look harsh around gradients, soft shadows, caustics, and low-frequency lighting. Dithering would let the renderer represent fractional luminance or coverage more gracefully without changing the terminal cell model.
Candidate modes
- Threshold baseline.
- Ordered Bayer 4x4 as the likely animated default because it is cheap, deterministic, and frame-stable.
- Atkinson as the first error-diffusion experiment.
- Floyd-Steinberg and Stucki later if the first modes prove useful.
Constraints
- Keep this inside the native Bijou/jedit renderer, not a browser canvas or DOM image pipeline.
- Dither over the full Braille subpixel plane, not independently per 2x4 cell, so error diffusion can cross cell boundaries.
- Preserve existing fg/bg RGB averaging, modifiers, ray stats, temporal cache, and adaptive trace budgets.
- Avoid shimmer during camera motion.
Design packet
A design doc should define the exact renderer contract, RED tests, and rollout plan before implementation.
Summary
Add optional dithering modes to the title-screen Braille renderer so ray-traced title scenes can trade harsh thresholded dots for more stable tone and smoother gradients.
Why
The current Braille title renderer maps traced or cached 2x4 subpixel samples directly into Unicode Braille dots. That is deterministic and fast, but it can look harsh around gradients, soft shadows, caustics, and low-frequency lighting. Dithering would let the renderer represent fractional luminance or coverage more gracefully without changing the terminal cell model.
Candidate modes
Constraints
Design packet
A design doc should define the exact renderer contract, RED tests, and rollout plan before implementation.