
BLOOMIVERSE
Personal Information
I am Zun Wang. In this MR project, I was responsible for design of basic gameplay and mechanicsm, and foundational programming development, including:
A selective rendering system related to stencil-based portals;
Generation of portals and objects in special spatial environments;
Grab interactions;
Plant-related mechanics such as seed acquisition, planting, and growth..

Brief of Project Concept
+ Overview
Project Concept
Bloomiverse is an AR gardening adventure where players take on the role of a magical gardener. Through mystical portals, players collect seeds from another world and use tools like shovels, watering cans, and flowerpots to grow plants in their real-world environment. Players must also defend their seedlings by popping evil bubbles that appear randomly to threaten the plants. The ultimate goal is to cultivate the legendary White Plant King by feeding it energy crystals produced by mature plants.
How It Meets the Brief
1. Immersive AR Gameplay
Bloomiverse utilizes AR technology to seamlessly blend the real and virtual worlds. The area outside the portal combines the player’s real-world environment with augmented virtual elements, such as plants, tools, and bubbles, creating an interactive magical garden.
The interior of the portal, however, transports players to a fully virtual world, offering a stark contrast and emphasizing the portal’s mystical nature.
Players use a right-hand controller for precise and intuitive interactions, eliminating the need for complex gesture recognition while ensuring accessibility.
2. Innovative Interactions
The gameplay includes intuitive controls for selecting and using tools such as shovels, watering cans, and flowerpots.
A dynamic bubble-popping mechanic adds an exciting layer of defense, making the experience more engaging and tactile. This combination of tools and mechanics creates a well-rounded interactive experience.
3. Unique and Challenging Objectives
The gameplay balances calm, meditative gardening activities like planting seeds and nurturing plants with active challenges like protecting seedlings from evil bubbles.
Growing the White Plant King, which requires careful management of resources and energy crystals, provides a satisfying long-term goal, encouraging strategic planning and creativity.
4. Engaging Visual and Audio Design
The project incorporates custom 3D modeling and artwork to create a magical and whimsical visual atmosphere, including the intricate design of the portal, tools, and plants.
A carefully composed soundtrack featuring mystical and calming melodies enhances the magical ambiance, immersing players in the fantastical world of Bloomiverse, both in the augmented real-world garden and within the fully virtual portal world.
Related material
We gained insights into AR project setup in Unity from the Bilibili video series 《[硬核的XR王师傅的个人空间-硬核的XR王师傅个人主页-哔哩哔哩视频]》, which provided valuable knowledge on configuring the environment. Additionally, the YouTube channel Valem Tutorials, particularly the videos “[Mixed Reality Scene Information with Meta MR Utility Kit - Unity Tutorial]” and “[How to make a Portal Effect in Mixed Reality - Unity Tutorial]”, introduced the use of the MRTK toolkit and the implementation of virtual portal effects. These resources were instrumental in the successful development of the core functionalities of our project.

