---
name: snap-spectacles-build
description: Load when the user is starting a Snap Spectacles lens from scratch — installing Lens Studio, creating a project, writing the TypeScript scripting model, deploying to Spectacles, distributing through My Lenses, or asks "how do I build my first lens." Don't load for already-deep work on interactions, multiplayer, AI, or design — those have dedicated skills.
license: MIT
metadata:
  author: HKTITAN
  version: "1.0.0"
  graph: true
---

# Snap Spectacles — Build (entry point)

Spectacles is Snap's standalone AR dev-kit hardware running **Snap OS**. You build lenses in **Lens Studio** using its TypeScript-flavoured scripting model, then deploy via USB or the Lens Studio Mobile App. This skill is the on-ramp; sibling skills handle interaction, multiplayer, AI, navigation, mobile, and design.

## First, ask the user

Before recommending anything, get these answers:

1. **Do you have Spectacles (5th gen) hardware for testing, or are you building blind?**
   - Hardware available → include device-deploy steps; flag preview-vs-device differences as they come up.
   - Blind → lead with [[references/preview-panel]] and the No-Simulation + Device Type Override workflow. Many things can be built without hardware; some — particularly hand-tracking nuance and real perf — cannot.

2. **What's the lens centred on?** This sets which sibling skills load next:
   - Hand-pinch / poke / gaze interactions → [[../snap-spectacles-sik/SKILL]]
   - Multiplayer / Connected Lenses → [[../snap-spectacles-sync/SKILL]]
   - AI features (SnapML, voice, LLM, vision) → [[../snap-spectacles-ai/SKILL]]
   - Outdoor / indoor navigation → [[../snap-spectacles-navigation/SKILL]]
   - Phone companion / BLE → [[../snap-spectacles-mobile-kit/SKILL]]
   - Design polish + publishing → [[../snap-spectacles-design/SKILL]]

3. **Distribution intent?** Personal device, share with collaborators, or public via My Lenses? See [[references/my-lenses-portal]].

## When to load

Triggers:
- "Build a Spectacles lens"
- "Lens Studio TypeScript"
- "How do I deploy to Spectacles"
- "Snap OS lens setup"
- "My first lens tutorial"

Don't load for:
- Choosing between providers (Meta vs Snap) — see [[../../meta/meta-wearables/SKILL]] for Meta-side; no top-level wearables router yet (use README's capability matrix).
- Deep interaction wiring — see [[../snap-spectacles-sik/SKILL]].
- Multiplayer / Sync Kit specifics — see [[../snap-spectacles-sync/SKILL]].

## Decide first

The architecture decisions before code:

1. **Lens Studio version.** The current track is 5.x; some features require specific minimums (Sync Kit needs Lens Studio 5.4+ and Snap OS 5.59+). See [[references/lens-studio-5]] and [[references/snap-os]].
2. **Target hardware.** Spectacles (5th gen) today; consumer **Specs** ship in 2026 — see [[references/spectacles-vs-specs]] for what that does and doesn't change.
3. **Scripting language.** TypeScript is the recommended path; JavaScript also works. The runtime compiles before lens load. See [[references/typescript-programming-model]].
4. **Scene structure.** Prefabs and SceneObjects organise your scene; the script-component pattern is how behaviour attaches.
5. **Permissions surface.** What does your lens read? Camera, mic, location, internet, BLE? Each is a permission the user must approve — see [[references/permissions-flow]].

## Map of content

### Setup

- [[references/lens-studio-5]] — installing Lens Studio 5, version requirements, project creation.
- [[references/snap-os]] — Snap OS on Spectacles, version dependencies.
- [[references/spectacles-vs-specs]] — current dev-kit Spectacles vs upcoming consumer Specs (2026).

### Programming model

- [[references/typescript-programming-model]] — script components, TS vs JS, the compile-before-load contract.
- [[references/scene-objects]] — SceneObject + Component pattern, the scene graph.
- [[references/prefabs]] — Prefabs as composition units; networked instantiation hook-in.
- [[references/lifecycle-hooks]] — `onAwake`, `onStart`, `onUpdate`, `bindOnEvent`.

### Assets and dependencies

- [[references/asset-library]] — Asset Library, package install flow, where Spectacles-targeted packages live.

### Preview and device

- [[references/preview-panel]] — Lens Studio Preview Panel, stereo modes, No-Simulation + Device Type Override.
- [[references/deploy-to-device]] — USB deploy, Lens Studio Mobile App, install on Spectacles.

### Distribution

- [[references/my-lenses-portal]] — My Lenses portal, share links, personal vs shared lenses.
- [[references/permissions-flow]] — what permissions your lens needs and how Snap surfaces them to the user.
- [[references/release-channels]] — Experimental APIs vs public APIs, what gets gated.

## Verify

Before claiming a Spectacles lens is shippable:

- [ ] Lens Studio version is 5.x (5.4+ if using Sync Kit).
- [ ] Spectacles firmware (Snap OS) is recent — verify against the Lens Studio compatibility warning at deploy time.
- [ ] Project compiles cleanly — TypeScript compile must complete before lens load.
- [ ] Lens runs in the Preview Panel with Spectacles simulation enabled.
- [ ] Lens deploys to device (USB or Mobile App) and runs.
- [ ] Permissions are declared up front and the lens degrades gracefully when denied.
- [ ] If using experimental APIs, you've explicitly opted in (see [[references/release-channels]]) and the lens is marked as such.

## Smoke test

If this skill loaded correctly, the agent should answer:

1. What Lens Studio version is required for Sync Kit and which Snap OS does it need? (Expected: Lens Studio 5.4+ and Snap OS 5.59+; cites [[references/lens-studio-5]] and [[references/snap-os]] and [[../snap-spectacles-sync/SKILL]].)
2. Can I preview a Spectacles lens without hardware? (Expected: yes — Lens Studio Preview Panel with Spectacles simulation; cites [[references/preview-panel]].)
3. What happens if my TypeScript fails to compile when I instantiate a prefab? (Expected: components attach with broken script references; the Sync Kit getting-started doc explicitly warns against this — cites [[references/typescript-programming-model]] and [[references/prefabs]].)

## Sibling skills

- [[../snap-spectacles-sik/SKILL]] — interactions.
- [[../snap-spectacles-sync/SKILL]] — multiplayer.
- [[../snap-spectacles-ai/SKILL]] — SnapML, RSG, ASR, Snap Cloud.
- [[../snap-spectacles-navigation/SKILL]] — Custom Locations, Places API.
- [[../snap-spectacles-mobile-kit/SKILL]] — BLE + phone companion.
- [[../snap-spectacles-design/SKILL]] — performance + comfort + publishing.

## Sources

- Spectacles developer hub — <https://developers.snap.com/spectacles/home>
- Introduction — <https://developers.snap.com/spectacles/get-started/introduction>
- Lens Studio download — <https://ar.snap.com/download> or <https://ar.snap.com/spectacles>
- Sample projects — <https://github.com/specs-devs/samples>
