Skip to content

[quality] Detail-loss recovery (P2 class-select detector) — R&D record, not shipping #84

Description

@realproject7

Record of the P2 detail-loss recovery R&D. Decision: not shipping — preserved as a Draft PR for the record only.

What it is

A class-select detector on the coverage path: after the default (A) trace, a fine-mark-drop signal DROP = fine_mark_density(original) − fine_mark_density(A_render) routes detail-rich inputs (stipple / hatching / thin interior lines the default flattens) to a recovery retrace (pre-trace flatten OFF + a fine region merge). Clean-flat art is untouched. Adds an opt-in retrace_time_budget_s guard so the recovery retrace (which ~doubles convert time on detail-rich inputs) can be skipped to bound worst-case latency.

Validation done

  • Detector reproduced the validated routing on the anchored set (all flagged detail-loss → recovery; all clean-flats → default).
  • In-engine routing on the canonical corpus: flagged fire, clean-flats add zero paths, full test suite passes, ruff clean, time-budget guard works.

Why it is NOT shipping

Operator eye-gate: on the target flat/solid-art class the recovery output reads busier / net-negative vs the clean, economical default — the default (current shipped v0.8.0) is at-or-better than the reference by eye. The detector also over-fires on a borderline speckle clean-flat under a different input encoding. The refine/recovery thesis (add detail to match the reference) did not pay off on this class; the shipped economical output is the better product.

Status

  • Live/PyPI stays v0.8.0 (this work is NOT in any release).
  • Preserved as a Draft PR for the record. Reopen/reference if a non-regressing recovery mechanism is found later (esp. the harder translucency/glass case, tracked separately).

Metadata

Metadata

Assignees

No one assigned

    Labels

    follow-upAdversarial second-pass findingqualityOutput quality improvement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions