ESSAY ATLAS
Essay Atlas graph read by an admiring reader: no contradictions Essay Atlas graph read neutrally: two contradictions Essay Atlas graph read adversarially: forty-nine contradictions Essay Atlas graph read by a disagreeing peer: four contradictions

interactive project →

Essay Atlas is an interface for mapping the intellectual territory of my body of written work. it takes a set of published essays, rough ideas, reading notes, and unresolved questions — and surfaces the hidden structure connecting them.

THE QUESTION

i started writing publicly at the start of this year, after being consistent for three months or so i started wondering: do i have a common theme that in all of my essays? is there a clear pattern of some sort of beliefs and themes? have i ever contradicted a claim i made in an older essay? what are the hidden patterns in my writings that i (or a human) may not be able to observe?

what started as a simple question ended up being this project — essay atlas. an interface which lets me see how my essays are connected by not-so-obvious themes, how my reading habits contribute to my writings. it ended up being a tool that helped me understand my own writing better. it didn't hand me my contradictions but it did propose candidates, and rereading the essays showed me which ones were real.

i took the whole thing a step further and created 4 “personas” for the llm that produces the hidden patterns from my writings:

  • sycophantic: the admiring friend who’ll never say anything bad about your work
  • neutral: the neutral friend who’ll say as is, doesn’t matter if its positive or negative
  • adversarial: the not-really-a-friend who’ll go out of his way to say something negative
  • peer: the friend with their own views, who takes your work seriously enough to argue back

this persona experiment turned out to be really interesting because now the question became “if i change who i ask it to be, does the structure change — and if it does, which structure was ever real?”

WHAT IS THE “CORPUS” HERE

the idea was to run a llm on my corpus to find out all the patterns and insights, but what all does comprises a corpus?

i have this weird habit of saving every single thing i read — a technical blog, a substack essay, a news article, and everything in between.

and i’m also a serial notes app user, i log down every essay idea, every thought (sometimes, which turns out to be nonsensical), things i find interesting from the book i’m reading, excerpts from my favourite pieces of blogs etc.

i never really thought these quirky habits would ever be helpful in any sort of way, but these two things along with my written essays turned out to be the backbone of this project.

so, the corpus is just a folder and inside that folder the structure was:

  • /ideas: this folder consisted of a single .md file containing 30+ essay ideas — some were nothing more than a thought while some were half fleshed out essay drafts.
  • /published: an .md file containing all of the essays i’ve published
  • /threads: interesting things i’ve read in books/blogs/essays/, ideas that i’d like to explore through essays sometime in future
  • /reading: .md file containing all pieces of writings (books and online media, both) i’ve read in the last 4-6 weeks
  • /output: output files the llm generated after going through all of the above corpus

HOW WAS THE ATLAS CREATED

The project was built in five sequential analysis stages, each saving its output as JSON before the next stage ran.

STAGE 1 — DEEP ESSAY ANALYSIS

each published essay was read and analyzed for: surface topic, what it's actually about underneath, intellectual moves it makes, questions it leaves open, metaphors and framings it uses, and recurring tensions.

STAGE 2 — PRELIMINARY THEME GRAPH

the essay analyses were read together to identify: meta-themes spanning multiple essays, recurring intellectual habits (framings), tensions and contradictions between essays, and questions that resurface. these became the first non-essay nodes. a weighted graph was built with edges connecting essays to themes and to each other.

WHAT’S THE SCHEMA FOR NODES AND EDGES?
Nodes: { id, label, type: "essay"|"theme"|"idea"|"thread"|"reading"|"question", description, source_files[] }
Edges: { source, target, relationship, strength: 1-5 }

STAGE 3 — IDEAS AND THREADS

Every rough idea file and thread was read and placed on the existing graph. For each item: raw material was summarized, the latent question or tension was identified, 2–3 possible essay angles were proposed, and a novelty assessment was made (genuinely new territory vs. a repackaging of existing themes). New nodes and edges were added.

STAGE 4 — READING NOTES

five weeks of my readings (books and online essays) were layered in. only readings that genuinely changed or complicated existing themes were added as nodes — not everything, only what created new signal.

STAGE 5 — THE CREATION

Essay Atlas was built: a D3.js force-directed visualization was generated from the graph data. Node positions are seeded radially by type before the simulation runs, so essays act as gravity wells and less-connected nodes settle toward the periphery.

The atlas consisted of 64 nodes, 226 typed and weighted edges.

STAGE 6 — THE PERSONAS

