Inspiration
A garden snail's top speed is about 0.03 km/h — the funniest speed limit you could put on a race track. We put that track on the table in front of you and let you fling a snail past the sign at many times the limit. Everything is within arm's reach: no controllers, no standing, a full race in under a minute.
What it does
- The track finds your table via WebXR plane detection and snaps on; pinch to place (falls back to ~0.5 m ahead at seated height).
- Slingshot launch: pinch the snail, pull back, release — pull distance and flick speed set launch power.
- Four boost pads per lap: pinch while a pad glows to boost; centre hits are PERFECT and chain combos.
- Final lap: smash the "SPEED LIMIT 0.03 km/h" sign and see how many times over the limit you were.
- Two laps, 60-second clock, results card and best time saved on device. A ghost hand teaches each gesture on the table — no wall of text. Hands are the primary input end-to-end; controllers and desktop mouse also work.
How we built it
Meta Immersive Web SDK (IWSDK) 1.1.0-rc.2 on three.js + WebXR, TypeScript and Vite. An immersive-ar passthrough session with hand tracking and plane detection; one ECS system running a state machine (placing → ready → aiming → racing → results). Hands, controllers and mouse share one pointer abstraction. Table placement scores detected planes (table/desk label, height, in front, within reach). 100% procedural content: every model, texture and sound (WebAudio, HRTF-spatialised) is generated in code — no downloaded or AI-generated assets. Hosted on GitHub Pages via GitHub Actions; demo captured from the real game in the IWER Meta Quest 3 emulator.
Challenges we ran into
Making a flick feel right from noisy pinch data; choosing the right plane in unseen rooms; readable arm's-length UI in a narrow FoV; fair but satisfying boost timing windows.
Accomplishments that we're proud of
A complete game loop with zero external assets, truly hands-first and seated, passthrough with purpose (your table is the level), and a show-don't-tell tutorial.
What we learned
IWSDK and its IWER emulator make it fast to build and script-test MR apps without a headset; small physical gestures on a real surface feel tactile; clear telegraphing makes timing feel fair.
What's next for Snail Sprint
Tuning on Quest hardware with playtesters, spatial anchors, room-spanning tracks, daily challenges and unlockable shells, ghost replays, shared-table multiplayer, and accessibility options (one-handed mode, wider timing windows). Target launch: Q1 2027 as a free WebXR game, with a Meta Horizon Store listing to follow.
Testing instructions
On Meta Quest 3/3S/Pro open https://ridakalam52-design.github.io/snail-sprint/ in Meta Quest Browser, tap Enter Mixed Reality, put controllers down, look at a table, pinch to place, pinch-pull-release the snail, pinch on glowing pads. Desktop: drag the snail back with the mouse and release, click on glowing pads.
Built With
- github
- hand-tracking
- immersive-web-sdk
- iwsdk
- passthrough
- plane-detection
- three.js
- typescript
- vite
- web-audio
- webxr
Log in or sign up for Devpost to join the conversation.