Inspiration

I wanted to create a VR experience that removes all friction from working out. Many fitness apps feel overwhelming — full of menus, onboarding steps, and complex flows. My goal was the opposite: a lightweight micro-workout tool that starts instantly. In Fitness Counter Lite, you simply raise your hand and the app begins counting reps. No controllers required, no configuration, just movement.

This project also became my introduction to Unity XR, OpenXR, VR UI design, and the complete Meta Quest build-and-publish workflow.


What I Built

Fitness Counter Lite is a minimal VR rep-tracking tool for Meta Quest.

It detects upward motion from either a hand or controller and increments a rep counter when the vertical displacement exceeds a threshold.

Inline example:
(\Delta y = y_{current} - y_{baseline})

Displayed math:

$$ \Delta y > \tau \;\Rightarrow\; \text{reps} = \text{reps} + 1 $$

Where (\tau) is the tunable motion threshold.

Features

  • Hand-tracking and controller support
  • Real-time rep detection using vertical motion deltas
  • Clean world-space onboarding UI (“Raise your hand to start”)
  • Built with Unity 6 + XR Interaction Toolkit + Input System
  • XR Device Simulator support for desktop demo recording
  • Meta-compatible APK (landscape, targetSdk ≤ 34, installLocation=auto)

How I Built It

I implemented a simple rep-detection algorithm based on motion deltas:

if (currentY - baselineY > threshold && cooldownPassed) {
    reps++;
}

A cooldown timer prevents double-counting:

$$ t_{now} - t_{lastRep} > \Delta t $$

Other development steps:

  • Configured XR Origin, camera offsets, and hand/controller input
  • Designed VR-readable UI in world space using TextMeshPro
  • Tuned thresholds for accuracy across different motion patterns
  • Resolved Meta validation issues (orientation, SDK version, install location)
  • Uploaded the build to a Competition release channel and generated judge testing links

What I Learned

This project taught me the full XR development pipeline: configuring OpenXR, building spatial UI, optimizing performance for standalone VR, debugging hand-tracking, and navigating the Meta Quest build/validation system for the first time. I gained a deeper understanding of VR motion data, Unity’s XR stack, and mobile VR constraints.


Challenges I Faced

  • Making UI text readable at realistic VR distances
  • Balancing sensitivity to avoid missed reps or false positives
  • Fixing manifest and Android build errors flagged by Meta
  • Ensuring consistent behavior between hand-tracking and controllers

Each challenge improved the final experience.


Plans for Future Improvements

  • Adaptive motion thresholds
  • Additional exercises (squats, curls, presses)
  • Audio cues or voice coaching
  • Simple form analysis using velocity + angle vectors
  • Workout history, sets, and streak tracking

Summary

Fitness Counter Lite delivers a clean, accessible micro-workout: raise your hand, and reps are counted instantly. It demonstrates motion-based interaction, Unity XR development, VR UI design, and complete Meta Quest deployment — all within a simple, beginner-friendly experience.

Built With

Share this project:

Updates