From 7cd6504a01d5757bf099fc843c235f07b7e03c50 Mon Sep 17 00:00:00 2001 From: Donghao Ren Date: Wed, 27 Aug 2025 15:27:10 -0700 Subject: [PATCH] Updates --- .gitignore | 1 - package-lock.json | 9 +++ package.json | 1 + .../wasm/density_clustering_wasm_bg.wasm | Bin 143733 -> 0 bytes .../embedding_view/worker/worker_functions.ts | 2 +- packages/component/src/lib/index.ts | 2 - .../density_clustering_wasm/build.sh | 9 --- .../density_clustering_wasm/js/index.d.ts | 42 ++++++++++ .../density_clustering_wasm/js/index.js} | 39 +--------- .../pkg}/density_clustering_wasm.d.ts | 0 .../pkg}/density_clustering_wasm.js | 66 ++++++++-------- .../pkg}/density_clustering_wasm_bg.js | 72 +++++++++--------- .../pkg/density_clustering_wasm_bg.wasm | Bin 0 -> 136309 bytes .../pkg}/density_clustering_wasm_bg.wasm.d.ts | 0 packages/density-clustering/package.json | 17 +++++ packages/embedding-atlas/src/component.ts | 8 +- .../embedding-atlas/src/density_clustering.ts | 3 + packages/embedding-atlas/src/index.ts | 1 + packages/embedding-atlas/vite.config.js | 1 + 19 files changed, 148 insertions(+), 125 deletions(-) delete mode 100644 packages/component/src/lib/density_clustering/wasm/density_clustering_wasm_bg.wasm delete mode 100755 packages/density-clustering/density_clustering_wasm/build.sh create mode 100644 packages/density-clustering/density_clustering_wasm/js/index.d.ts rename packages/{component/src/lib/density_clustering/find_clusters.ts => density-clustering/density_clustering_wasm/js/index.js} (57%) rename packages/{component/src/lib/density_clustering/wasm => density-clustering/density_clustering_wasm/pkg}/density_clustering_wasm.d.ts (100%) rename packages/{component/src/lib/density_clustering/wasm => density-clustering/density_clustering_wasm/pkg}/density_clustering_wasm.js (100%) rename packages/{component/src/lib/density_clustering/wasm => density-clustering/density_clustering_wasm/pkg}/density_clustering_wasm_bg.js (100%) create mode 100644 packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm_bg.wasm rename packages/{component/src/lib/density_clustering/wasm => density-clustering/density_clustering_wasm/pkg}/density_clustering_wasm_bg.wasm.d.ts (100%) create mode 100644 packages/density-clustering/package.json create mode 100644 packages/embedding-atlas/src/density_clustering.ts diff --git a/.gitignore b/.gitignore index c8e4a1a..4450959 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ build/ dist/ distlib/ target/ -pkg/ .svelte-kit/ .env .env.* diff --git a/package-lock.json b/package-lock.json index 7cf3856..e5e990a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "packages/viewer", "packages/table", "packages/umap-wasm", + "packages/density-clustering", "packages/embedding-atlas", "packages/examples", "packages/backend", @@ -495,6 +496,10 @@ "resolved": "packages/component", "link": true }, + "node_modules/@embedding-atlas/density-clustering": { + "resolved": "packages/density-clustering", + "link": true + }, "node_modules/@embedding-atlas/examples": { "resolved": "packages/examples", "link": true @@ -9005,6 +9010,10 @@ } } }, + "packages/density-clustering": { + "name": "@embedding-atlas/density-clustering", + "version": "0.0.0" + }, "packages/docs": { "devDependencies": { "gh-pages": "^6.3.0", diff --git a/package.json b/package.json index 8c15c14..a3b1d2f 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "packages/viewer", "packages/table", "packages/umap-wasm", + "packages/density-clustering", "packages/embedding-atlas", "packages/examples", "packages/backend", diff --git a/packages/component/src/lib/density_clustering/wasm/density_clustering_wasm_bg.wasm b/packages/component/src/lib/density_clustering/wasm/density_clustering_wasm_bg.wasm deleted file mode 100644 index c5b1d85b5b4f9573fabbacfefd5d3266622e2829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143733 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

6`J~w=+zoxmD+M-8x5g@48S2c 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 = {}, +): Promise; diff --git a/packages/component/src/lib/density_clustering/find_clusters.ts b/packages/density-clustering/density_clustering_wasm/js/index.js similarity index 57% rename from packages/component/src/lib/density_clustering/find_clusters.ts rename to packages/density-clustering/density_clustering_wasm/js/index.js index 451e27e..a90fa59 100644 --- a/packages/component/src/lib/density_clustering/find_clusters.ts +++ b/packages/density-clustering/density_clustering_wasm/js/index.js @@ -1,34 +1,6 @@ // Copyright (c) 2025 Apple Inc. Licensed under MIT License. -import * as cluster from "./wasm/density_clustering_wasm.js"; - -/** A resulting cluster from the find clusters function */ -export interface Cluster { - /** Cluster identifier */ - identifier: number; - /** The total density */ - sum_density: number; - /** The mean x location (weighted by density) */ - mean_x: number; - /** The mean y location (weighted by density) */ - mean_y: number; - /** The maximum density */ - max_density: number; - /** The location with the maximum density */ - max_density_location: [number, number]; - /** The number of pixels in the cluster */ - pixel_count: number; - /** The cluster's boundary represented as a list of polygons */ - boundary?: [number, number][][]; - /** The cluster's boundary approximated with a list of rectangles */ - boundary_rect_approximation?: [number, number, number, number][]; -} - -/** Options of the find clusters function */ -export interface FindClustersOptions { - /** The threshold for unioning two clusters */ - union_threshold: number; -} +import * as cluster from "../pkg/density_clustering_wasm.js"; /** * Find clusters from a density map @@ -38,12 +10,7 @@ export interface FindClustersOptions { * @param options algorithm options * @returns */ -export async function findClusters( - density_map: Float32Array, - width: number, - height: number, - options: Partial = {}, -): Promise { +export async function findClusters(density_map, width, height, options = {}) { await cluster.default(); // console.debug(`find clusters start, size: ${width}x${height}`); let t0 = new Date().getTime(); @@ -62,7 +29,7 @@ export async function findClusters( smooth_boundaries: true, }); input.free(); - let clusters: Cluster[] = []; + let clusters = []; for (let [id, summary] of result.summaries) { clusters.push({ identifier: id, diff --git a/packages/component/src/lib/density_clustering/wasm/density_clustering_wasm.d.ts b/packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm.d.ts similarity index 100% rename from packages/component/src/lib/density_clustering/wasm/density_clustering_wasm.d.ts rename to packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm.d.ts diff --git a/packages/component/src/lib/density_clustering/wasm/density_clustering_wasm.js b/packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm.js similarity index 100% rename from packages/component/src/lib/density_clustering/wasm/density_clustering_wasm.js rename to packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm.js index 4780aa3..ffe625a 100644 --- a/packages/component/src/lib/density_clustering/wasm/density_clustering_wasm.js +++ b/packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm.js @@ -1,40 +1,13 @@ let wasm; -const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } ); - -if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); }; - -let cachedUint8Memory0 = null; - -function getUint8Memory0() { - if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) { - cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer); - } - return cachedUint8Memory0; -} - -function getStringFromWasm0(ptr, len) { - ptr = ptr >>> 0; - return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); -} - const heap = new Array(128).fill(undefined); heap.push(undefined, null, true, false); -let heap_next = heap.length; - -function addHeapObject(obj) { - if (heap_next === heap.length) heap.push(heap.length + 1); - const idx = heap_next; - heap_next = heap[idx]; - - heap[idx] = obj; - return idx; -} - function getObject(idx) { return heap[idx]; } +let heap_next = heap.length; + function dropObject(idx) { if (idx < 132) return; heap[idx] = heap_next; @@ -69,6 +42,33 @@ function getInt32Memory0() { return cachedInt32Memory0; } +const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } ); + +if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); }; + +let cachedUint8Memory0 = null; + +function getUint8Memory0() { + if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) { + cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8Memory0; +} + +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); +} + +function addHeapObject(obj) { + if (heap_next === heap.length) heap.push(heap.length + 1); + const idx = heap_next; + heap_next = heap[idx]; + + heap[idx] = obj; + return idx; +} + let WASM_VECTOR_LEN = 0; const cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } ); @@ -303,10 +303,6 @@ async function __wbg_load(module, imports) { function __wbg_get_imports() { const imports = {}; imports.wbg = {}; - imports.wbg.__wbindgen_error_new = function(arg0, arg1) { - const ret = new Error(getStringFromWasm0(arg0, arg1)); - return addHeapObject(ret); - }; imports.wbg.__wbindgen_boolean_get = function(arg0) { const v = getObject(arg0); const ret = typeof(v) === 'boolean' ? (v ? 1 : 0) : 2; @@ -338,6 +334,10 @@ function __wbg_get_imports() { const ret = typeof(getObject(arg0)) === 'string'; return ret; }; + imports.wbg.__wbindgen_error_new = function(arg0, arg1) { + const ret = new Error(getStringFromWasm0(arg0, arg1)); + return addHeapObject(ret); + }; imports.wbg.__wbindgen_jsval_loose_eq = function(arg0, arg1) { const ret = getObject(arg0) == getObject(arg1); return ret; diff --git a/packages/component/src/lib/density_clustering/wasm/density_clustering_wasm_bg.js b/packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm_bg.js similarity index 100% rename from packages/component/src/lib/density_clustering/wasm/density_clustering_wasm_bg.js rename to packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm_bg.js index fe37cfe..8e03a9f 100644 --- a/packages/component/src/lib/density_clustering/wasm/density_clustering_wasm_bg.js +++ b/packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm_bg.js @@ -4,43 +4,14 @@ export function __wbg_set_wasm(val) { } -const lTextDecoder = typeof TextDecoder === 'undefined' ? (0, module.require)('util').TextDecoder : TextDecoder; - -let cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true }); - -cachedTextDecoder.decode(); - -let cachedUint8Memory0 = null; - -function getUint8Memory0() { - if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) { - cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer); - } - return cachedUint8Memory0; -} - -function getStringFromWasm0(ptr, len) { - ptr = ptr >>> 0; - return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); -} - const heap = new Array(128).fill(undefined); heap.push(undefined, null, true, false); -let heap_next = heap.length; - -function addHeapObject(obj) { - if (heap_next === heap.length) heap.push(heap.length + 1); - const idx = heap_next; - heap_next = heap[idx]; - - heap[idx] = obj; - return idx; -} - function getObject(idx) { return heap[idx]; } +let heap_next = heap.length; + function dropObject(idx) { if (idx < 132) return; heap[idx] = heap_next; @@ -75,6 +46,35 @@ function getInt32Memory0() { return cachedInt32Memory0; } +const lTextDecoder = typeof TextDecoder === 'undefined' ? (0, module.require)('util').TextDecoder : TextDecoder; + +let cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + +cachedTextDecoder.decode(); + +let cachedUint8Memory0 = null; + +function getUint8Memory0() { + if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) { + cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8Memory0; +} + +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); +} + +function addHeapObject(obj) { + if (heap_next === heap.length) heap.push(heap.length + 1); + const idx = heap_next; + heap_next = heap[idx]; + + heap[idx] = obj; + return idx; +} + let WASM_VECTOR_LEN = 0; const lTextEncoder = typeof TextEncoder === 'undefined' ? (0, module.require)('util').TextEncoder : TextEncoder; @@ -277,11 +277,6 @@ export class DensityMap { } } -export function __wbindgen_error_new(arg0, arg1) { - const ret = new Error(getStringFromWasm0(arg0, arg1)); - return addHeapObject(ret); -}; - export function __wbindgen_boolean_get(arg0) { const v = getObject(arg0); const ret = typeof(v) === 'boolean' ? (v ? 1 : 0) : 2; @@ -320,6 +315,11 @@ export function __wbindgen_is_string(arg0) { return ret; }; +export function __wbindgen_error_new(arg0, arg1) { + const ret = new Error(getStringFromWasm0(arg0, arg1)); + return addHeapObject(ret); +}; + export function __wbindgen_jsval_loose_eq(arg0, arg1) { const ret = getObject(arg0) == getObject(arg1); return ret; diff --git a/packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm_bg.wasm b/packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm_bg.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c969c2c1768644e55c931f3d5ca3c8d2973429c3 GIT binary patch literal 136309 zcmdSCeUu*6edk$K&ujPdJl#*Xx}}!7g>DrhZoN6J7g_>KNF@sa28=UHW<1&0LPFxD zTLw$W*iJxF2FS8Ao>}5BvvR`BHZmLd!)%Dn#LAk)A|Yql9kO9}m~+@{&RMeK? zJab3oj2*ZL>^!(5RB^~onSIximh5L>kyX)Tjjve)P zJLS9g1%VnHEtTE(h0h&1cG7whE%BlUPMy5>zPo)>yDk%+jmUwm|9d}=eE0!TyuEqt|M0;KDKR|SCm^&ACB&r z-oERuo!hoeP4BvEYR7iphb?|Q_uluwsl)f(dF=kX4y7kg9{%$FFWhw(bG&Oiy}kO# zv8kO$cief+(QPHv^8?$pW9!asSMNN0_}I}quh~9*BnZ{-wZ73KzLBllj!x~o=FU5} zZ9TSi$C0B)<~5?hPj5eR&9)>JsZ(PKxxz(74l8?txRU`CV7|NUPKtazwY{JCSFyZ_{uf&XuX-wrE{ zYNbwpE0vL`67&U)cD>T6L_w_`j@Dsw{1**G11krkU@+>g8e3hd&|(D+7}YCbBZ?|f zREwf+&==LI9|UU}u*dOcr4rSGS{U|+HPx*Il@=#a5LK&voyNo!Emy16gD{|4B^eqD zYJHU}!}Vd%P;LH?_~Aqyvj+P6eK}pyjcP6Ye0cC+tr7-9^*;D*diLzapw&1RHtT+T zQD9_p_o1W5?t9?gQ(ykv;m<>8$BqSO!+}zf2v zr-CQK4s7V?p*xR%;ek`fPCgJ^IS;Idj~~DP&fp)0!zEasJmyP(DeQYF4AQW5{Vo4< z_&Hj|b=izUL7s5xG!T%vV7vA^jJKqTB!ZUySUxcrP z|07NQR`}nBe?Oc(`M~dn*Zo5HhhaPH^#AH_HNGAGgN@O|nd<2)gLJNcHmR%+qJ8Cm zF5FNFl69ZDzPeAR&BW!W-6Xctb#9%DA4-x>Q)8WTKckA9gEjH63qKl;#i6UXb=O6K ztE6EXxpn)`@?ZD%q&7Ys&2cjgD07cL>r_zXx;c{u>ACQ|7LPc0UG$79=}}jH^p(gS zb;YC4soFQf^270U(W|PahvV|YZ&&Q$xOn(AReL=uJ)FK%(bZGFA89xpeP0i8{7TJ* z-*CzP@Zm2%y#IH9<>j}lr}v+I`VZz_j2=>ZN$ur$AOZ$y@JT>Xabb7U8lHS6oXJmL zjr?glY;oiJdXWofU#4D*2M5yNMmd`;`+(*xgXHpflgVhT?fwqh5HTyFu-} z*POA+?}F zR=cf>>rTXN-?Zja?~fZ5#^{lz$plKz>bIn7*$X>}&)bA7ruUteSmp=q7&pZ$23}so11pp5_p`wyUSnOj5t06SP{cRXwBYQ*_?O$n&mW z?f3f*xzN9ZKJkoog4fW+`pqY6uGzZ26EKj;gPrVoE}~O2noyO8Gckj&xau_UaiHNO z^K5Xc0;e$DaFfuQC*sgxdM4VZ@n27CjCIyJ#YCzLNtKuSE?V~v(tTR&zga&w%`$1} z8Rj+|Z@FQ^kV)tusizxm>qJa{-A_hclUq+iVSvX0`pAS;PQ(qvu8Mk8iNpOt>{Pd! zzDLEz3BZ_@+60AHN5TI7)6PAV7!}&gR9!VI7U>mt0NgTn+RNP0cFXsNakP>XQO$XxhkfGXox@6Pgo zS_YFY3&(!UfXW4k2*=f?;fU=DYDb1{##L*Eaz-ftXr`71z>Ioe%79RCKpggonmDZZ z_A{ZltS?Go^zjPLU#!pM{2;02Rp1@m9^v+z4c*RfxH=4S zoOX;;SJJQ4X5ukgd7(ZNujcqhVPGCi(zCC)3sdi7hWg@u-ehQ8YSn0@`F%v#gd?04kZC4nirt# z8di2c1S>Pe#HbqVgj?h)N?(qZxBW0!Nh`~O@;??<+St4fxQN0(05f6ffU`dxI@qbX z$o0B{JUw{=FS$|HS{dd^M@R=OD4C>jR)Mh5N1&2aO^JQXk= zWLC-=yWWeY4$c;udYiYm(#e}U)o7nQrrAFeLu(dcRFjQ3y%IcBf{>vK(==559*4!Mk`E>hs{=3;)9pO^yqJt+Y651SnH zb0qbk8@@5AUw;C?yAT0T?^N1D0zQVv2PvNQg^FiS>8zKOPG7pb9tG@{Q8<^mgTlG+ z&W~A-T0-Gus!TG@l$1?bVRIokTQhn0;reE-m@l$t3dP*bgVXYIQcoTavzwsH=Jw-=QWJn79Y}zpVb)d>@UBx#dj$ z)=sC5nK1v|@Uvb|(jor6`y&1NV$f=Lq`;Q$wp%U!PoMke7lU+X`WA=oV{|`#M+MXA zbHAAve1#U$iS#)&WHtWyTNJEK-{as5UQoeA`dVH9{{o#N*Ehr9`r|M?BWHq!m!6Sh z1fvqk&H&}00_oy#OAw^j*vM3f8R9i+6^AA!8`leFGjiZamEbg;at)k!Lc}QDDpA@G z0Yud2PCs{At}h*u_o9|g>9#klkgVu7eR_=B>EjwV;L(MAR8;#|*yPYBFJa&!$&Cs= z%bE4Tpnv3?9Iqt~uW;TE_|c4S7;>uc!*TT#xj8 zlg;!+b8~v%Bn?bQFX$1DuSfDtu3OeOS${e1M4E2%O*YeZ&k@;7Ur?(hM`Xu4B2|m> zj`u}&&Fg5DLEGHx*i4^-CVUgQO$@U1-^R=}(nR(ZsPP=D!NUVW;|3(UFIa1FSbTui_CXo6em z$$$IDm9v=(#r#p42w!~q;Uy}S?wWt52^oNe(QMKuPoCQK?s zSB-FK3D{sAQ5%+)4l_IjVh^)ERMlqghjg zYsThlu7Rhb-Goba8ZFm>%HmGD(MmH}a-k4EnY4MeD9Gf|n?*q;v0nXlE{`&qcA+Tv z)&CXNJYHhWx%ZoX1>%IF`$b;xhSZh+xo*&iI7ZGK3?JnS|LahG zh-;km76zn1jMn5?^YI6 zq!MN3(;Uq!EffKur~-1Bq)o-v;t7sFsLaG`Ii7=GUBQuOQQC8LG$qhSC-=={KOn3<<7czD=X{s+5_G&_ELT&B1qws^wOjmbe;FSnvS* zKBJR@O57Eu19>K6~~|9wH%FgCi98u}F(EcoK@}O`RHO*>(fak`4rhM9PsH zkn*EgV#^^)y(WX&T5b0U=3;AgdeU?M33ev!3`FL|&6wDrF%t7}G%`NcUC76Vaz19& z=&ihd4a{U%nHk(QMcpW0f|ZHhdhXQB4Vanp1`S!4;vQn$D@~Nit1G40w=HHagex&K z)Eq_DP;9Dk-TPI?Y#zq)dB8JR@T(HXa%(SbE_i3jwW@RYhIg$lhV5Vvw%~9Xw%x_B z9a;$66^md?M6=9lCYg9Ia*72 z?k6`B26Z_It8t^`Yi*b=W^QW_TS;fQgbCpiY+)|Tz_yyJ+D1ETV_C^w+ebZWV{qs zDZzGLWTmE%KqIafu+_QbT>)E6OAp(+6r2)lQPux?VG9O9-d??t(hF>bRHos;A$w64 zZy8uDKJ&x&_=3T=%ohy4Cc%I&LqbWexB-Dh9J6r6dPu`qbM3&Ow9qMH@yn&Og8A;G zl2+hMSS%HyUM>!PS*)XXEyUtC4Ek}7Ms+}eM$WW_f7O-!7ELI zdFuBnyt%w^n9mQ$FPs&rI{)@ull9G;bGTE^?5OelvJSs67MQtf@^guxWvSe(N%7SjYE4gTLRoW zCpwYoH=x1WQt5>u45wsv@t6$!2+=PE%tcblZKkj#P*+6KGM%N^NB0;MbjB#shHbLfDqT6^1(kUy{!4E{KATIKcS54{i zc8s&3-YQR3D9;m*;|UWtk+1JvjnaDxkucP$$*L{XHQXzvR;cRZ1zlvGs3s00?}=L8 zxdbyWK`&kCmio2zQ6D+p_@27n^_0cxnRNcSApL(rpv{y8>1*%*{LP)l8qQj1Ug?)k zph3R)y^Dd=vOa0}>*59#YqP}mgY*Za1<8e0ONCa=2k%aT*$0_lZiT02)9X;NWKiRr zIQJ*sIbrqzQ!2Gq2OeEbjqt%)T5Y83ZWuomS1RfidUcieqYMHu(sXzy=hfRd597$y zlPc~JQp>msWYAN8gbJz|0>`xvrqvVZIo%|@VO*u-ysSdEVr&*z6;qSGkPR$KyEb49 z4|TnTdV?SQ!6bMP5L8YWopJLHgYP&XAG{54@l=L5Myyld479U1b^{ zoTYs=^LK$br(OMvCs6$8FAr8udY2>CI>6U}Lo1Q(k7W#SF8D6qN}j9%MeHx156lk6 zd(S-ZMjmQ@f}%JyP*T`U0wJzoq!T(iCI_wHtc!LMfbGoT2%s=X2IDrO$ebf)gxKIB zhwp(Pp%{GQNAHZd$E8}2@`iyyU8Xq42AHL;OhyyM zXc9V0M+Hpy5F;>6P_G|x0SrW#r7NZmuL22N)-}LLTQY@EuEx}2H;HJ%I?T)U#8`$b z5jFjdk?e->$fn^-CxmV=3T{+yQukFer1Np;f;egi*jv#)vOj}UNhJldW>0cEICbJ4 zj~-!x9$^nXX!?@TLzI!DhxABVr$-=gfil9dAV-h{lLWT*r4#Z$pItv_7V*&dGq$yGsWP8B3?urf=KUhfnC%ujmfgKGo3UCta z=sS^snoz+!f{np`io+I^!=pL&0TR#dZb};CI0NZDjEr`5HWD))LM;-mHzkmr@D$eQ z8ZbIxYA6~<;|0NmMi~!Df?KIW!R&2#mcBR* z8yT;eFcv_IfKHGT62sjx7C`xk*9Pnc4k^1~`halN@U;g#(_m`pOU%7EeIPWhrN4f* zI>T~+hnU;6`yfPM;e+6YnIzf=%uupOg8+O$3JhT^Y4;Sh&K!iLi1n+CCr`mxg!DWB z|5mU1*66g2PvceIsB<`no%43^Q?*~y9e+@lKpq#}tajA(^p&iqaKH2%0xAwFB0TGT zMTctAm^p|t#A(wIMk4u*>?y-q7v4H9Tvnlghl2kmr|J9a^!jIL)N_HSbY@hm7g^2p zMb3;Dsp?C*kd)Mgj>Vl0WfU8qENUed)2*@ce9 zomX^mA-khvQSCKdT+Ht1SX6sM7q4b_bS$dF5&SiIWEUJA&7jxMi9gAwBSUAGqjMQG_DGG>9TloR;AEf0Zs(^@jb_TIy z+(5D;*B%}I^GVoC`nn!vQH*F;ffq8gJ@!|JfuR>d27))36Hfq7(4 zHxW4@*$RuHVtP*x5QNI+0fLqaK=dsE2+5Mv%}S*J#K6I17dn3>6;HMc`aId35y&bjuFwED1*v(*3FtCiWa=qkz-%1sG-#E4k!pGx zvq0)*#SstAN5ELr43ijnFa_PerHKSN!$Q?7DR|5y_oN2}Jw1qSEL89`nbP1j_<0H* zuWL%Rrh>g#bA(0BU?i*zH4QNf1+LL6RPUubDZizf%O7xxi;Lg8sL4Kv!i}R635Qu_ z1~wXrtjr|reu6F$x>42)Fj6h4IlAp3BTXh(ehJ)L&T%b+3-^Ev+E?uZ;3AW5p5jZ# z7Q)4dN^mj2%gzA|I)HOcyjmvzxkNb=d~A^UNSRkgFOmfg_!?-ts;apvnJLH_DB>X6 zrx8Qs=^!?=fym4u)7R{brvX&f4vMImYMH7mMO2EN<_`v|Gkd>?LpW5tAMc0tspyHY z$D5aM5db%<~>Ylk#|%VAYNVv*Mh(bq zCJm^cO_e7C%5x0JOd3i&6$5s#6%Doe0oc08OuKAsH6vkxHG``iJQ2IG&UvUQBG|>n z)cSWDDz(#tXQ~h5DS9WEP5Rf9VI}agyv*1|B$SO5f$UFT4V0xI6F*tOC1R-AJs>Mz zOud7IBC4P_C3xPSJ%No<*}wYn{qF~l?Ei(o_vqtK%w0Sio`%}dY>C6BBpiE*!Yd-z znb{C%wOj46q_Y3aV?0_s^YA14&*m3r9!V-%C<=caaDyp$|8vhm>WM$II?C1*J7UR-v!O{3 zh*(9tvqJWo)#azS#vqebR$PzidaQTtbnUWh21*lR|M)fhKP`g%l=q&XDhM_d{A}FO z;dW+M(_WqFO?p$4K2V-?Ow^?&o%w2#DR{Ya91?aY=D1JuGn;5m{0y_Q@{(q_0{GgR zVKUU1;XZTaq^~}OhxX+VK4O?n|Ey&Mm79eLcV|6{hus4%>>d;ZZsDF59DnH`fqI$z z1}^Hhk9WTVFbAtJ3b1nIcsgzxT{!zZSxpcSQnYX8`A2K}gBAqPF{GnIF{H&@f$wDu zH=i0l=2_rg`IO;$l+JMp&!sl+)05>VAekP8{FD@pa=~LUnFU~O0`@=r2=t2cz_2zw zew>^kMk@Lp$cDz8leaXx5gJ`34Aae+Sa#aBvtjr`UpiusjDndEFOaFSFn1J%kSiDf zh!gZs1&OHk+d>umc%DC0;SWTbmp~PK&5B0SQj-)tAq>kL9;5Fth3c|Qq57##0FI4h zBV*YvGo60=cw$KfZb-_ihVQD6BvpvsYpj0a+hiVS&PThq`_bH<5FBtV>$MIVUH^v4 zjn5_{CtwBisRVAdhb(Ve2vs=FxUzgMWhx9U{ewY9md$OcK=s_yx47e_sp2xiuU#1hon zv&7s5O5W2=+ugrwDG|!E=IXdXnRxcB9%@rC2+`U9}wtAP1&LbY3hlI{UC3Nn3bhe^PLTB+UkIrImC3F_+a!S=K&>2z^ zze|X#meE$mqSaVOUScgD2d@)+{~m`@zj90Z9yTf18>7G+JVE!yZ2@x<&ZjJkv}$x zf_}AFiZr3tG7L;EW>Ol-BdM0CYiJy9(0tX;%J+%hPQ3kD1g+$#*EE}Gnp5aqUJSRr z(t+|~Q6dvtpgekcH9<^5?SufA5GOT1M_Rp%tdawRHxoy`Y*nPI^aii&VSsc_BqT_k z66?AgO_O~nG?TFG4jmTZOVgw~q^DF*rPVKRD;bc`TUOJAxuXEEI}70a5YIr>YQ zCg3HVSG3iUgs?Lo49GN1AzR>Dv-D?1G!SN<5K~O0diZP6Pt!9Zj0IC5#dHc4Ndngl zi7^ghOtRzPJF+cU_{bDccsrp#sA57qeY2uIn(Ur_>0pFiX+hjxkF)!OW?2j`ZhPH< z#!X6JmO0Tz!|u&*bRron=9eJ-CFz;yX9cB3n%|&>|NQNo0@HW%Ge!xQ2X~1>34uxM z@1)U#*iBliG3a662KJzr;%QA-k58vSe5X|yj|#?XbOKu zg&jrMG)2Yrgsw61%wL&?tYpnh^#tPr43p1|bs!iT(a25^CB#3;)NGz%l2q5C`BAz) zZxL%o_a}-L$;-4xBe=1=1L%N?5S_~fkhrQS^cJyk?taRfi?_ru@{Q3^sV5twJJ@G} z!_TtK1cy(v%LFxLQR4Lvl+4tl`hB>^TxL}sKqLA9ss}mIR(r8@}nW1l2&N zST(Z1Jm2d2HF~_7GxeYucbL#VGk0NTGIu4X;!fETT5RsZcYUB2XyVB&RenrcF=?Jq zJjjtJKcvvoEBH`San3WYIWGM#t=>8g9^XKw??E7B@h z+<_^-5GG9-_D#1!Q;IuQ9GGikzmB|mHX`xEW|S#npOK3GwHuZ<^Dlec^GAxA54jXd zS=K`~1@O{KmcK-WvfSt%K1!)0IGH^JOs+^wn1u%lNT3YbP`HpU+6+dsT=61qh^h*Z zWXRE;haB=LxmHi@meW!0Mxl;?bwM=pbO^S?1#V&HIoycd%mFF5BMiz^ZW7N>g!ltxmy4%yvV5+!4UJglS42#+(HUfxlk7V&%j&OkJHCQ^PJ z%(jywsz=r=0Tpa)!+!9eGVuzUqJ6p^7*D6jt+E-I(e#(hlv-49ZMb%%S&z@wN1!ibng_q0QVPRIkPj161YK?afy zKdwSVTA9{3kt*qcJSu`qdD6U=FtVJf24?YkTe~lMTOkiq2&F1DaEM#Y#lhB^tDqD6jt5yBYMQzFT@vQy_*KNd`i|?hI@_ zjLeCuBqle!V$;l)%6J%6J&d&79IMKxscbV%2){rdXh!*xm`E@I)oP?i=|z2(n0l7A zfPt=*>xb+m`vQCs)7HLwJc18i>uuaD%Fqgr0xh@V*`)tOQi~hhtS#~ft?>RJtrfIY zru>M7;qBoXEvB)=69&GjTj8}0a&WC42DJAERe@xQsXb!VV#|lC&4S;x*$3o{$Y98x zP&K?nph>?h>3-=QAg}h@VN*QQVgyqwr%(CNt9YW#i!m8!@uPBogJ7CxNyN0nWWeS) zN;~3&?LswpJ4^=6ynb^!U>TXpIZOs5hWq;M=|JPBoWo?$&FgokgRZa7VKNxW>yJza z`0`Yr!(=d)*B_e>wAhDo4wJz|UVmabnDF%{GBS~IMF~c;0ijj^p^7_7Hof;Ls9bD` z6(BQ=U$uxwicJ=Evf?UQ7DR%oW#|cBB17x^6xYC1M3i5jW|HOcK#yi>c> z=_PG1^azd`hb2BBj)IYO(|Ai7vymU!PN$M$s|e^(-2&yc9SAXTDOdR0*}+C z#E@1t5ODfhDE=|xNu=vrU^-@Cv<)gK@L-GU)h^Oe2j2mBIbXA6qg^g| zEMCFOna2tiLPj(2=^?3b-2=}i!w}~pA{+5!+0UCH4BNCo9bn}H*O1#%PZ(LQkoa8j z2;|>%Bc4EsM%xnwfi{;UP_orv)wneaG8}|mdJ6R9$GbD~Lz)P`+)#eq-$S*UP)#;t zj!<-*>jKpnPj&|moUasRnUPeEPznh2kGPzNPizVT#z>rD0)1pAz2ii}b_;!od6kna zIqSSP2DDNGaCJ4;LDfTkKJ%TZI(epky8Tc`p~Ke^0RxhvE&#JI2H-V*7YN7+v8DzF z(pQmhECYG+BJ72S_7O%zFNLepu-6p50Pcd1(oyWrm;-&JPpq&frRJ?jFVY5ngpdEh zYq#u;_i}jcx_IBmgW&Amc)y$y|9LfrO9R08BOI=oiIWuG&mY>IX_zZC4|I#hY%4PT zRJ*&Uq0)Wje@@T4neIy=`3jY+Ta%H~CV69BWIapC<;&vIR1J>pq?$e&DuKP)g|XNm z+O)zbnQf6%wz|{?tM{fuvjeq|-H2I50rk)Q^2Hz>?mk>B3QfPMk|9da!$fys`gwA?t*k73aI{AKP+T3BzmGnnHJDXr_3*Xl~Rqcm619LJGlG{c=y%@j**A# zeHSOiZS}HvG=GU#R*Nf;*E*7nq@CG;p=u)v8~U$aYg9M{s0^d&pFP2Btp$1Ncr_~5 z1|eI-Q2b35ce@X3&PLO({*u39x(8FFWT@#LO&?M5AkS7QuBsRZ`e=Gy#jCpygJYxV zcd`qs)5z)!rgfcxTchdk>P;QJ$@bkFP5)2@t5i^-Srq6=YW*9UaU;AcTH_|uJ_%~_ zeMZwa)ci`}K6RUF6h5n`TB%eTVc=j&Fx^Ona-9Lp!8G73I|A)3!3LlS&^Hs7yychf+mfEP-jCn1G0z#bTpVz&7jSWsxK@VOK1$`oh{(#NO@kCK6iry{b5w8*6NLB zUq5OA4+|TGl%Db^7_ryf#C~DCxINrzuTmxnE3Z?eg zZAGUYlQ6h?o%$tpYLy2M_vUqq=~@IHEQAjO&l>Ag6AQz@18ywtR79`_7!0{J>J;l! z*;%{Sspr(GwZ2o_o7broOLVIC;hnn5I;GW^)+xwhai?nRc>)ZE+*Rrnq1e?OmLZps z?gsEIg9+>hb|usp?AD@(Rc|s`Er5%&d3<@p@a1R>gT&|>bLg? ze|P*`E8abyc2*-a!g#fSGURsSVJz>9Z6+r+?^B*k?JsGi{tP&)K z+#dA=J~s|)T+kDU^2gni>z3-txF9j)u2WB7trIZO1wDaj{kVIQF4dC>L1M_I>IrO{ zt&)1k`%fhBS9;{-Ua5!IcLwtQl^9O_!;#k+@~*UH>zu;s7b9;yUMZjqIVa>rm|X#T zF1=j(7`xj3xWV)BrNDEAfHLGhF7VLVAs4Gp(A-e^4M8X4H!#kj^goE!S9@?Fo`%xz zl?vb;L+KkT$T&EZG?f0n3I^>FT_VrWG!|)Y8oMIO9AWULJJe(;a-B;et+O}clw;pG z{41WrM|rbDK3!BQp?p=+?$jqlOnBm23~&Z%nzp-Qd>6tAl<=1mT(-Hq&J=Jr&Ls&i zZjaHwTg4^YEx6rWy40=aGT<^pql2u}vgXGq%lP6!mZe$QD#|hjevrjgR<@F|Owy2k z<;xH#%Rt1iLJ)Z*WCs9H$pkhrE^|Vrzo!Wr?f$+bpVVQ@&=p&PT||{5bB<Y%w#Oiyl{CkJ zVTUn7v6jj0nqVML%1YeS!iY|_9jlJDoUef&u;Npjz2yF$oFzAFIu;x==oR$Cd&KV~upwW2%yMa-t;kjY2oajBhFZp8AkF|G6G+MX^>@FZ1E#p~0^ zwP)iE9H`PHwE@%L_Ot8Ye_-y472)qU%Aw?1oakK32*`ONih zkNfy%uRqBl{j4tPE>VSKABB0&aMg`V%qZ%ezH=UP>kf;AHQhKM)NpaxRbA{IZ~c@q zRu(FuqSi&Fb+?d=5XLhCH{Ax(WV8@CMH^!8FPt6pLm+pfGkn`2 zBIu_E+&Vpvnu!O|2lOVG8hVxo^fgH6^YHu^6YY zP7zfx4o1)Mbr{I?7&*#q0lWaH&mv@Uy&<;ECCAFINm|Ac&+%+Uvr|dWR%X&CzQ%w* z3&l)Ek5*`4f@IlfKiwgvX8##QKqCO80-cS`sD}ZZIt0AdSEc@~K90jViIl>lFdthT zjT+MIRSdS2<%aR5xYNz->c8%v>czm;ATfgwws;|^>?vP9dXa50Tteq`bV>@}xPNy$cn=F>UNj?j@=?Jz(RI-rL#ZJ%2kcOV8Q;+kYdp?G*L) zK8I`b6Lc|%BejOJk?fD-j(9FZx((Bm#4ckLq4&un8vszs{D`JQNPYFegvIxA{)0Ot zlfbcoSVfKqcJ-~e)zgu_Ql{%yvupd74_5X?U6U#Cl8$6mT;TCExWynA%lN9KuMw2@ zj2sQl=xx-HXw;+nFns{k=?@y9UQh3}`W^fu1Sa~!gPb$o>u8VZJqk^0t_F8TKg%iP zbbChS-JQ`boT3q&{rt}8fPr@p7~O#l_8Wj~54jM>;MrgG*dTzRme(Qw-SHl-*u%~! zKa?or8f3LSg$TZz91`4smZip75PZ!i!FHt)KmxE<#<2R6bRLr>xbdVIZe0@sYD1mKO0nsuGc8#EP||etx}}%xc6&aHL%C)7huoL$@cKDm^R(<8tx$O( zryC((@0PCSp3WV=RMEeFji5NwRc=AC~`^o`K+bJ(X|tYXLdi=aX0}XtL=$zd{#1 zhd#h_V$gNZpzEGND@N-Xw4%538T5_PQZ=@>)CvPlHShDNNLihbUe!}kHa5eg44Wz` zHkcnHHT{%2^>@9^B2IQGFE&6U2QJagcnxv@SxX>Wg9X$4)`4|D)P89>k6w$0z1OtL9P6+zPAohvgvsDYGlS_|@1j4w zm|rlc^!5CL9j2s|^g*8_q-r)g41&}zUm$h^weTykxPzk>AtJ#%B3+2gM=nG|-bYYL zWh0+FK+)s+qL={3mk9as;N@}|KfCrOeW*!_8G&xrMM@eQgHYTX9Sh2XJ0O!Y?!YOy z3?DIWt*I6^C&=U>9uPhUpj2D)OFl?8lY2f(Y37Kb&nN|k@(Yv#WYH-WBT+$0K~3zx z4LX=oKxkhR4{~^=z-u6LczJw%bpTzbjrLdbN�@abtQF<6ZWW33Dn}3ZzKW%51Vq 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

9D+CxI*x(FydEHIEAeA>0MFS^j+T*<-@EB(tzHj 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 literal 0 HcmV?d00001 diff --git a/packages/component/src/lib/density_clustering/wasm/density_clustering_wasm_bg.wasm.d.ts b/packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm_bg.wasm.d.ts similarity index 100% rename from packages/component/src/lib/density_clustering/wasm/density_clustering_wasm_bg.wasm.d.ts rename to packages/density-clustering/density_clustering_wasm/pkg/density_clustering_wasm_bg.wasm.d.ts diff --git a/packages/density-clustering/package.json b/packages/density-clustering/package.json new file mode 100644 index 0000000..42049fb --- /dev/null +++ b/packages/density-clustering/package.json @@ -0,0 +1,17 @@ +{ + "name": "@embedding-atlas/density-clustering", + "version": "0.0.0", + "private": true, + "description": "A WebAssembly implementation of a density-based clustering algorithm", + "main": "density_clustering_wasm/js/index.js", + "module": "density_clustering_wasm/js/index.js", + "type": "module", + "scripts": { + "build": "npx wasm-pack build --release --target web density_clustering_wasm && rm density_clustering_wasm/pkg/.gitignore density_clustering_wasm/pkg/package.json" + }, + "files": [ + "density_clustering_wasm/js/index.js", + "density_clustering_wasm/pkg/density_clustering_wasm.js", + "density_clustering_wasm/pkg/density_clustering_wasm_bg.wasm" + ] +} diff --git a/packages/embedding-atlas/src/component.ts b/packages/embedding-atlas/src/component.ts index 6673e45..b79169c 100644 --- a/packages/embedding-atlas/src/component.ts +++ b/packages/embedding-atlas/src/component.ts @@ -7,13 +7,7 @@ export { type EmbeddingViewProps, } from "@embedding-atlas/component"; -export { - defaultCategoryColors, - findClusters, - maxDensityModeCategories, - type Cluster, - type FindClustersOptions, -} from "@embedding-atlas/component"; +export { defaultCategoryColors, maxDensityModeCategories } from "@embedding-atlas/component"; export type { AutomaticLabelsConfig, diff --git a/packages/embedding-atlas/src/density_clustering.ts b/packages/embedding-atlas/src/density_clustering.ts new file mode 100644 index 0000000..f8937d1 --- /dev/null +++ b/packages/embedding-atlas/src/density_clustering.ts @@ -0,0 +1,3 @@ +// Copyright (c) 2025 Apple Inc. Licensed under MIT License. + +export { findClusters, type Cluster, type FindClustersOptions } from "@embedding-atlas/density-clustering"; diff --git a/packages/embedding-atlas/src/index.ts b/packages/embedding-atlas/src/index.ts index 77d0bb9..4469835 100644 --- a/packages/embedding-atlas/src/index.ts +++ b/packages/embedding-atlas/src/index.ts @@ -4,4 +4,5 @@ export * from "./component.js"; export * from "./table.js"; export * from "./viewer.js"; +export * from "./density_clustering.js"; export * from "./umap.js"; diff --git a/packages/embedding-atlas/vite.config.js b/packages/embedding-atlas/vite.config.js index d6f5f41..ff13069 100644 --- a/packages/embedding-atlas/vite.config.js +++ b/packages/embedding-atlas/vite.config.js @@ -24,6 +24,7 @@ export default defineConfig({ "@embedding-atlas/table", "@embedding-atlas/viewer", "@embedding-atlas/umap-wasm", + "@embedding-atlas/density-clustering", ], }), fixAbsoluteImport(),