DEV Community

Seongjin Kang
Seongjin Kang

Posted on

I mapped how 241 anonymous users moved between rooms — a live "collective thought map"

A few weeks ago I wrote about building a forum where rooms die when people stop talking. The other half of that idea: there are no profiles — the rooms you pass through draw a map that becomes your identity.

So what does that look like for everyone at once? I layered every room-to-room move real users made in the last 30 days into one map. It's live and zoomable: https://noding.app/map?lang=en (refreshes every 5 minutes).

Collective thought map — 241 people, 111 rooms, 131 moves

How it's built

  • Data: a Transition collection (from room → to room) aggregated by edge. Re-entering the same room, lingering, and leaving to the plaza don't count as paths.
  • Excluded: seeded persona accounts, staff accounts, bots, and flagged/hidden rooms. Personas are denormalized as isSeed on each transition, so they drop out with one $match.
  • Rendering: no libraries — a hand-rolled canvas force layout. Lesson learned: cap the repulsion force and the per-step velocity, or a couple of nodes get flung to infinity and your "fit to view" collapses the rest into a corner.
  • Progressive labels: each room gets a zoom threshold by visit rank, so names fade in as you zoom (capped at 2.6×). Particles flow along edges in the direction of the move.
  • One aggregation service feeds both the internal (authenticated) diagnostic endpoint and the public (trimmed, 5-min cached) one.

What it shows (after exclusions: 241 people · 111 rooms · 131 moves)

  • People entered rooms 669 times straight from the plaza, but moved room-to-room only 131 times. Four visits out of five end in the first room. If "your path is your identity" is going to work, getting people to a second room is the bottleneck — the map made that obvious.
  • The hub is 프로그래밍 (programming) — the first stop for a wave of visitors from a Korean tech news site — with the thickest flow going on to llmLLM의 한계 ("limits of LLMs").
  • Only 6 of 126 edges were walked in the same direction by 2+ people. Everything else is a path one person took. "Meeting people who walked the same path" is still a hypothesis.
  • Korean and English rooms barely mix (5 crossings).

What's next

The map now lives on the landing page, and each person's own map is shown under My. I also started surfacing "people who passed through X went on to Y next" from the collective data as a first, very thin "next room" forecast. Whether that sharpens as the map grows is the next thing to measure.

If you've built graph visualizations for small-but-growing datasets, I'd love to hear what you'd do differently.

Top comments (0)