Skip to content

explore: 3D map of posts [preview] - #149

Merged
benthecoder merged 5 commits into
mainfrom
knowledge-map-3d
Oct 29, 2026
Merged

benthecoder merged 5 commits into
mainfrom
knowledge-map-3d

Conversation

@benthecoder

@benthecoder benthecoder commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

The 2D map on /start, with a plain view in 3D link under it, styled like every other link there. Light

start light

Dark

start dark

The 3D map at /explore. It turns on its own, about once every 25 seconds, and near points are larger and darker than far ones. The same cloud from two angles:

explore angle 1

explore angle 2

A new full-screen page at /explore (working name). It shows all 1,042 posts as points in 3D, colored by the same 21 topic clusters as the 2D map. It turns slowly on its own. Drag or use the arrow keys to orbit, scroll or pinch to zoom, hover for the title and date, and click to open the post. Topic labels float at each cluster's center and fade with depth, and overlapping labels are skipped.

Not touched: /start, the 2D map and the nav. Nothing links to /explore yet.

How it works

  • pnpm generate:knowledge-map-3d projects the same per-post vectors as the 2D map into 3D with UMAP (same parameters, seed 42) and reuses the existing cluster labels. It makes no LLM calls, takes about 13s, and writes data/knowledge-map-3d.json (32KB, committed).
  • The page is a plain that does its own rotation and perspective, with no three.js and no new dependency. Colors come from the theme tokens and the 2D map's cluster palette. The render loop idles when still, pauses in hidden tabs, and doesn't auto-rotate under reduced motion. A screen-reader list links every post by topic.

Checked in a browser at 1280×800 and 375×812, light and dark: orbiting, hover, click-through, label placement and first paint. 581 tests pass, plus knip.

for ben (design calls):

  • The route name. /explore is a placeholder.
  • Where to link it from: /start, the nav, or nowhere.
  • Whether /start should drop its 2D map once this exists.
  • The 3D file isn't regenerated by prebuild. Rerun the script and commit after the 2D map changes.

til: a canvas this size doesn't need WebGL. Rotating 1k points, dividing by depth and painting back to front is a few lines and stays at 60fps.

@vercel

vercel Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
blog Ignored Ignored Preview Oct 29, 2026 5:55am UTC

@benthecoder

Copy link
Copy Markdown
Owner Author

Rebased on main after #158. The 3D coordinates are regenerated against the new 21-topic, 1,042-post knowledge map (fingerprints match), so /explore now reads "1,042 posts · 21 topics". /explore also uses the pageMetadata helper from #157, so it shares with its own card (og:title explore, og:url /explore). 604 tests plus knip pass. Still a draft: the route name and where to link it are yours to decide.

@benthecoder
benthecoder marked this pull request as ready for review October 29, 2026 05:58
@benthecoder
benthecoder merged commit 531fe62 into main Oct 29, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant