What I built
A single-page interactive that takes a catalogue of 207 books — every title on the two bookcases in my office — and renders it as a portrait of the reader rather than a list. Four visualizations, each built to surface something a spreadsheet can’t:
- What the shelf is made of — a squarified treemap that defaults to page-volume instead of title-count. Flip the toggle and the ranking reshuffles: a handful of doorstop histories outweigh a whole shelf of thin business paperbacks.
- The reading marathon — drag your reading speed and watch the whole collection resolve into hours, days-without-sleep, and minutes-per-day-for-a-year. ~25 million words, end to end.
- Six centuries on one shelf — every book placed by the year its ideas were first published, on a deliberately broken axis. The collection looks contemporary, but its oldest voice (Epictetus, ~135 CE) predates its newest by nearly 1,900 years.
- The barbell — every book plotted on a single systems↔humanities axis. The distribution is sharply bimodal: two dense masses with a thin waist between them. A library that reads like a builder and a humanist, with little patience for the middle.
Self-contained HTML file. Hand-rolled SVG charts, a squarified-treemap layout, and a beeswarm packer — no charting library, no build step, no dependencies.
Why I built it
It started as a chore: count and inventory the books on two overcrowded bookcases. The catalogue was the deliverable. But a flat list of 207 titles tells you nothing — it’s data with no shape. The interesting question wasn’t what I own, it was what the collection says: where my attention has actually gone over ten years, measured honestly in pages and centuries rather than in the stories I tell myself about my taste. The visualization is the catalogue made legible — a decade of reading you can read in a minute.