Midsommer, my library, also comes with a Svelte component to visualize the resulting SOM, and it uses a force-directed graph to display the underlying shape of the map (cosine similarity between adjacent neurons informs the edge weights, basically).
You can see the code here, as well as a couple examples, including one that represents the ~300-odd books I've read since the start of the pandemic. I'm really curious what people think.