the four reader stances (sycophantic, neutral, adversarial, peer) each drew their own edges over the same 64 nodes.

the node positions are fixed, so only the edges move between the different personality stances.

THINGS ONLY THE ATLAS COULD SEE

  • one essay of mine (the age of flattening) sits at the centre of every map. under all four readers and all three repeated runs, it had more connections than anything else. seven out of seven.
  • it pointed at essays i hadn't written yet. two of the five ideas it ranked most ripe in march became published essays: the geometry of taste and the search never ends. though, the idea it ranked first never became an essay.
  • asking a llm for a review of your writing matters a lot on its system prompt: the difference in output produced by all four stances is not small:
stance edges contradictions
admiring1930
neutral912
adversarial4949
peer1264

WHERE THE ATLAS LACKED

"neutral" is not the absence of a stance. asked for an objective reading, the model produced something far closer to the admirer than the critic — 2 contradictions where the adversarial stance found 49, in identical text.

the model cannot call anything unimportant. across the three repeated neutral runs, ~80% of edges were rated 4 or 5 out of 5; the admiring reader rated 189 of its 193 edges that high. this was the most stable number in the project.

the structure does not reproduce. i ran the identical neutral prompt three times. it found 2, 1 and 2 contradictions — a steady count — but no pair appeared in all three runs: four different pairs, only one repeated. it looks less like detecting fault lines than meeting a quota.

repetition isn't truth. the contradiction it flagged most often — permanence as the problem in one essay, humanity's great leap in another — came up in four of seven readings. reread, it doesn't hold: one essay is about disappearing posts, the other about preserving complex thought. its most repeated finding was a false one.

APPENDIX

Why a graph?

A list of essays doesn't show what they share. A thematic taxonomy doesn't show tensions. A graph shows both structure and surprise — you can see at a glance which ideas are well-integrated into the existing body of work and which are still floating.

The analysis framework

The key analytical move throughout is going beneath the surface topic. An essay about Snapchat is really about ephemerality and honesty. An essay about sampling is really about how novelty requires distance. The graph is built from these deeper readings, not from surface subjects — which is why edges between unrelated-looking essays often carry more meaning than edges between obviously similar ones.

Three types of nodes carry different weights:

  • Essays are the gravity wells. They're the produced, finished thinking. Everything connects to them or away from them.
  • Themes and questions are abstractions distilled from the essays. A theme like Objects as Portals or Attention as a Creative Act names something that recurs across the work without being the explicit subject of any single essay.
  • Ideas, threads, and readings are the frontier. They haven't been written yet. How ready one is shows in its connections: an idea strongly linked to several essays and themes has more material around it than one hanging off a single weak link. Position only loosely reflects this, since the layout was seeded by node type.
Edge relationships

Edges are typed by their relationship: extends, explores, contradicts, complicates, grounds, resonates with, raises question, informs. Strength (1–5) captures how direct and significant the connection is. A strength-5 contradicts edge between two essays is more valuable than a strength-2 explores edge — it marks a live tension worth writing toward.

Frontier detection

A node's essay connections count (how many published essays it's connected to, directly or through one hop) is the primary signal for how explored it is. Nodes with 0–1 essay connections are "frontier territory" — ideas that exist in the intellectual world of this writer but haven't been worked through yet.

Ripeness ranking

Ideas are ranked by the sum of all their edge strengths — a proxy for how densely connected they are to the rest of the intellectual world. A high-strength-sum idea isn't just connected to many things; it's strongly connected. These are the ideas most likely to produce a rich essay because the surrounding material already exists.

WHY THE HANDS DON'T MOVE THE NODES

the map responds to hand gestures over webcam — pinch to open a node, fist to pan etc. the hands can be used for navigation but not to rearrange nodes. this constraint is deliberate: the layout here is the llm’s claim about my corpus, not mine, so letting me drag nodes would be spectacle that changes nothing about what the map means.

LIMITATIONS

each of the four stances was run once. only the neutral stance was tested for run-to-run stability; the adversarial stance was not. one model (claude opus 4.5), one corpus, and i am both the author of the essays and the judge of which contradictions are genuine.

nothing was pre-registered — the findings emerged from looking. this is exploratory work that generated hypotheses, not a controlled study. a controlled version would fix the metric and failure condition in advance, test every stance for stability, and run against a corpus i didn't write.

the map is a snapshot, not a history. when a rough idea becomes an essay it stops being an idea — it leaves the idea pile entirely. so the map cannot show an idea turning into an essay, only what sits next to what right now.