Inspiration
The people you'd get along with may already be in the room. You just don't know what to say to them yet.
The research points to a consistent problem:
- Loneliness is common. The WHO Commission on Social Connection estimates that roughly 1 in 6 people worldwide experience loneliness, including around 1 in 5 adolescents and young adults.
- We misjudge strangers. Commuters expected that talking to a stranger would make their ride worse, yet those who did reported a more positive experience than those who kept to themselves.
- The fear is worse than the conversation. Across seven studies, people's predicted fears about talking to a stranger were generally worse than their actual experience of the conversation.
The problem usually isn't a lack of people to meet. People are already nearby, and uncertainty stops the first conversation. Even when they want to talk, they have almost no context for what to say.
"We both like music" is trivia. "You shoot film too?" is a conversation.
The common ground already exists. Bump helps you find it when it matters.
What it does
Bump gives two people who are already near each other just enough common ground to start talking.
- Make a profile by talking. Give a short spoken or typed intro. Grok asks up to three follow-up questions, read aloud, and drafts a profile card. You edit and approve every line before anyone sees it.
- Bump. Tap your phones together. Both people confirm it was really each other before anything is exchanged.
- Find your overlap. Bump shows the specific interests you share, plus complementary ones: related but different interests, or one person's goal lining up with the other's experience. Those grounded matches become conversation starters.
- After. A private check-in asks which topics actually came up and whether you'd connect again. That answer never leaves your phone.
There's no compatibility percentage and no feed to scroll. Bump isn't deciding who you should be friends with. It answers a much smaller question:
What could we talk about right now?
Then you put the phones down.
How we built it
iOS app (Swift, SwiftUI, iOS 17+)
- MultipeerConnectivity discovers nearby phones over encrypted peer-to-peer sessions, with a versioned, size-bounded wire protocol.
- Nearby Interaction (UWB) runs one ranging session per peer to supply distance evidence.
- Core Motion feeds a spike detector that recognises the bump from the accelerometer.
- A pairing matcher combines those signals. Both people must confirm, and ambiguous bumps are rejected instead of guessed.
- ActivityKit/WidgetKit show bump status as a Live Activity.
Backend
- Render hosts
bump-api(Node.js 20, zero npm dependencies), which keeps the xAI key off the phone. - It routes speech-to-text (Grok voice transcription), text-to-speech for reading onboarding questions aloud, profile drafting, follow-up questions, interest tagging, and talking points.
- Supabase Realtime handles bump rooms: devices join a room over a secure WebSocket and exchange encrypted bump messages. Rooms disappear when the bump ends.
Matching and AI
- Matching runs on the phone first. It separates shared interests from complementary ones and ranks specific interests above broad categories.
- Only those grounded pairs go to Grok, which phrases them as conversation starters. It never invents the match.
- When the server is unavailable or turned off, Apple Foundation Models (where supported) and deterministic templates take over, and the app says which one it used.
Why Bump fits ML / AI / Data Visualization
The pipeline is:
unstructured human expression → structured, user-approved profile → grounded comparison → high-signal overlap → natural conversation starter
Voice and text onboarding turn messy self-description into structured data the user approves. The matching layer then separates broad similarity from specific shared interests, complementary interests, and goal-to-experience links, and puts the most specific overlaps first.
Generative AI only comes in after a supported connection exists, to phrase it. The AI helps reveal something already true about two people instead of inventing a reason for them to connect.
Why Bump fits Meta: Bringing People Closer Together with AI
Who it's for. Students and people at events, classes and hackathons: anyone standing a few feet from someone they'd like to meet but don't know what to say to.
How it strengthens connection. Bump doesn't pull people into another feed. The two people are already in the same room, and Bump gives them one specific, true reason to talk, then gets out of the way. The final interaction isn't another tap. It's putting the phones down and talking.
Why AI is essential. Without AI, this is a rigid interest form and a keyword match. With AI, a 45-second spoken intro becomes a structured profile, complementary interests and goal-to-experience links become visible, and the overlap is phrased as a natural opener instead of a list. AI turns "you both tagged music" into something worth saying out loud.
Why Bump fits SpaceXAI: Make it Legendary
The real-world challenge. Loneliness is a public health issue: the WHO estimates roughly 1 in 6 people worldwide experience it. Bump targets the moment where connection most often fails, the first hello.
Built with Cursor and Grok. We built Bump with Cursor, and Grok handles the parts where language is messy and human:
- Grok Voice onboarding: transcribes a spoken intro, asks follow-up questions out loud, and drafts an editable profile, so nobody fills out a rigid interest form.
- Talking points: after two people bump, Grok phrases the grounded overlap into conversation starters.
- Interest tagging: Grok organises free-text interests into something matchable.
Why Grok. Bump needs speech-to-text, text-to-speech and reasoning to work together in one short, spoken conversation. Grok is the only stack we found that covers all three in one API, so a spoken intro becomes a profile in one round of calls instead of three separate vendors. Grok Voice keeps onboarding feeling like a conversation rather than a form, and Grok's reliable structured output means profiles and talking points come back in a shape the app can validate before showing them.
Every Grok response is validated. If it fails, the app falls back to on-device suggestions labelled as such, so "Grok said this" is always true when the app says it.
Challenges we ran into
There's no iPhone-to-iPhone NFC. Our first idea was NFC on touch, but iOS doesn't expose NFC as a general phone-to-phone channel. Core NFC mostly reads and writes tags, and card emulation is entitlement-gated for payments, transit, keys and badges. So we rebuilt the "touch" ourselves.
We combined UWB ranging, MultipeerConnectivity and Core Motion. Motion says that a bump happened, and UWB distance helps say who it happened with. Neither is enough alone. Together they're enough to propose a pairing, which both people still confirm. When several people bump at once and the signals can't tell them apart, Bump rejects the pairing instead of guessing.
Keeping AI grounded. A language model will happily turn two vaguely related interests into a confident, unsupported claim. We split matching from generation: the phone finds a connection both profiles actually support, and only then does Grok phrase it.
Working without the cloud. Confirming and exchanging profiles never depend on the AI server. If it's down, the app switches to on-device suggestions and says so.
Accomplishments that we're proud of
We built a native iOS prototype that ties several hard problems into one gesture:
- voice and text onboarding into structured, user-approved profiles
- nearby discovery over encrypted peer-to-peer sessions
- motion- and UWB-assisted pairing that refuses to guess
- grounded shared and complementary matching
- AI conversation starters with on-device fallbacks
- private post-bump check-ins
The complexity stays underneath. You bump phones, confirm the person in front of you, find the overlap, and start talking.
AI assists without becoming the source of truth: users control their profiles, matching happens before generation, and ambiguous pairings are rejected.
What we learned
Specificity beats generic similarity. "You both like music" is technically common ground, but it doesn't give anyone much to say. A specific shared interest, a complementary skill, or one person's goal meeting the other's experience does. That's why we stopped treating matching and generation as one task: Bump finds a supported connection first, then AI phrases it.
Combining sensors is an uncertainty problem. Motion, ranging and discovery each give partial evidence. A good pairing system needs to know when the evidence is strong enough to act, and when to refuse.
What's next for Bump
- Test many people bumping at once in a crowded room.
- Build a real mutual check for "connect again".
- Let people export or share a saved connection.
- Explore Android and cross-platform proximity.
Most of all, we want to measure whether the overlap Bump surfaces actually leads to better conversations.
The goal isn't more screen time. It's a better first hello.
References
- World Health Organization. (2025). From loneliness to social connection: Charting a path to healthier societies. Report of the WHO Commission on Social Connection. World Health Organization. https://www.who.int/groups/commission-on-social-connection
- Epley, N., & Schroeder, J. (2014). Mistakenly seeking solitude. Journal of Experimental Psychology: General, 143(5), 1980–1999. https://doi.org/10.1037/a0037323
- Sandstrom, G. M., & Boothby, E. J. (2021). Why do people avoid talking to strangers? A mini meta-analysis of predicted fears and actual experiences talking to a stranger. Self and Identity, 20(1), 47–71. https://doi.org/10.1080/15298868.2020.1816568
Built With
- activitykit
- ai
- api
- core-motion
- grok
- nearby-interaction
- node.js
- render
- social
- social-actions
- swift
- ultra-wideband
- websockets
- widgetkit
- xai
Log in or sign up for Devpost to join the conversation.