Skip to content

feat: add shape-preserving line denoising - #267

Merged
brandtnewlabs merged 1 commit into
mainfrom
codex/line-denoising
Aug 13, 2026
Merged

feat: add shape-preserving line denoising#267
brandtnewlabs merged 1 commit into
mainfrom
codex/line-denoising

Conversation

@brandtnewlabs

Copy link
Copy Markdown
Owner

Summary

  • add opt-in LineConfig.simplify screen-space path simplification for LiveChart
  • apply the shared setting to LiveChartSeries with per-series SeriesConfig.simplify overrides
  • preserve original data for range fitting, live values, markers, and scrubbing
  • reuse worklet scratch buffers and bound simplification ranges to keep per-frame cost predictable
  • add focused unit and renderer coverage
  • add a dedicated raw-vs-simplified example screen, guide, API documentation, navigation entry, and changelog entry

Why

Dense samples can produce a visually noisy Skia path even when the underlying trend is clear. Consumers need an opt-in way to remove small screen-space deviations while keeping meaningful peaks, valleys, timing, and all interaction values grounded in the original dataset.

API

<LiveChart
  data={data}
  value={value}
  line={{ simplify: 1 }}
/>

The tolerance is measured in screen pixels. 0 remains the default and preserves existing rendering.

Validation

  • npm run verify
    • typecheck
    • lint
    • 100 test suites passed
    • 1,507 tests passed, 5 skipped
  • React Doctor: 96/100, no issues found
  • npm run build:lib

@brandtnewlabs
brandtnewlabs marked this pull request as ready for review August 13, 2026 14:38
@brandtnewlabs
brandtnewlabs merged commit 14bfd97 into main Aug 13, 2026
5 checks passed
@brandtnewlabs
brandtnewlabs deleted the codex/line-denoising branch August 13, 2026 14:55
brandtnewlabs added a commit that referenced this pull request Aug 13, 2026
## Summary

- move the shape-preserving line denoising entry from `4.17.0` to
`Unreleased`
- preserve the existing release-note wording

## Why

PR #267 merged after the `4.18.0` release, but its changelog entry was
added beneath `4.17.0`. That incorrectly claims the API shipped in an
older version and prevents the next release notes from picking it up
from `Unreleased`.

## Impact

Documentation only. No runtime or public API behavior changes.

## Validation

- `git diff --check origin/main..codex/fix-line-denoising-changelog`
- confirmed the branch diff is limited to `CHANGELOG.md`
- React Doctor not applicable because no React or TypeScript files
changed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant