A VR rhythm workout game built with Godot Engine using OpenXR. Play Beat Saber and PowerBeatsVR maps on Quest, SteamVR, and other OpenXR runtimes.
- VR gameplay using OpenXR (Quest native, SteamVR, and other runtimes)
- Workout This game is intended to make you workouy, mechanics based on PowerBeatsVR ones. You hit balls, and not slash them like in beatsaber.
- Beat Saber compatibility - plays custom maps from BeatSaver
- PowerBeatsVR map format - converts and plays PowerBeatsVR levels
- Offline-first - no internet required after install
- Pre-shipped songs - Unity and Monody included in official builds
- Loads PowerBeatsVR playlists - Supports loading of a playlist in the format used in PowerBeatsVR.
Official builds are published to GitHub Releases.
- Download
Windows.zipfrom the latest release - Extract to a folder
- Run
TempoVR.exe
- Download
Linux.zipfrom the latest release - Extract and run the executable
- Note: Copy
libopenxr_loader.so.1from your distribution to the game folder if needed
- Download
Android-Quest.zipfrom the latest release - Extract the APK
- Sideload via ADB:
adb install -r TempoVR.apk(or use Quest's file manager)
Official builds include the following songs (ExpertPlus difficulty):
| Song | Artist | Mapper | BeatSaver |
|---|---|---|---|
| Unity | TheFatRat | Timeweaver | a908 |
| Monody (ft. Laura Brehm) | TheFatRat | Timeweaver | a907 |
You can add more songs by downloading maps from BeatSaver and placing them in the Levels folder next to the executable.
To publish a new version:
git tag v1.0.0
git push origin v1.0.0CI will build for all platforms and attach the artifacts to the GitHub Release.
Join our Discord for support and discussion.
- Godot 4.6+ (standard version, not .NET)
- Python 3 (for level patching script)
- curl, unzip (for dependency download)
-
Clone the repository:
git clone https://github.com/guysoft/TempoVRWorkout.git cd TempoVRWorkout -
Download dependencies and pre-shipped levels:
./get_deps.sh
-
Open the project in Godot:
godot --path src --editor
-
Run
GameManager.tscnto play
To run without a VR headset for debugging:
- Open
src/scripts/GameVariables.gd - Set
ENABLE_VRtofalse
The project uses GitHub Actions to automatically build for:
- Windows (release)
- Linux (release)
- Android Quest (debug APK)
Builds are triggered on:
- Push to
main,develop,ci-workflow, orworkoutbranches - Pull requests to
mainorworkout - Git tags starting with
v(creates a GitHub Release with all platform artifacts)
See .github/workflows/build-on-push.yml for details.
- Open the project in Godot
- Go to Project > Export
- Select a preset (Windows, Linux, or Android Quest)
- Click Export Project
For Android Quest builds, you need:
- JDK 17
- Android SDK with build-tools 34.0.0 and NDK 23.2.8568313
For Linux builds, copy libopenxr_loader.so.1 from your distribution to the game folder.
Developers:
- Rainer Weston
- Guy Sheffer
Pre-shipped Music:
- TheFatRat - Unity, Monody (mapped by Timeweaver)
- jennissary (joey): BeatSaver #19614