I Built a Vision Pro Meditation App in a Weekend
Saturday night: empty repo. Sunday: a Vision Pro meditation app ready for the App Store. How I built Sanctuary, a spatial sound bath, in a single weekend, and how much finicky engineering it takes to make a room feel calm.
Saturday night I had an empty repo. By the time I went to bed, strangers could install my app.
The thing I built is called Sanctuary, a spatial sound bath for Apple Vision Pro. You put on the headset and you're sitting cross-legged on a floor pillow in a quiet zen room, crystal singing bowls floating in the air around you, a calm voice walking you through your breath while the light in the room slowly shifts with the time of day. That's the pitch. The reality is that none of it is magic. What surprised me is how much fussy, finicky engineering it takes to make a room feel calm. Where the light falls, how the floor is shaded, exactly how far each sound sits from your ear: get a hundred small things right and your nervous system stops noticing the headset and just settles into the space. Get one wrong and the spell breaks instantly.
Here's the part I'm still a little smug about: from first commit to a real build on TestFlight took hours, not days. I spent half of Sunday making it genuinely good instead of just functional, and now it's sitting in the queue, ready for the App Store. One weekend, idea to shippable product.
The room is the whole game
I assumed the hard part would be the audio. I was wrong. The hard part was making a 3D space feel real enough that your nervous system buys it. I burned through a candlelit temple, then dragged in real Sponza architecture (the classic graphics test scene) by piping it from glTF to USDZ through Blender, before finally settling on a purpose-built room baked down to a lean 22 thousand triangles so the headset never breaks a sweat.
Lighting is where presence lives or dies. Get image-based lighting and shadow receivers right and you're sitting in a room. Get them wrong and you're a floating eyeball next to a 3D model in a black void. I spent an genuinely embarrassing number of commits just getting the viewer grounded: seated dead center on the pillow, point of view dropped about a foot so you feel your own height, facing the table. Presence hides in inches like that.
Sound you can walk around
Then the experience layer came together fast. Four guides, four session types, five lengths, and lighting that changes the room's mood to match: bright and open when you're waking up, dim and hushed when you're winding down for sleep. The voice was its own rabbit hole. I cut a full track with one VO, scrapped it, and switched to a calmer British "tranquil ASMR" voice that paces you through clean 4-4-4-4 box breathing.
The flex I'm proudest of: the crystal singing bowls are spatially placed around you, so the sound actually travels through the room instead of sitting flat against your eardrums like every pair of headphones you've ever owned. Close your eyes and you can point at where each tone is coming from.
The boring stuff nobody claps for
The unglamorous work is what separates a demo from a product: a proper layered visionOS app icon, fastlane lanes wired straight to TestFlight, the export-compliance paperwork sorted, build artifacts kept out of the repo. Nobody ever sees any of it, and a single tester can't install without all of it. The final hours were the worst kind of fun, hunting a below-the-floor grounding glitch and a voiceover stutter that only becomes audible once everything else is already good enough to notice it.
What I like about this kind of project: when it works, none of the work is visible. Nobody sitting in that quiet room is thinking about triangle counts or shadow receivers or how many times I moved the pillow. They just feel like they're somewhere peaceful. Making the effort disappear is the entire job. Sanctuary is App Store ready now. If you've got a Vision Pro and want to sit in the room, reach out. I want to know if it works on someone who isn't me.