XR Darts Game.
Challenge.
I set out to create a complete XR passthrough game within three months as a solo developer. Unlike traditional VR, passthrough offers no preset environments, making basic tasks like object placement and scene lighting far more complex.
Action.
I used Meta’s All-in-One SDKs and passthrough scene scanning to detect real-world surfaces and drive object placement, writing custom logic to align the dartboard and fallback table to the user’s space. One of the most difficult systems to get right was the throwing mechanic—initial physics-based throws were inconsistent, so I built an arc-based system that felt natural and worked reliably across environments. Creating accurate flight physics and realistic scoring also took significant iteration. I developed a system that detects hit locations and maps them to dartboard regions, ensuring fair, responsive scoring even on imperfectly aligned surfaces. As the sole developer, I handled every aspect of design, coding, and testing, constantly refining the experience based on real-world results.
Result.
The final product is a polished, replayable XR darts game built entirely for passthrough environments. Players can choose between two distinct modes—classic 301 darts and a more casual balloon-popping experience—with physical push buttons used to start gameplay and interact with the environment. Balloons can even be swatted or moved for fun, adding a playful physicality that fits the MR setting. The game includes fallback systems to ensure compatibility across different spaces, and performance was carefully optimized for passthrough rendering on Meta Quest. Despite working solo, I delivered the full experience within my 3-month timeline. This project strengthened my ability to design for real-world constraints, create intuitive interactions, and ship a technically sound, feature-complete XR game from end to end.

The dartboard and dart throwing arc. This is in my living room with passthrough.

The dartboard and dart throwing arc. This is in the test scene with no passthrough.

The Balloon Arcade gamemode before starting in passthrough,.


The dart arc throwing system.

The fallback table if no usable table is detected in the passthrough scene.
