Resources on audio & DSP--Making music on Linux Resources on audio & DSP--Luthier Making music on Linux--Rust Making music on Linux--Custom sequencer Luthier--Making music on Linux Luthier--Sounds & Melodies Rust--Resources on audio & DSP Rust--Luthier Custom sequencer--Resources on audio & DSP Custom sequencer--Custom synth Custom synth--Resources on audio & DSP Custom synth--GPU Synth Decentralisation--Daily open-source software guide Decentralisation--Caddy Daily open-source software guide--Colour scheme Daily open-source software guide--Content creation workflow Caddy--Daily open-source software guide Caddy--Contact 2022's Devlog--2024's Devlog 2022's Devlog--Travel 2024's Devlog--About 2024's Devlog--System configuration Travel--2023's Devlog Travel--Cosmic Horror The Ławka Initiative--The word *Bączek* The Ławka Initiative--Paintings The word *Bączek*--Reading The word *Bączek*--Cosmic Horror Paintings--The word *Bączek* Paintings--The Waiting room Reading--Movies/shows Reading--Excellent Words Movies/shows--Listening Movies/shows--Cosmic Horror Excellent Words--The word *Bączek* Excellent Words--Paintings About--System configuration About--2023's Devlog System configuration--Rust System configuration--NixOs The Waiting room--Travel The Waiting room--How to think How to think--Paintings How to think--Exocortex Listening--2023's Devlog Listening--Cosmic Horror 2023's Devlog--2024's Devlog 2023's Devlog--Cosmic Horror Cosmic Horror--Reading Cosmic Horror--Excellent Words Software alternatives--Daily open-source software guide Software alternatives--NixOs NixOs--Decentralisation NixOs--Daily open-source software guide Bookmarks--Contact Bookmarks--Website experience Contact--Website experience Contact--Registry-based search engine Website experience--Registry-based search engine Website experience--Map Registry-based search engine--Bookmarks Registry-based search engine--Exocortex Map--Bookmarks Map--Registry-based search engine Colour scheme--System configuration Colour scheme--NixOs Content creation workflow--Bookmarks Content creation workflow--Colour scheme GPU Synth--Resources on audio & DSP GPU Synth--Custom sequencer Exocortex--Website experience Exocortex--Map Sounds & Melodies--Custom synth Sounds & Melodies--Listening Piano--Sounds & Melodies Piano--Music Transcribing Music Transcribing--Luthier Music Transcribing--Sounds & Melodies Resources on audio & DSP Resources on audio & DSP Making music on Linux Making music on Linux Luthier Luthier Rust Rust Custom sequencer Custom sequencer Custom synth Custom synth Decentralisation Decentralisation Daily open-source software guide Daily open- source software guide Caddy Caddy 2022's Devlog 2022's Devlog 2024's Devlog 2024's Devlog ! Travel Travel The Ławka Initiative The Ławka Initiative The word *Bączek* The word *Bączek* Paintings Paintings Reading Reading Movies/shows Movies/shows Excellent Words Excellent Words About About System configuration System configuration The Waiting room The Waiting room How to think How to think Listening Listening 2023's Devlog 2023's Devlog ! Cosmic Horror Cosmic Horror Software alternatives Software alternatives ! NixOs NixOs Bookmarks Bookmarks Contact Contact Website experience Website experience Registry-based search engine Registry-based search engine Map Map Colour scheme Colour scheme Content creation workflow Content creation workflow GPU Synth GPU Synth Exocortex Exocortex Sounds & Melodies Sounds & Melodies Piano Piano Music Transcribing Music Transcribing
*Note*: you can click on each page, all nodes are links!

This is an automatically generated graph containing all pages on my websites, along with the connections calculated using sentence embeddings. If you're interested, you can read the source code.

How is this thing generated?

  1. All of the posts are fed through an embeddings generator, I'm using the Sentence Transformers Python library.
  2. The embeddings are passed to UMAP, a dimensionality reduction algorithm, which takes in multi-dimensional embeddings and projects it down to a 2D representation, which can be drawn as a graph. The projection is done so that the high-level "structure" of the data is preserved.
  3. I'm connecting each post with its top 2 nearest posts (using more clutters up the map).
  4. graphviz renders the graph and outputs it as an SVG file.

A much better description on Simon Willison's blog.

Future plans

  1. Make this thing look more "map-alike", whatever that might mean.
  2. Experiment with text clusterisation & dimensionality reduction algorithms, such as:
    • tSNE
    • K-means clustering
    • UMAP
    • Latent Dirichlet allocation
    • DBSCAN
  3. Add #tags.
  4. Introduce color-coding and other visual markers, allowing viewers to make sense of the data based on different metrics:
    • Post tags
    • Links to/from other posts
    • Links outside (to the netsphere)
    • Other connections generated by NLP
  5. Check out KagiSearch/vectordb