Inspiration

We constantly misplace small gear. We wanted a hands‑free, glanceable way to “point and go” with Spectacles. AR guidance beats maps: an arrow, hot/cold feedback, and simple distance in cm.

What it does

Capture a reference object once; SnapFinder remembers it. Shows an on‑lens arrow that points to the target, with red/blue hot‑cold cues. Displays live distance in cm

How we built it

Lens Studio for Spectacles with TypeScript scripts: Object capture, tracking state, distance, and arrow orientation. Screen‑space UI to keep HUD elements in view. Optional Python API for reference registration/checks. Quaternion alignment to face the target; stable up vector to avoid roll.

Challenges we ran into

Device Tracking startup at (0,0,0) requiring delayed checks and fallbacks. Event timing quirks when enabling UI/GIF objects at runtime. Keeping the arrow stable and accurate while moving. HTTP limitations on device; needed Experimental API or HTTPS.

Accomplishments that we're proud of

Frictionless UX: glanceable arrow + hot/cold cues in cm. Clean startup flow with branded GIF, then instant UI handoff. Robust orientation that feels natural in motion.

What we learned

Practical quaternion use in AR and the importance of a consistent up vector. Spectacles UX patterns: less UI, more in‑view guidance. The value of unit consistency (centimeters) across logs and UI. What's next for SnapFinder On‑device embeddings to reduce backend needs. Multi‑object bookmarking and quick switching.

Built With

  • base64-image-encoding-data/db:-none-(stateless/local-runtime)-config/build:-tsconfig/jsconfig
  • internetmodule-(lens-studio);-local-rest-api-tools:-ngrok-(tunneling)
  • lens
  • lens-studio-(desktop)-apis:-cameramodule
  • python
  • python-(local-api)-frameworks/sdks:-lens-studio
  • spectacles
  • spectacles-interaction-kit
  • spectacles-ui-kit-platforms:-snap-spectacles
  • typescript
  • uikit
Share this project:

Updates