Repository navigation
fix(engine): remove periodic grain from monochrome dashboards - #4
Merged
Merged
Conversation
Use fixed luminance thresholding for default text and solid fills. Keep display-anchored Bayer halftoning available explicitly through FrameWithMode for grayscale imagery. Reproduce lost opaque #111 ink before the fix; cover dark fills, real text, invalid modes and retained dithering. Full clean-candidate quality passed with stable 94.8% coverage and 100% changed coverage. Physical panel verification remains pending; ESP32 protocol and firmware are unchanged. AI-Impact: co-developed AI: cx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dark text and solid fills such as CSS #111 were converted into a repeating 4×4 pattern with white holes before reaching ESP32. Default monochrome conversion now uses a fixed luminance threshold, preserving solid dark ink.
Validation: the reproduction failed before the fix and passes afterward. Full clean-candidate make quality passed: stable 94.8% coverage in three runs, 100% changed coverage, lint/race/vet/audit, native/interoperability, TinyGo, ESP32 and Linux builds. Before/after local PNG previews confirm the grid is removed.
Tradeoff: default thresholding does not retain gray-tone densities in photos; image-oriented callers can explicitly select OrderedDither. This updates the Go manager/renderer; no ESP32 firmware change is required. Physical panel verification is pending.