Live swatch grid & ΔE₀₀ #20

Open
opened 2026-09-08 17:42:22 +01:00 by gronod · 0 comments
Owner

Summary

Consume jsonRow event:row_complete. Traffic lights from settings, not Stage 5 bands.

Spec refs

docs/15-stage3-chartread.md, 05-argyll-fork.md §3. #178 #95 #184.

Scope

In: CIEDE2000 engine, grid, split swatches, live reclassify.
Out: history / Stage 5 bands.

Implementation notes

Grid rows A→Z, patches 1→N LTR. 135° diagonal split TL intended / BR measured.
is_pad skipped only when no measured AND all-zero device (white -e still renders).
XYZ scale 0–100 → /100 before Lab. Device channels 0–100%.
Lab→sRGB D50 Bradford for display.
Traffic lights: settings delta_e_good_max 2.0 / delta_e_warning_max 5.0; reclassify on settings-changed.
row_index+1 >= total_rows forces ALL_STRIPS_READ.
Distinct from Stage 5 quality bands (#95).

Rewrite invariants

#178 pad rule + split + XYZ/100. #95 bands ≠ swatch thresholds.

Dependencies

Blocks-on: 19, 5.
Unblocks: none.

Test

  • CI/mock: ΔE₀₀ reference vectors; pad/white cases; threshold change reclassifies.
  • Hardware: N/A (uses json rows).

Acceptance criteria

  • Reference-vector tests pass.
  • White pads render.
## Summary Consume `jsonRow` `event:row_complete`. Traffic lights from settings, not Stage 5 bands. ## Spec refs docs/15-stage3-chartread.md, 05-argyll-fork.md §3. #178 #95 #184. ## Scope In: CIEDE2000 engine, grid, split swatches, live reclassify. Out: history / Stage 5 bands. ## Implementation notes Grid rows A→Z, patches 1→N LTR. 135° diagonal split TL intended / BR measured. `is_pad` skipped only when no measured AND all-zero device (white `-e` still renders). XYZ scale 0–100 → /100 before Lab. Device channels 0–100%. Lab→sRGB D50 Bradford for display. Traffic lights: settings `delta_e_good_max` 2.0 / `delta_e_warning_max` 5.0; reclassify on settings-changed. `row_index+1 >= total_rows` forces ALL_STRIPS_READ. Distinct from Stage 5 quality bands (#95). ## Rewrite invariants #178 pad rule + split + XYZ/100. #95 bands ≠ swatch thresholds. ## Dependencies Blocks-on: 19, 5. Unblocks: none. ## Test - CI/mock: ΔE₀₀ reference vectors; pad/white cases; threshold change reclassifies. - Hardware: N/A (uses json rows). ## Acceptance criteria - [ ] Reference-vector tests pass. - [ ] White pads render.
gronod added this to the M4 — Measurement milestone 2026-09-08 17:42:22 +01:00
gronod added the
Priority
High
2
Project/ICCery-v2Feature/BackendFeature/UI
labels 2026-09-08 17:42:22 +01:00
gronod reopened this issue 2026-09-09 10:23:21 +01:00
gronod added a new dependency 2026-09-09 10:23:29 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: gronod/iccery-v2-mac#20