VR Case Study
A Meditative Cozy Game
Technology Used
-
Meta Quest 2
-
Unity
-
C#
-
Visual Studio Code
-
Unity XR Interaction Toolkit
-
Git
Overview
This VR experience offers an escape to find peace, relaxation, and support mental wellbeing, all while having a bit of fun. It combines cozy gaming with real meditation and breathing exercises, set within an open world where players collect items and immerse themselves in relaxing gameplay.
My Process
This project took an exploratory, user-centered approach, focusing on continuous learning and iteration. I combined UX with an engineering-type workflow, while rapidly prototyping and deploying daily builds directly to the headset for hands-on testing.
I prioritized user comfort and usability, using iterative feedback from myself and others to guide development. This blend of continuous testing, debugging, and refinement helped me solve technical challenges while delivering a smooth, immersive VR experience.
Goals
Overall Goals
-
To better understand how a developer might think and work.
-
To design and develop a fun and relaxing VR game.
VR App Goals
The goal of my project was to create a VR game that combined cozy gaming with meditation and breathing exercises to support mental well-being. I focused on building an immersive safe space where users could engage in meditation, track their progress, interact with in-game collectibles, and travel to other mini worlds.
Project Management
To manage my time effectively, I clearly outlined what I needed to design and what interactions the user would experience. I broke things down into manageable tasks and assigned them a time to complete them by. I revisited this again to revise and update.
User Interactions
-
Navigate between mini-worlds (change scenes)
-
Participate in meditations and breathing exercises
-
Interact with an object that takes the user to another world
-
Pick up collectibles
Concept and Feature Planning
I knew I wanted to create a relaxing VR experience, so I started by researching existing games and doing a lit review. After recently reading Verganti’s books on innovation and meaning, I was inspired to give new meaning to meditation and VR. Since I enjoy cozy games, I decided to combine cozy gaming with meditation to create a fun, calming experience.
Environment and Game Play
Using Unity and the XR Interaction Toolkit, I designed an open world with game objects like flowing rivers, peaceful forests, all set to calming lo-fi music. Players wandered the world, discovering shrines nestled in spots like mountaintops, waterfalls, or glowing campfires, each inviting them into a unique guided meditation.
Along the way, they could collect gems, and completing all meditations in the main mini-world unlocked new worlds to explore. Building this space was about layering immersive details, natural sounds, lighting, and spatial audio to make players feel like they are actually there.

Testing, and more testing
I was so committed and excited about this project and having a lot of fun that I kept coding and designing, then building and deploying straight to the headset to test it out daily, which honestly gave me a bit of cybersickness every day.
Luckily, I had another user who was excited to jump in and test occasionally. They helped identify pain points and usability issues through some contextual inquiry, allowing us to iteratively fix bugs and optimize the user experience throughout development.
Constraints
The biggest constraint for this project was time, which limited how much I could design both the user interface and the in-world elements. I kept my focus on the main goal of creating a functional meditative app.
Challenges
-
Learning Unity was a completely new experience for me, as I had only worked in 2D spaces before.
-
Picking up C# was another challenge. I had experience with other programming languages, but not this one.
-
I taught myself how to deploy my game to my friend’s Meta Quest 2.
-
I also decided it was important to learn and use Git for version control, so I wouldn’t lose progress along the way.
-
I had never used Terminal before, so that came with its own learning curve.
-
The pond and river looked different in the Unity simulator compared to the headset. In the simulator, they looked great, realistic water with foam along the edges, but in the headset, they appeared as flat planes without depth or surface details. I’m still working on resolving this, so if anyone reading my portfolio has suggestions, I’d love to hear them!
-
I began building the project for macOS by accident and later switched to Android. Even with the same settings, some of the graphics didn’t look as nice after the switch.
Technical Challenges
Not a comprehensive list 😉
-
Performance jitter that required restarting the app to stabilize.
-
Controller raycasting and input tracking issues affecting collectible interactions; fixed by debugging C# scripts.
-
Collision detection problems causing players to clip through objects or miss triggers for mini world transitions; resolved by adjusting colliders and collision logic.
-
Differences in water shader rendering between the headset and Unity simulator.
-
Tuning the physics engine to prevent objects from passing through geometry and maintain realistic behavior.
-
Turned the headset off occasionally because it would get too hot and impact performance.
What I learned and Cybersickness
One of my original goals was to create a heads-up display, but testing it on the head-mounted display quickly made me feel nauseous. HUDs need to be used sparingly in VR to avoid breaking immersion and causing cybersickness.
The meditation scroll worked better as a pop-up since it wasn’t always visible.
There are a lot of important settings to get right when deploying to an HMD. I started building for macOS and didn’t realize this until later, when I had to switch to Android for Meta Quest. Next time, I’ll begin with Android from the start.
Make sure the camera is on the ground so you don’t fall from the sky when you put the headset on. Actually scarier than it sounds. 😉
Future Features
-
Display stats within the world or show/hide them by pressing a button on the controller.
-
Add friends and visit their mini worlds to meditate and explore their personalized spaces.
-
Collect a wider variety of items and use them to decorate or personalize areas of the world.
-
Allow users to customize meditation types (e.g., mindful breathing, guided meditation, etc.)