DEVELOPMENT TIMELINE
Stencil System
This script implements a stencil-based selective rendering system. It utilizes a configurable Stencil ID to control object visibility, enabling features like seamless portal rendering and special spatial effects. My contribution includes designing the stencil logic, optimizing rendering performance, and ensuring compatibility with the Universal Render Pipeline (URP). This system enhances immersion by dynamically managing object visibility in complex environments.
Portal Interaction System
This system manages dynamic object behavior and transitions between virtual and real spaces through portals. It consists of two key components:
ARObject Script
This script handles object state updates and interactions based on the portal's context.Dynamic Layer and Tag Updates: Objects dynamically change their layer and tag based on whether they are inside or outside the virtual space. This ensures seamless integration with rendering and interaction logic.
Eye Anchor Initialization: The system locates the player’s viewport (e.g., the center eye anchor) and updates object visibility and behavior accordingly.
Coroutine-based Optimization: Coroutines are used to repeatedly check and update object states efficiently, ensuring smooth performance in complex environments.
PortalTrigger Script
This script facilitates transitions and interactions triggered by the portal itself.Virtual Space Switching: Toggles the virtual space state when a player interacts with the portal, ensuring objects inside and outside the portal are correctly updated.
Cooldown Mechanism: Implements a cooldown to prevent repeated triggering of the portal, enhancing stability during interactions.
Portal Cleanup: Cleans up objects and resets the portal state when necessary, ensuring the system remains resource-efficient and maintains immersion.
Portal Interaction System
This system handles the spawning and management of objects in the portal environment, adding dynamic and immersive interactions. It is composed of two main components:
PortalObjectManager Script
This script is responsible for spawning objects and linking them to the portal.Random Object Spawning: Objects are randomly selected from a predefined list of prefabs and instantiated within a specified radius around the portal.
Portal Linking: Each spawned object is associated with the portal to enable seamless interaction and state synchronization between the object and the portal.
Audio Integration: Adds immersion by playing portal-related sound effects during initialization.
PortalSpawnRandom Script
This script adds an additional layer of randomness by dynamically spawning portals at random intervals and positions.Time-based Portal Spawning: Portals are generated at random time intervals, with user-defined minimum and maximum limits.
Position Randomization: Portals are spawned within a circular area, ensuring variety in gameplay experiences.
Lifecycle Management: Automatically destroys existing portals before spawning a new one to maintain performance and reduce clutter in the scene.
Portal Interaction System
This system handles the spawning and management of objects in the portal environment, adding dynamic and immersive interactions. It is composed of two main components:
PortalObjectManager Script
This script is responsible for spawning objects and linking them to the portal.Random Object Spawning: Objects are randomly selected from a predefined list of prefabs and instantiated within a specified radius around the portal.
Portal Linking: Each spawned object is associated with the portal to enable seamless interaction and state synchronization between the object and the portal.
Audio Integration: Adds immersion by playing portal-related sound effects during initialization.
PortalSpawnRandom Script
This script adds an additional layer of randomness by dynamically spawning portals at random intervals and positions.Time-based Portal Spawning: Portals are generated at random time intervals, with user-defined minimum and maximum limits.
Position Randomization: Portals are spawned within a circular area, ensuring variety in gameplay experiences.
Lifecycle Management: Automatically destroys existing portals before spawning a new one to maintain performance and reduce clutter in the scene.
ContactGrabber Script
The ContactGrabber script is a core component designed to manage object interactions, such as grabbing, releasing, and highlighting. It enhances gameplay by enabling intuitive and immersive interaction mechanics.
Grabbing and Releasing Objects
Grabbing:
When the player presses the grab button, the script attaches the nearest interactable object to the player's hand, stopping its physics and allowing it to follow the player's movements.Visual and audio feedback is provided upon grabbing, including particle effects and sound playback.
Specialized handling is implemented for unique objects such as plants or shovels.
Releasing:
On releasing the grab button, the object is detached, and its velocity and rotation are restored based on the controller's motion, creating a realistic effect.
Object Highlighting
Interactable objects are highlighted when in range, providing visual cues to the player.
The script dynamically manages highlights by detecting the player's target and resetting the material when the highlight changes or is removed.
Audio and Visual Effects
Includes sound effects to enhance the interaction experience.
Implements an impact particle system, which is triggered upon object interactions.
Dynamic Position Updates
The script smoothly updates the grabbed object's position and rotation to align with the player's hand, using interpolation for smooth transitions.
Collision-based Interactions
On entering the trigger area, the script evaluates the interactability of nearby objects and determines whether they can be grabbed.
Destroys specific objects, such as "EvilBubble," upon contact, triggering appropriate sound effects.
Trailer
Reflection on Bloomiverse
The creation of Bloomiverse was a journey that blended creative design with technical problem-solving to deliver an immersive VR experience centered on nature and growth.
Design Perspective
The core concept of Bloomiverse was to let players nurture life in a visually captivating virtual world. The focus was on accessibility and engagement, ensuring both new and experienced players could enjoy the game. Systems like planting seeds, growing plants, and interacting with the ecosystem were designed to flow naturally, offering a balance between creativity and progression.
Visual and audio feedback were pivotal in enhancing immersion. Growing plants included animations, sound effects, and particle systems, creating a sense of accomplishment. The gameplay was designed to be intuitive, with seamless transitions between tasks such as digging, planting, and nurturing. This ensured players could easily focus on their creative and strategic objectives without unnecessary distractions.
Development Perspective
From a technical standpoint, Bloomiverse utilized modular and scalable systems to enable dynamic and responsive gameplay. The ContactGrabber was a cornerstone for intuitive VR object manipulation, while coroutines and physics-based triggers ensured smooth event handling, such as planting seeds and growing plants. Optimizing resource-intensive features like particle effects, animations, and physics interactions was crucial to maintaining a high frame rate for an optimal VR experience.
Unity’s flexibility allowed for iterative development, refining gameplay mechanics and implementing interactive features. For example, environmental details, such as the BubbleSpawner, added dynamic world-building elements, further enhancing the feeling of a living ecosystem.
Future Improvements
While the game provides a solid foundation, there are areas we aim to expand to enrich the player experience. A key improvement is replacing the current EvilBubble mechanic with birds that eat plants. These birds will serve as more relatable and dynamic antagonists, making their role in disrupting the player’s progress feel more alive and engaging.
Additionally, we plan to expand the variety of plants beyond those that provide energy crystals. Functional plants, such as those that can attack the birds or attract them to act as decoys, will add strategic depth to the gameplay. This enhancement will shift the focus from purely visual growth to incorporating tactical decisions, creating a richer, more rewarding planting experience.