Inspiration
I’ve been a professional speedcuber for the last 15 years, and cubing has been a huge part of my identity. I’ve competed at high levels, represented my country, and solved thousands of cubes in events, cafés, trains, airports—everywhere. But one day, at an event, I walked in and realized… I forgot my cube. That moment stuck with me. Cubing is such a physical hobby that without the object, you can’t practice, perform, or even warm up. I wanted to fix that. I wanted a world where a cube is always available, always accessible, and where anyone can experience the joy of twisting and solving—even without holding a real cube. So I built Rubiks Cube VR: a way to recreate the tactile feel of solving using your hands and your voice, inside a holographic, responsive, futuristic cube environment. This project merges my lifelong love for cubing with the cutting-edge power of WebXR.
What it does
Rubiks Cube VR lets you: Grab, pinch, and twist a holographic Rubik’s Cube using hand-tracking Rotate layers using voice commands (e.g., “R”, “U prime”, “F2”, "down two" "left") Practice competitive timed solves with leaderboards or just practice Go easy mode with a tiny 2x2 rubiks cube Enjoy a clean, futuristic VR interface built entirely using WebXR & iwsdk Everything runs directly in the Meta Browser—no install required.
How we built it
Built using WebXR, Three.js, and Meta’s Immersive Web SDK Implemented custom hand-tracking logic for gesture detection (pinch → rotate) Developed a dynamic layer selection algorithm based on finger trajectory Added voice recognition for cube notation using Vosk WASM Designed interaction previews, rotation smoothing, and realistic cube physics Hosted the WebXR experience on CloudFront with a custom domain Optimized for Quest hand-tracking performance and passthrough clarity
Challenges we ran into
Getting reliable slice selection from hand tracking without misfires Designing gestures that feel natural for cubers (pinch, pull, push, twist) Avoiding accidental layer rotations while touching the cube Integrating voice recognition Ensuring WebXR ran smoothly on Quest browser under strict performance limits Handling CloudFront + SSL + routing for WebXR hosting
Accomplishments that we're proud of
Fully gesture-controlled cube — no controllers, no UI buttons Real-time hands + voice hybrid interaction (rare in WebXR) A stable, smooth rotation engine that feels intuitive and physical A VR cubing experience that works entirely from a web link Built the whole app from scratch, including gesture logic and UX
What we learned|
How powerful and flexible WebXR is for building fully immersive VR experiences with nothing but a browser How surprisingly smooth and developer-friendly the Meta Immersive Web SDK (IWSdk) is for hand-tracking, anchors, input profiles, and passthrough The importance of gesture design — tiny threshold changes can make or break usability How to implement responsive, physics-like cube interactions without a physics engine How real-time in-browser voice recognition (WASM/Vosk) can work even under performance constraints How to host and optimize a WebXR experience on CloudFront while ensuring SSL, caching, and routing stay stable How crucial low latency, clarity, and comfort are when designing VR interactions That building VR for the browser is not only possible—it’s extremely capable and fun with the right tools
What's next for Rubiks Cube VR
Add 4x4, Pyraminx and more types of rubiks cubes Multiplayer solving sessions Learning mode that teaches you CFOP, beginner’s method, and finger tricks Advanced voice commands (“Scramble”, “Solve”, “Undo”, “Show hint”) Full Meta Store submission once packaged as a PWA/Web App
Built With
- iwsdk
- three.js
- webxr


Log in or sign up for Devpost to join the conversation.