v1.1.0
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 /
.autoquantizer, 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-rightRoadmap
- 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).