TalkTalkXR
An MR learning companion that helps you understand whatever you’re looking at and creates a mindmap to ground your knowledge.
Inspiration
Most of the time, when we see something we don’t recognize, our instinct is to “quick search” it on a phone or laptop. That works, but it’s cramped and linear: one screen, one page, one scroll at a time.
We built TalkTalkXR because mixed reality gives us something better: space.
In XR, you’re not limited to a single flat page. You can spread concepts out, pin ideas around you, walk through them, and navigate a mindmap as if it were a physical object. TalkTalkXR takes that everyday moment of curiosity—“what is this, and how does it work?”—and turns it into a spatial learning experience you can explore, rearrange, and revisit, directly in the world around you. TalkTalkXR is our attempt to turn casual curiosity into an ongoing learning habit.
What it does
TalkTalkXR turns your field of view into an interactive knowledge graph you can explore in space.
Instant analysis
With a simple gesture, you capture what you’re seeing. The app identifies key objects, infers what you’re likely interested in, and produces a structured breakdown of the scene.Learning Mindmaps
Instead of a long paragraph, results appear as an interactive Mindmap with branches like:- “Identify” – what you’re looking at
- “How it works” – mechanisms, structure, or function
- “Related concepts” – nearby ideas worth knowing
- “Learning path” – how to go deeper from here
- “Identify” – what you’re looking at
Spatial Library
You can save any Mindmap into a persistent Spatial Library, gradually building your own knowledge collection anchored in the things you’ve actually seen.Integrated browser
A built-in spatial browser lets you open articles, docs, or videos linked from the Mindmap without leaving MR, so deep dives live right next to the original context.Microgesture control
Subtle finger movements handle scrolling, navigation, and panel management, keeping interactions light and fluid instead of relying on big arm gestures or controllers.
How we built it
Core stack
The app is built natively for Android in Kotlin, on top of the Meta Spatial SDK.UI/UX
The interface uses Jetpack Compose with a custom MR-friendly design system: high contrast, generous spacing, and elevated cards tuned for readability in a headset.AI integration
We use Gemini 2.5 Flash via the Gemini API. A strict system prompt and schema push the model to return structured JSON, which we feed directly into our Mindmap renderer.Gesture system
A custom gesture router listens to Meta’s spatial input events and maps specific microgestures (like a thumb swipe) to synthesized Android touch events, enabling natural scrolling, back/forward navigation, and tab switching in standard views.Persistence
A repository layer serializes Mindmap objects to local storage and restores them on app launch, so your library and past sessions survive restarts and feel consistent.
Challenges we ran into
Taming the LLM
Getting clean, parseable JSON from a creative model turned out to be one of the hardest parts. Smart quotes, stray commas, and unescaped characters would regularly break parsing. We built a JSON “sanitizer” that uses regex-based repair passes to fix common issues before we hand data to the parser.Spatial vs. content scrolling
In MR, “move this window in space” and “scroll the text inside it” can feel very similar. Early on, we routed gestures incorrectly. We ended up refining our interpreter so depth-oriented “grab” gestures move panels, while focused swipes within content zones are treated as scrolling.State reconstruction
The Library feature required us to dehydrate a rich Mindmap state into flat JSON and later rebuild it exactly. To make this reliable, we reworked our ViewModel so the UI always derives from a single serialized Mindmap representation, making load/restore deterministic.UI Rendering
We encountered UI glitches and UI mis-rendering when we applied specific layout parameters from 2D to 3D space. We had to adjust the layout system to better handle the unique challenges of spatial UI.
Accomplishments we’re proud of
A strong “magic moment”
The jump from a raw image to a clean, clickable Mindmap feels immediate and intuitive. It turns the world around you into something you can browse and drill into.Resilient parsing pipeline
Our “fail-soft” JSON handling significantly reduces crashes and hard errors. Even when the model output is slightly malformed, the sanitizer usually recovers it and keeps the experience smooth.Natural microgestures
Scrolling a long article or navigating history with tiny thumb motions while panels float in front of you feels surprisingly native—more like manipulating content than using a traditional app.
What we learned
Prompting isn’t enough on its own
Simply asking for JSON doesn’t cut it. You need strict examples, a clear schema, and a validation/repair layer if you intend to treat model output as structured data in production.Spatial UI has a cognitive cost
Every extra floating element adds mental overhead. Moving from a crowded dashboard to a leaner tabbed layout improved clarity and kept attention on the content, not the chrome.
What’s next for TalkTalkXR
Voice interaction
Add full voice support so you can just ask, “What’s that component?” or “Explain this setup” while looking at it—no menus or typing required.Shared spatial learning
Enable multiple people to see the same annotations and Mindmaps anchored to the same real-world objects, unlocking teacher–student, lab, and guided-tour scenarios.Continuous video analysis
Evolve from single-frame snapshots to real-time understanding, so explanations and labels can update dynamically as you move around and change your viewpoint.Real World Analysis
Real-time analysis of what users see and guide them through mindmap, such as cooking, furniture assembly and other real-world tasks.
Built With
- gemini
- kotlin
- spatialsdk

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