Inspiration

I spent four years in commercial hydroponics — Head Grower at Miss Microgreens, where we ran ~900 microgreen trays in rotation, and Senior Logistics Associate at Square Roots. Tray checks are constant and hands-on: your hands are wet, full, or both, and a phone or clipboard is always in the way. I kept thinking the data should just be there — floating next to the tray, readable at a glance, no hands required. SproutVision is that idea, built by someone who has actually done the job.

What it does

SproutVision is a mixed-reality crop assistant for Quest 3. Look at a microgreen tray and pinch to scan it: the app captures a frame, sends it to Gemini vision, and returns a health verdict — germination quality, canopy coverage, stress and mold signs, harvest readiness. A cinematic scan sequence plays over the tray, a verdict card appears beside it, and the result is read aloud, because a grower's hands are rarely free. Every scan is logged with history, CSV export, before/after comparisons, and a crop-trial scorecard, so a tray's story accumulates instead of evaporating.

How I built it

Unity 6 with the Meta XR All-in-One SDK on OpenXR — passthrough for the real grow room, hand tracking (pinch to scan, no controllers), and the Gemini API for image analysis. I develop with Muse Code on a MacBook Air, iterating build → sideload → test on real trays in my home grow.

Challenges I ran into

Passthrough on Quest is a chain of small traps: the passthrough layer has to exist in the scene at build time, every camera needs an alpha-0 clear, and a black splash-screen setting quietly reclassifies your MR app as VR-opaque. Runtime-created materials rendered magenta on device until I learned about Always Included Shaders the hard way. Hand tracking under OpenXR meant moving to the XR Hands subsystem and learning pinch detection from joint poses.

Accomplishments that I'm proud of

It works end to end on real hardware, on real crops — my red kale tray's harvest was its first filmed crop trial. And the design rule that emerged: the AI reads the tray, I read the plan. The HUD never asks for hands I don't have.

What I learned

Domain knowledge is a design superpower. Knowing which five seconds of a tray check actually matter shaped every UI decision more than any tutorial could.

What's next for SproutVision

Porting to Android XR for the XREAL Aura glasses, tray-anchored persistent data, and in-app recording that composites the camera feed and HUD — so viewers can finally see what the grower sees.

Built With

  • csharp
  • gemini-api
  • hand-tracking
  • meta-quest
  • meta-xr-sdk
  • mixed-reality-one-framing-note:-since-sproutvision-already-exists
  • mixedreality
  • openxr
  • unity
Share this project:

Updates

Submission history