
Oooo I bet there are some interesting things to be done with context.isPointinPath().
From: https://beta.observablehq.com/@mbostock/pixelated-world

Oooo I bet there are some interesting things to be done with context.isPointinPath().
From: https://beta.observablehq.com/@mbostock/pixelated-world

I didn't think this all the way through and ran UMAP on each of these groups separately instead of at the same time.

I added T-SNE and UMAP with min_dist=0.8 algorithm options to the UMAP explorer. Three.js & tween.js animating the transition of 70,000 points no problem.

You can see how UMAP clusters are structured by things like the orientation of the number if you travel along their axes.

Making a hover display in three.js using a canvas as a texture. Canvas size needs to be a power of two. I'm using Figma to design it and then I can just move the coordinates into code.

Three.js interface for UMAP run on MNIST is running. 70,000 digit images rendered using sprite sheets and a fragment shader to offset.

I've started dissecting the WestLangley example. The coordinates for the sprite sheet start in the bottom left!?

Through desperate googling I rediscovered this great post and project on using three.js for T-SNE visualization.
From: https://douglasduhaime.com/posts/visualizing-tsne-maps-with-three-js.html