What it does

WebXR Arcade is a browser-based VR arcade built with IWSDK and integrated with HeyVR for user identity and leaderboards. It currently includes two playable machines: basketball and strongman hammer, each using IWSDK physics, colliders, and VR input for both controllers and hand-tracking.

Players earn tickets for playing. Tickets persist between sessions and will be used later for unlockables or cosmetic items. The basketball game includes anti-cheat logic so unrealistic throws or exploits don’t produce useful scores.

A third machine, pinball, was partially built but introduced too many physics issues to ship in time. It will be finished and released in a future update.

Inspiration

I’ve wanted to build a full WebXR arcade for a long time, and this hackathon was the moment to start the foundation. The goal is a shared space where multiple arcade machines use the same systems and feel instantly playable in VR. This project is the first step, and development will continue after the event.

How we built it

  • IWSDK handles physics, collisions, interaction zones, VR input, and UI panels.
  • HeyVR provides user identity, ticket persistence, and global leaderboards.
  • Machines are modular, allowing additional machines to be added easily.
  • To keep performance stable, the project uses IWSDK composition switching to enable only the active machine’s logic and physics.

Challenges

  • Tuning physics and collision detection for basketball, hammer and pinball machines.
  • Getting consistent behavior across controllers and hand-tracking.
  • Implementing anti-cheat detection for basketball scoring.
  • Performance drops before using composition switching.
  • Pinball was too unstable for release and were postponed.
  • The inventory API broke right before submission.... SADDD

What’s next

  • Give tickets real utility (unlockables, cosmetics, new machines).
  • Add multiplayer, allowing players to see each other in the arcade.
  • Add HeyVR Achievements when the API is released.
  • Finish the pinball machine and expand the arcade further.

Built With

Share this project:

Updates