Releases: apple/embedding-atlas
Releases · apple/embedding-atlas
Release list
v0.24.0
What's Changed
- chore(deps): bump pypa/gh-action-pypi-publish from 1.14.0 to 1.14.2 by @dependabot[bot] in #242
- chore(deps): bump astral-sh/setup-uv from 9.0.0 to 10.0.0 by @dependabot[bot] in #243
- feat!: drop webgl2 fallback by @domoritz in #244
- chore: bump version to 0.24.0 and pin hatchling version by @donghaoren in #245
Full Changelog: v0.23.0...v0.24.0
v0.23.0
What's Changed
- docs: update imagewoof example with pagerank scores by @donghaoren in #224
- chore(deps): bump astral-sh/setup-uv from 8.2.0 to 8.3.2 by @dependabot[bot] in #228
- docs: add umap graph paper by @domoritz in #227
- chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0 by @dependabot[bot] in #231
- feat: features list component, text highlighting, and multi-table support by @donghaoren in #230
- chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #236
- chore(deps): bump actions/setup-python from 6.3.0 to 7.0.0 by @dependabot[bot] in #235
- chore(deps): bump pypa/gh-action-pypi-publish from 1.14.0 to 1.14.1 by @dependabot[bot] in #234
- chore(deps): bump astral-sh/setup-uv from 8.3.2 to 9.0.0 by @dependabot[bot] in #233
- chore(deps): bump pypa/gh-action-pypi-publish from 1.14.1 to 1.14.2 by @dependabot[bot] in #238
- fix: CI build error due to not yet allowed action version by @donghaoren in #239
- fix: detect plain-bytes image columns by @yuvvantalreja in #240
- chore: bump version to 0.23.0 by @donghaoren in #241
New Contributors
- @yuvvantalreja made their first contribution in #240
Full Changelog: v0.22.0...v0.23.0
v0.22.0
What's Changed
- docs: correct typos and grammar in READMEs and documentation by @ApurveKaranwal in #206
- fix: exit -> return in export application codepath by @StEvUgnIn in #211
- ci: pin GitHub actions versions and enable dependabot by @madrob in #213
- refactor: change static path resolution method by @StEvUgnIn in #212
- feat: enable loading Hugging Face datasets from local path by @bduhan in #207
- feat: support running umap by step by @donghaoren in #214
- fix: amendment for PR #214 by @donghaoren in #215
- chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #216
- chore(deps): bump actions/cache from 5.0.5 to 6.1.0 by @dependabot[bot] in #218
- chore(deps): bump actions/setup-python from 6.2.0 to 6.3.0 by @dependabot[bot] in #219
- fix: use WebGPU on Firefox instead of falling back to WebGL by @domoritz in #220
- docs: add example with imagewoof dataset by @donghaoren in #221
- chore: bump version to 0.22.0 by @donghaoren in #223
New Contributors
- @ApurveKaranwal made their first contribution in #206
- @StEvUgnIn made their first contribution in #211
- @madrob made their first contribution in #213
- @bduhan made their first contribution in #207
- @dependabot[bot] made their first contribution in #216
Full Changelog: v0.21.0...v0.22.0
v0.21.0
New features
- PageRank-based image summarizer — cluster labels can now show a representative image instead of text. New
--pagerankflag (computes PageRank from the neighbor graph, or accepts a precomputed column) and--imageflag in the CLI; newimage/importanceoptions across the Python and JS APIs. - WebGPU acceleration for UMAP & NN-descent — opt-in
gpuoption runs the projection and nearest-neighbor descent on the GPU for large speedups in the browser, with WGSL shaders and CPU fallback. Both now also accept aprogresscallback. - Redesigned viewer UI — new sidebar, multiple layout tabs, undo/redo history, and a centralized state store. Adds an import/export panel and schema/search/settings panels.
- UMAP options in the file loader — configure
n_neighbors,min_dist, and related UMAP settings directly from the loader, plus minor usability improvements. - Python API improvements — widget now works with any narwhals-supported dataframe (pandas, Polars, etc.) rather than pandas only.
onPredicateChangecallback — viewer notifies when the filter predicate changes from brush/click interactions.
Breaking changes
Component library (@embedding-atlas/component)
Label.textrenamed toLabel.contentand retyped toLabelContent(a string or an image reference).queryClusterLabelsnow returnsPromise<(LabelContent | null)[]>instead ofPromise<(string | null)[]>(strings still work at runtime).
Viewer API (EmbeddingAtlas)
EmbeddingAtlasStatereshaped:layout→currentLayout,layoutStates→layouts(+ newlayoutOrder);timestampandpredicatefields removed. Old serialized state won't fully restore.Searcher.nearestNeighbors()method removed; nearest neighbors now come from theneighborscolumn.
umap-wasm (@embedding-atlas/umap-wasm)
UMAP.run()is now async (Promise<void>) — callers mustawaitit.
Python backend (embedding-atlas)
EmbeddingAtlasWidget.selection("arrow")now returns apyarrow.RecordBatchReaderinstead of apyarrow.Table.EmbeddingAtlasWidget.selection("dataframe")returns a dataframe in the input's native namespace (via narwhals), not always pandas.utils.arrow_to_bytes()narrowed to accept onlyRecordBatchReader;to_parquet_bytes()takesIntoDataFrame.- Dependency bumps requiring a newer runtime: pandas >= 3.0.0, pyarrow >= 24.0.0, duckdb >= 1.5.0, sentence-transformers >= 5.0.0, and others;
fastparquetdependency removed.
What's Changed
- feat: PageRank-based image summarizer by @polochau in #192
- feat: improve UMAP performance on browser with WebGPU by @donghaoren in #194
- feat: configure UMAP options in the file loader, and minor usability improvements by @donghaoren in #196
- feat: python API improvements by @domoritz in #197
- refactor: cargo workspaces and fix clippy issues by @domoritz in #198
- fix: prevent embedding view hover tooltip from getting stuck by @sheitabrk in #199
- fix: update labels when provided after mount by @kiwigitops in #201
- feat: new sidebar UI, tabs, undo, and centralized store by @donghaoren in #202
- fix: treat low-cardinality float columns as continuous in legends by @adityasingh2400 in #200
- chore: update deps and bump version to 0.21.0 by @donghaoren in #203
New Contributors
- @polochau made their first contribution in #192
- @sheitabrk made their first contribution in #199
- @kiwigitops made their first contribution in #201
- @adityasingh2400 made their first contribution in #200
Full Changelog: v0.20.0...v0.21.0
v0.20.0
New Features
- Date/time data type (e.g.,
TIMESTAMP) support in charts. - New UMAP implementation in Rust for the browser version (cli version still rely on Python).
- New
compute_projectionAPI for computing embedding and projection of a column in a data frame. Replacingcompute_text_projectionetc. With better request handling to API models, audio data support, and more secure cache. - Breaking changes:
createKNNis removed, and the set of UMAP algorithm parameters have changed.compute_text_projection,compute_image_projection,compute_vector_projectionare removed.- All existing projection cache will be invalidated.
What's Changed
- chore: update deps by @domoritz in #175
- feat: time data type support by @donghaoren in #185
- feat: adjust count plot category width by @donghaoren in #186
- feat: replace basic cache with an encrypted cache to prevent leaking information by @donghaoren in #187
- feat: replace the C++ UMAP with Rust based on the original Python version by @donghaoren in #188
- feat!: new compute_projection API by @donghaoren in #189
- chore: bump version to 0.20.0 by @donghaoren in #190
Full Changelog: v0.19.1...v0.20.0
v0.19.1
What's Changed
- CRITICAL: Mitigation for supply chain attack in litellm in #183, thanks @jamesanto
- chore: bump version to 0.19.1 by @donghaoren in #184
Full Changelog: v0.19.0...v0.19.1
v0.19.0
New Features
- Audio data support: in the tooltip / instances view, audio data can be shown as a audio player.
What's Changed
- test: update python deps and initial pytest setup for backend folder by @donghaoren in #173
- feat: special color for 0 in counts by @domoritz in #178
- ci: update versions of ci packages by @domoritz in #176
- feat: support audio data with a audio player by @donghaoren in #179
- chore: bump version to 0.19.0 by @donghaoren in #180
- fix: valueKind function doesn't handle null values by @donghaoren in #181
Full Changelog: v0.18.1...v0.19.0
v0.18.1
What's Changed
- fix: table header backdrop-blur may not work by @donghaoren in #168
- fix: minor MCP-related issues by @donghaoren in #171
- chore: bump version to 0.18.1 by @donghaoren in #172
Full Changelog: v0.18.0...v0.18.1
v0.18.0
New Features and Breaking Changes
- Support
datasetUrlin metadata for remote parquet loading (thanks @davanstrien). Also support exporting to a folder instead of a .zip file, and metadata overrides with the--export-metadataoption. - [breaking] Replace the Table component with a new instances view that supports both table and cards mode, see #166.
- [breaking] Remove
tableCellRenderersprop for theEmbeddingAtlascomponent, replaced with aregisterRendererfunction and set the renderer withinitialState = { columnStyles: { "columnName": { renderer: "custom-renderer-name" } } }, see #166.
What's Changed
- feat: support optional datasetUrl in metadata for remote parquet loading by @davanstrien in #162
- feat: add --export-metadata option and folder export support by @davanstrien in #163
- feat: instances view (replaces the table component) by @donghaoren in #166
- chore: bump version to 0.18.0 by @donghaoren in #167
Full Changelog: v0.17.0...v0.18.0
v0.17.0
New Features
- The command line tool can expose an MCP server with the
--mcpflag. Now you can connect your favorite AI tool to Embedding Atlas. - [breaking] CORS is now disabled by default for the command line tool. Use the
--corsflag to enable it explicitly. - [breaking] In
compute_{text|image|vector}_embedding, parameters other than the data frame now need to be specified as keyword parameters.
What's Changed
- feat: add MCP server support for the command line tool by @donghaoren in #158
- fix: improve WebGPU device limits and fallback logic by @donghaoren in #160
- chore: bump version to 0.17.0; npm audit fix by @donghaoren in #161
Full Changelog: v0.16.1...v0.17.0