Fist Flight

Inspiration

As a scientist turned mixed-reality developer, I’ve always viewed the Quest not just as a gaming device, but as a physics playground. I wanted to explore how far real-time hand tracking, depth sensing, and scene understanding could be pushed to create motion and interaction styles that don’t exist in controller-based VR.

Fist Flight grew from a simple question:

What if your hands themselves could become steerable projectiles in mixed reality?

That idea became the seed for a full hand-tracked action game and a precision MR drone-racing mode built specifically around the strengths of the Quest platform.

What it does

Fist Flight features two core modes:

1. Hand-Tracked Action (“Hand Grab”)

Your real hand becomes a “clone hand” that launches when your movement exceeds a velocity threshold. Once airborne, it mirrors wrist rotations, letting you steer through targets, collect items, navigate obstacles, and pull objects back with reverse thrust. Pose-based variations—such as the Rocket Fist—introduce skill-based mechanics and color- or hand-restricted challenges.

2. Ring Race (MR Drone Flight)

A physical wrist-mounted “button” summons a drone and sets a neutral control zone. Moving your hand relative to that zone steers it with high precision, while left-hand gestures activate braking, drifting, and turbo boosting.

In Ring Race, you thread the drone through a sequence of floating rings placed around your real room, chasing lines, corners, and elevation changes. It’s all about fast, accurate motion and maintaining flow through the course. The mode supports colocation multiplayer, so two players share the same mixed-reality race track in perfect spatial alignment.

How we built it

Fist Flight is built with Unity using:

  • Meta Interaction SDK & Hand Tracking APIs: For gesture and pose-driven mechanics.
  • Scene Understanding & MRUK: For mesh-aware spawning, level validation, and room-volume-based difficulty scaling.
  • Shared Spatial Anchors: For synchronized multiplayer courses.
  • Custom Wireframe Collision Shader: Reveals only mesh regions touched by dynamic objects.
  • Procedural Ring Level Builder: Allowing users to place rings in their own room and save custom tracks.

Significant engineering effort went into control systems: clone-hand physics, drone neutral-zone capture, yaw-only steering, gesture-based powerups, and robust MR mesh validation to keep gameplay physically grounded in real environments.

Challenges we ran into

  • Achieving stable colocation across devices while preserving networked drone alignment.
  • Preventing rings and objects from spawning inside walls or furniture.
  • Designing a drone control system that felt natural, precise, and explorable.
  • Building a multiplayer flow that remained resilient to network variability.

Accomplishments that we're proud of

  • Developing a fully hand-tracked flight mechanic that feels intuitive yet deeply skill-based.
  • Creating a high-precision MR drone experience that reacts to real-world geometry.
  • Achieving shared-space multiplayer with consistent ring alignment.
  • Building a user-friendly MR level creation tool using SLAM and scene mesh data.

What we learned

  • Scene Understanding is powerful but requires careful fallback logic and validation.
  • Colocation demands strict authority control and consistent spatial anchoring.
  • Hand-tracked mechanics become dramatically more engaging when physical metaphors (force, thrust, braking, drift) are preserved.

What's next for Fist Flight

  • Extending multiplayer colocation to the Hand Grab mode.
  • Internet-based multiplayer using Fusion for larger arena modes.
  • Drone combat, race leagues, time trials, and advanced MR hazards.
  • Expanded user-generated level tools so players can build, share, and compete on custom MR tracks.

Fist Flight aims to push the expressive potential of hand-tracked mixed reality—turning intuitive gesture-based motion into fast, skill-based gameplay that could only exist on Quest.

Built With

  • blender
  • c#
  • customhlslshaders
  • metabuildingblocks
  • metaisdk
  • metaxrcoresdk
  • mruk
  • sceneunderstanding
  • sharedspatialanchors
  • unity
  • unitynetcodeforgos
Share this project:

Updates