Skip to content

v1.1.0

Choose a tag to compare

@2dubu2dubu released this 22 Apr 12:06
· 65 commits to main since this release
94e6d34

PaletteKit v1.1.0 Release Notes

Highlights

  • On-device benchmark harness in Examples/PaletteKitDemo — measure PaletteKit performance on your own device, with your own photos.
  • Per-stage timings (decode / sample / quantize) visualized as a stacked-bar chart, with raw and summary CSV exports for cross-device comparison.
  • No public library API changes — color-thief default semantics preserved.

What's new in the demo app

  • Source picker — synthesized fixture (deterministic) or a real photo from your library, center-cropped to each grid size.
  • Matrix configuration — sizes from 256² to 4096² (8192² opt-in), CPU / Metal / .auto quantizer, and raw or auto-downsample mode.
  • Per-field info popovers explaining exactly what each toggle measures and when to enable it.
  • Run / Reset / Cancel state machine, with optional run notes baked into CSV headers and failures surfaced throughout the run.
  • Swift Charts visualization of decode / sample / quantize means.

Install

# Requires iOS 17+, Swift 6.0, Xcode 16+.
.package(url: "https://github.com/2dubu/PaletteKit", from: "1.1.0")

Try it on your device

make demo-app   # build & run on a connected iPhone
                # tap the speedometer icon in the top-right

Roadmap

  • v1.2 — k-means quantizer (CPU + Metal, opt-in) and decode/sample SIMD optimization. The bench harness gates which improvements ship.
  • v1.x (minor) — PaletteKitCard (palette-driven share cards).
  • v2.0 — observe() (live video / camera) and PaletteKitInsights (FoundationModels captions, color naming, and custom instructions on iOS 26+).

Acknowledgements
Thanks to color-thief by Lokesh Dhakar (MIT).