Have you ever imagined controlling a breath of fire with your own breathing?
Take a deep breath now — picture a brilliant light shining before your eyes, then exhale, and flames pour from your mouth, burning everything in sight.
Xhaler is a VR adventure game that explores breathing as a core mechanic to enhance immersion and interactivity in virtual reality. Using alternative input devices, including a wind sensor and a respiration belt, the game creates novel gameplay experiences driven by the player's own breath. The project was developed by a team of five graduate students at Carnegie Mellon University's Entertainment Technology Center (ETC).
Have you ever imagined controlling a breath of fire with your own breathing?
Take a deep breath now — picture a brilliant light shining before your eyes, then exhale, and flames pour from your mouth, burning everything in sight.
This simple question sparked the project: when breath becomes the input of a game, what kind of gameplay can emerge from it — and what kind of experience might that create?
To answer this question, we explored 2D PC games, and we found ourselves drawn toward a more immersive experience.
We ultimately chose VR (Meta Quest 3) as our medium — a platform where the connection between breath and gameplay could feel truly embodied.
Reliable Solution → Focus on development
Customized Solution → Detect Blowing
Sensor data is collected through two parallel pipelines: the respiration belt streams data via its SDK, while the wind sensor transmits through an Arduino over Wi-Fi.
Both streams are received and processed by a Python script on PC, then forwarded to the Unity application (C#) running on Meta Quest 3 via UDP socket.
Since breath data is continuous, occasional packet loss is acceptable — making UDP a practical choice over TCP for this use case.
Identifies breathing trends despite timing variations.
The core challenge is recognizing the trend of a breathing pattern within a given window, rather than matching exact timestamps.
Since the timing of data capture rarely aligns perfectly with the actual breathing cycle, DTW (Dynamic Time Warping) was chosen for its ability to handle these temporal misalignments while still identifying the underlying pattern.