Inspiration

Ideas rarely fit on a flat monitor. UluP Spaces turns projects into visual maps of connected nodes, and I wanted to step inside that map. UluP Spatial puts your whole project around you in mixed reality: nodes are spheres you grab, move and connect with your bare hands.

What it does

  • Grab, move and link nodes with hand tracking; positions sync in real time to the same backend as UluP Spaces
  • Pin a node to your real room: the headset scans your space, you drop a node on a real surface like the door, and it stays there in passthrough. Switch to full VR and it rejoins the other nodes; switch back with a hand gesture and it returns to the door. Pinned spots are saved relative to your room scan
  • An AI assistant, Ulupy: connect your own MCP-capable AI and it creates nodes and tasks that appear live in your headset, each labelled "Ulupy"
  • Create nodes by voice: speak, watch the live transcript, pick a color, and a beam of light marks the new node. Speech recognition runs fully offline on the headset (English and Italian), so voice works even without a connection
  • Attach files to tasks: PDFs with zoom and page controls, and .glb 3D models you place, resize and spin in your room
  • Set due dates from inside the headset, with a 3D Timeline that lines nodes up by date and a Focus view that uses depth to show what's blocking a project
  • Work in passthrough mixed reality or a full immersive backdrop (Cosmos, Aurora, Space, Dusk, Void)
  • Start from community templates or a blank page, private by default; guest mode in one tap, and "Create account" upgrades the guest session in place so no project is lost
  • Hands-first panels with large targets, hover feedback and upright orientation that follows you when you recenter, seated or standing
  • Works offline where it counts: voice runs entirely on the headset; sync, accounts and the AI connection need internet
  • Room pinning needs a scanned room: run Space Setup on your Quest first (Settings > Physical space), then drop a node on the door in passthrough.

How I built it

I first shipped a WebXR version (v1.0.0, published on the Meta Horizon Store), then rebuilt it natively in Kotlin with the Meta Spatial SDK for the competition: ECS systems for grab, collisions, connections and spawn effects, Compose-based panels, the Mixed Reality Utility Kit for room scanning and pinning, Vosk for offline speech, Supabase for auth and data, and the UluP Spaces MCP server so your own AI can act inside the headset.

Challenges

Moving from WebXR to a native engine meant relearning input, panels and the scene model. I hit a Gradle/Kotlin build crisis and rebuilt the project from the official template. Opaque panels were needed to keep the hand pointer visible. Giving passthrough a real purpose meant tying each node to two places, one in your room and one in the VR universe, and switching between them cleanly. Making an empty project feel good in the first minute took its own fixes.

What's new in the competition window

UluP Spatial existed before as a WebXR prototype; everything native listed above, including room pinning, was built after September 24, 2026.

What's next

Pinning to more surfaces (windows, walls, tables) and an unpin button, light mode, user-uploaded backdrops, day markers on the Timeline, pinned windows you can glance at without turning your head, and a public store launch planned after the competition (from the end of the year).

Built With

  • android
  • hand-tracking
  • jetpack-compose
  • kotlin
  • mcp
  • meta-quest
  • meta-spatial-sdk
  • postgresql
  • supabase
  • vosk
Share this project:

Updates

posted an update —

Room pinning, new trailer and a 60-second build update Update, October 25: UluP Spatial can now pin nodes to your real room.

The headset scans your space (Mixed Reality Utility Kit). In passthrough, drop a node on a real surface like the door and it stays there. Enter full VR and it rejoins the other nodes in the Universe; one hand gesture back to passthrough and it returns to the door. Run Space Setup on your Quest first.

Also new:

  • An updated trailer with the "Ask your AI" and room-pinning sections
  • A 60-second build update video: who I am, how I built it with Kotlin and the Meta Spatial SDK coming from WebXR, and what's next

Planned: pinning to windows, walls and tables, an unpin button, and a public store launch after the competition, from the end of the year.

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

Submission history