Inspiration
I love programming, VR, and building things. Naturally, I wondered: why not create a little thematic playground - something like virtual LEGO? A winter theme felt perfect: quiet snow, warm lights, and a tiny Christmas Market that you can bring to life piece by piece.
What it does
HandCraft XR is a calm Mixed Reality sandbox where you use natural hand gestures to build a festive miniature Christmas Market on a virtual table.
You can:
- Pick blocks from a floating tablet
- Pinch to spawn them in your hand
- Scale, rotate, and position them intuitively
- Snap pieces onto the table or attach decorations to other objects
- Grab and throw away unwanted pieces
- Watch snow fall and clouds drift overhead
- Build a peaceful winter village that automatically saves and loads
It’s simple, tactile, and relaxing - a tiny holiday world you create with your hands.
How I built it
The experience is built specifically for Meta Quest devices using Immersive Web SDK, Three.js, WebXR, and a fully hand-tracked interaction system. It runs in the Quest Browser without installation. All interactions use the WebXR Hand Tracking API, and the trailer footage was recorded directly from a Meta Quest 3 in a standalone mode.
Core systems include:
- A custom pinch-based spawning mechanic
- Two-hand scaling/rotation with visual outlines
- Snapping logic for table placement and decoration attachment
- A virtual tablet UI with paginated block icons
- A lightweight lighting setup optimized for standalone performance
- Instanced meshes, dynamic batching, BVH acceleration, and adaptive shadow update system for smooth WebXR performance
- Automatic save/restore via local storage
All assets and interactions were designed to run comfortably and consistently on standalone devices through the browser.
Challenges I ran into
- Performance in WebXR: Standard materials and shadows were too heavy, so lighting had to be redesigned around lighter, more stable options.
- Missing features in Immersive Web SDK: To achieve the interaction patterns and stability I needed, I studied, forked, and extended the SDK: https://github.com/evstinik/immersive-web-sdk
- Limited time for content: The block library is curated but small, so prioritizing which items give the most “holiday feel” was important.
Accomplishments that I'm proud of
- A fully hand-tracked building system that feels natural and intuitive
- A single-pass outline effect implemented via the stencil buffer
- Efficient shadows using an adaptive, on-demand shadow system with a dedicated micro shadow camera
- Smooth performance even with many objects, shadows, mixed reality, physics and UI
- A cozy, relaxing atmosphere
- Getting it all done within limited time, while keeping the core experience polished
- Made it from scratch in just a month during the competition
What I learned
- How to structure a WebXR project using ECS architecture
- How stencil buffers work
- How to identify CPU or GPU bottlenecks, and distinguish vertex-bound from fragment-bound performance issues
- How to build a dynamic batching system with BatchedMesh and improve interactions using instance-based BVH structures
- How to optimize shadows to be able to run on standalone Quest 3 device
What's next for HandCraft XR
Future improvements I'm excited about:
- WebRTC-based multiplayer building with friends
- Sharing worlds or exporting creations
- Night mode with warm lights and glowing decorations
- People and animated elements to bring the Christmas Market to life
- More interaction types (stacking, attaching objects, advanced snaps)
- Expanded sound design with more satisfying feedback and ambience
- Additional themed kits (Horror Mansion, City, etc.)
This version lays the foundation, and I'm excited to grow it into a richer, more expressive Mixed Reality building experience.
Built With
- havok
- iwsdk
- three.js
- typescript
- webxr





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