Charts · 32

Lunary’s grimoire, mapped by meaning

Lunary’s grimoire is 1,958 articles on crystals, spells, tarot, numbers and the sky. I turned each one into a list of 1,024 numbers with a small embedding model running on my Mac mini, so that articles about similar things get similar numbers, and then flattened them onto a page. Close together means close in meaning. The first thing it shows is the shape of the site: 962 of the articles are horoscopes, and they form a continent of their own. Obsidian is highlighted; its nearest neighbours by meaning are snowflake obsidian, onyx, serpentine.

monthly horoscopescrystalstarotglossaryObsidian

Notes

Generated on 19 October 2026 by scripts/labs/grimoire_map.py, from the Lunary repository and nothing else: no database, no API. The article list is the grimoire’s own search index. Each article’s text is its title, summary and keywords, plus its body fields where the repository holds them as data (503 articles: crystals, spells, tarot cards, runes, angel numbers, life path numbers, chakras and correspondences). The other articles, the monthly horoscopes above all, are generated in code from the sign and the month when the page renders, so the map knows them only by title and keywords, which is part of why they cluster so tightly. Embeddings are qwen3-embedding:0.6b through Ollama on the Mac mini, all 1,958 in about two minutes, 1,024 dimensions each, compared by cosine similarity. The neighbours listed in the panel are computed in all 1,024 dimensions; the map is only a picture of them.

The layout is t-SNE: PCA down to 50 dimensions, then exact t-SNE with perplexity 30 for 1,000 iterations from a PCA start, implemented in NumPy for this chart. t-SNE keeps neighbourhoods and gives up on everything else, so trust what is next to what, not the size of a cluster or the distance between two of them. Sources: van der Maaten and Hinton, Visualizing Data using t-SNE (2008); Wattenberg, Viégas and Johnson, How to Use t-SNE Effectively (Distill, 2016); Belkina et al., Automated optimized parameters for t-SNE (2019); Zhang et al., Qwen3 Embedding (2025).