Inspiration

Everyone at events is on their phone. like literally at events made for meeting people. Social apps are built to keep you scrolling, and it works, even when you're standing next to someone you'd actually vibe with. I wanted to build something that actively tries to get you to put it down.

What it does

Same Room is a live map of everyone physically in the room right now. You do a 30-second vibe check, AI matches you with 3 people actually present who you'll click with, gives you a mission ("rank the worst free drink at the bar, 10 min"), and you only unlock the group chat + a venue perk after you've actually met them. Then it dissolves when you leave. no feed, no likes, no scroll. The whole point is to close it.

How we built it

react + vite + tailwind, single page, no backend needed. The live constellation is d3 force-directed, nodes drift around, and when the match lands, 3 nodes pull toward you with sequenced line animations and a pulse. AI matching and mission gen run on the GLM API, it takes everyone's vibe answers, clusters by real similarity, picks your crew, and writes a custom icebreaker per group. Both AI calls have fallbacks, so nothing breaks on stage.

Challenges we ran into

The constellation was the hard part. Getting D3 to play nicely with React state, keeping node positions stable on reshuffle so nothing teleports, making "add person" look alive, not glitchy. The line-draw animation needed switching from SVG line to path to get getTotalLength() working. spent way too long on that one.

Accomplishments that we're proud of

The match reveal moment. 3 nodes pulling in, lines drawing one by one, sonar pulse firing as each locks. It genuinely makes people go "wait what," and the anti-feed thing isn't just copy, it's every design decision. No feature got added if it pulled toward engagement.

What we learned

Designing something that wants you to close it is genuinely hard. Every instinct as a builder pulls toward keeping people in. I had to actively fight that the whole way through.

What's next for Same Room

real venue partnerships, zymix integration for the payment rail on group perks, actual live check-in backend so the room twin is real presence not seeded data.

Built With

  • d3-v7-(force-directed-graph)
  • javascript
  • javascript-?-anthropic-claude-api-(claude-sonnet-4-6)-for-ai-matching-+-mission-generation
  • no-database
  • react-18
  • tailwind-css-3
  • vite
  • z.ai-glm-4-plus-(openai-compatible-endpoint)-?-no-backend
Share this project:

Updates