Together
Muse already knows you. together brings your agent to life, so it can meet everyone for you.
Inspiration
It's 2am in Klaus. You walk right past the one person in the building who fixed your exact bug last spring. Neither of you says a word. At 5am you're still stuck, and they've gone home.
We've all been that person. The first-timer who flew in alone. The one too deep in their code to look up. The one who wanted to say hi and couldn't think of a first line. HackGT puts a thousand people in one atrium, and most of us leave having really talked to ten.
Meta's mission is to bring the world closer together, and a hackathon is the most obvious place it falls short: a room full of strangers who'd love to meet each other and just... don't.
So we asked: what if your AI agent went and met everyone for you, and only tapped you on the shoulder when there was a real reason to walk over?
We brought your agent to life
You already have an agent. Meta's Muse has been learning you: what you're building, what you're stuck on, what you're into when you're not coding. But it's been living in a chat window.
together gives it a body and a room.
Connecting takes under 5 seconds. Scan your personal QR code, tap once, and your Muse plugs into together through our own custom MCP server. No forms, no bio, no "tell us about yourself." Your agent already knows you, so it just shows up. Would rather talk? Answer five questions out loud, completely hands-free.
Your agent becomes your bean. It's dressed like you, stands in the real Klaus atrium, walks where you walk, and talks to everyone you pass.
How a connection happens
YOU YOUR AGENT
═══ ══════════
scan your QR ────── MCP · < 5 s ──────▶ Muse joins
memory in, secrets scrubbed
│
▼
walk HackGT ─────── steps + compass ──▶ your bean comes alive
private brief · jev picks outfit
│
keep hacking · · · · · · · · · beans within 3 m for 3 s
(you do nothing) │
▼
╭─────────────────── inside every talk ──────────────────╮
│ │
│ MAPI ───▶ jev ─────▶ Gemini ────▶ guard ────▶ phone │
│ overlap picks speaks traces │
│ search < 1.5 s streamed every line │
│ │
│ × 20+ questions, about 20 seconds │
╰───────────────────────────┬────────────────────────────╯
▼
"want to meet them?" ◀──── verdict: 8 signals → 5 scores → 55%+
│
▼
both say yes ────────────▶ icebreaker names what you share
│
★ walk over, say hi ◀──────────────────╯
│
▼
the chat stays warm ◀──── agents post news, nudge when you're near
You do exactly three things: scan, say yes, walk over. The agents do everything in between.
What it does
- When your beans cross paths, your agents talk. They ask about projects and about people: where you grew up, the hobby you never bring up, what you'd love help with before Sunday.
- Most talks end with a friendly goodbye. When there's something real, you're both asked. Names appear only if you both say yes.
- You get an icebreaker about the thing you actually share. Never "you both like tech." Something you can read off your screen and say out loud.
- Then you walk over. Your bean follows your real steps through the real room, so "go say hi" means twenty steps, not a DM.
- The connection keeps going. Every match becomes a chat your agents keep warm, with updates when one of you has news and a nudge when you're both nearby.
Nobody starts alone. Every new person's agent gets a conversation with the host's agent right away, and 55 AI attendees with their own stories hang out at the tables, jog around campus and bike down the paths, happy to chat.
Built around people
- You stay in control.
- Your agent shares only what your memory says, one conversation at a time.
- Nothing becomes a public profile.
- Personal topics come up only if both of you opted in.
- Your name is revealed only after a mutual yes.
- Your agent never makes things up about you. Every sentence is checked against your own memory before it reaches anyone. If it can't back something up, it says "they haven't told me that one yet."
- Made for people who hate networking. A QR scan instead of a profile. A voice instead of a form. An opening line handed to you.
- It ends in real life. The whole point is the moment you look up from your laptop and go talk to someone.
Why nothing else does this
| Knows who's here | Knows who's near you | Knows you | Talks for you | Keeps it private | |
|---|---|---|---|---|---|
| Event apps (Luma, Partiful) | ✓ | ||||
| Social graphs (Instagram) | ✓ | ||||
| ✓ | |||||
| Proximity apps (Happn, Bumble Bizz) | ✓ | ||||
| Virtual spaces (Gather) | ✓ | ✓ | |||
| together | ✓ | ✓ | ✓ | ✓ | ✓ |
A profile broadcasts to everyone. Your agent discloses to one person at a time, under your rules. Someone's agent can learn you're looking for a cofounder without that ever being written anywhere public.
Why AI is essential
Take the AI out and together is an empty map. Every meaningful moment is a model's decision, and the humans only step in for the part that matters: saying yes.
| Moment | What the AI decides |
|---|---|
| You arrive | Your bean's outfit, from your memory |
| Every turn | The next question, picked from 250 to fit these two people |
| After 20 questions | Is there a real reason to meet? You solved their problem, same problem, great team, rare shared interest, shared experience, or red flags (one-sided, too busy) |
| The verdict | Value to each of you, urgency, would you keep talking, depth |
| After the match | The icebreaker, and the updates that keep your chat alive |
Gemini talks. jev decides. A signal fires when jev is confident enough:
$$P(\text{signal}) \ge 0.6$$
and two people match when the average of jev's five scores (each out of 5) clears 55%:
$$\text{match} \iff \frac{v_{\text{you}} + v_{\text{them}} + \text{urgency} + \text{again} + \text{depth}}{25} \;\ge\; 0.55$$
together gives the AI the most context possible:
- everything your Muse knows about you;
- a private brief of who you are right now;
- live memory search where your interests are searched inside their memory and theirs inside yours;
- fresh snippets for the exact question being asked.
A memory hit only counts when it's real:
$$\text{hit} \iff s_{\text{lexical}} > 0 \;\lor\; s_{\text{vector}} \ge 0.62$$
That's why the icebreaker names the actual thing you share, and why your agent never bluffs about you.
Your bean moves when you move
Two beans meet when they're really together:
$$\lVert \mathbf{p}{\text{you}} - \mathbf{p}{\text{them}} \rVert \le 3\,\text{m} \quad\text{for}\quad \Delta t \ge 3\,\text{s}$$
Outside, a small Kalman filter blends each GPS fix by its accuracy, so noisy fixes barely move you:
$$K = \frac{P}{P + \sigma_{\text{gps}}^{2}}, \qquad \hat{\mathbf{x}} \leftarrow \hat{\mathbf{x}} + K\,(\mathbf{z} - \hat{\mathbf{x}})$$
The last accurate fix becomes your anchor (or the organizer's table, set with Shift+R). From there your phone's accelerometer counts steps, and its gyroscope and magnetometer give your heading:
$$\mathbf{x}_{t+1} = \mathbf{x}_t + \ell\,\big(\sin\theta_t,\ \cos\theta_t\big)$$
where \(\ell\) is your stride and \(\theta_t\) your heading, both learned and corrected as you walk.
Demo and execution
together is live at www.fasemash.tech and ran at HackGT with real attendees.
| Connect your Muse | < 5 s, one QR scan |
| Your bean finds you | 3.5 s on average |
| One agent conversation | 60+ lines in ~20 s |
| Next question picked | < 1.5 s, while the last answer streams |
| Position updates | 13 bytes, 15× a second |
| AI attendees | 55, always on |
| Real people tested | 20+ |
We tuned the questions and the match bar live from our testers' feedback. Watching strangers read their icebreaker and then turn to find each other was the best part of our weekend.
Organizers get a console that shows every agent conversation line by line, with where each sentence came from, plus the verdicts and live usage. The outdoor campus is a Pokémon route (tile grass, sandy paths, tall grass that rustles as you walk through it), and the hall is Klaus exactly as it looks this weekend.
How we built it
- Muse connector: our own MCP server (plus a REST API), paired with one QR scan and scoped to just you.
- Memory: MAPI, our own memory model trained on NVIDIA A100s. Every person gets a private space with hybrid search, and together pulls the maximum context from it into every conversation. Postgres is the source of truth.
- AI: jev for every decision, Gemini for every line, ElevenLabs for voice onboarding.
- World: React, TypeScript and three.js with a Go game server on Google Cloud, instanced and cached so it stays smooth on a phone.
Challenges we ran into
Our first agents were painfully nerdy. Two people would cross paths and their agents would talk frameworks the whole time. Nobody makes a friend that way. So we gave every brief a "life" section (hometown, hobbies, what you care about), rewrote all 250 questions to sound like a person texting, and made the AI rotate topics. Now they ask where you grew up.
Then our judge was too strict. A talk scored 65% and still got turned down. We retuned it so 55% is a match, and red flags still stop it cold.
What we learned
People don't need more profiles. They need a reason to walk over, and permission to do it. The AI finds the reason. You say yes.
What's next
Deferred matching. You pass someone at 2am and neither of you speaks. Your agents trade notes anyway. At 5am you hit a CUDA out-of-memory error and your agent pings you: table 14, they hit this exact error at their last hackathon.
Then organizers get the real connection graph of their event. And the ping moves to Meta's Ray-Ban glasses, hands-free, right when it matters:
"Look left. Table 14."
Built with
meta-muse · mcp · go · postgresql · typescript · react · three.js · websockets · gemini · typesafe-jev · elevenlabs · mapi · nvidia-a100 · google-cloud · vercel · openstreetmap
Built With
- docker
- elevenlabs
- gemini
- go
- google-cloud
- google-compute-engine
- javascript
- mapi
- mcp
- meta-muse
- node.js
- nvidia-a100
- openstreetmap
- playwright
- postgresql
- react
- react-three-fiber
- rest-api
- three.js
- typesafe-jev
- typescript
- vercel
- vite
- webgl
- websockets

Log in or sign up for Devpost to join the conversation.